4. Установка и настройка Squid

Установка и настройка Proxy server Squid 

Для инсталляции Squid используется команда:

apt-get install squid3

Когда установка завершится, сервис запустится автоматически.

Перейдём к настройке. Файл конфигурации расположен по адресу /etc/squid3/squid.conf. Для неподготовленного пользователя он может показаться совершенно необъятным - в нём более 7000 строк. Большая часть из них закомментированы и описывают значительную часть всех возможных вариантов работы Squid.

Для комфортной работы скопируем файл настроек в ту же папку под другим именем, чтобы всегда иметь под рукой стандартные настройки:

cp /etc/squid3/squid.conf /etc/squid3/backup-squid.conf

При необходимости перед началом настройки можно обратиться к официальной документации проекта.

Теперь можно удалять из файла конфигурации все закомментированные строки и пояснения, оставляя только активные директивы. По умолчанию их немного:

acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localhost
http_access deny all
http_port 3128
coredump_dir /var/spool/squid3
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880
refresh_pattern . 0 20% 4320

Основной инструмент настройки Squid - это списки контроля доступа или ACL (Access Control List). ACL объявляются директивой, имеющей следующий синтаксис:

acl имя параметр элементы_списка

Параметр даёт серверу понять тип элементов списка. АCL с параметром port содержит номера портов, а с параметром src - ip-адреса, с которых на сервер поступает запрос. Полный список параметров весьма обширен и доступен в официальной документации.

Таким образом, строка

acl Safe_ports port 80

добавляет в список Safe_ports, содержащий элементы типа “порт”, новое значение 80.

Директива http_access, имеющая формат

http_access указание имя_acl

определяет правила работы с элементами указанного acl. Например, строка:

http_access deny !Safe_ports

блокирует все порты, не входящие в список Safe_ports.

По умолчанию доступ к Squid разрешен только с самого сервера:

http_access allow localhost
http_access deny all

Чтобы открыть доступ клиентам локальной сети создадим для них новый список доступа c параметром src:

acl localnet src 192.168.0.0/24

И разрешим доступ:

http_access allow localnet

Теперь укажем порт, на котором работает Squid, и установим прозрачный режим работы:

http_port 192.168.0.1:3128 intercept  #параметр intercept включает прозрачный режим

Минимальная настройка конфигурационного файла Squid завершена, теперь можно перейти к описанию политики информационной безопасности.

Параметр src позволяет регулировать доступ для клиентов со статичными ip-адресами:

acl  UserGroup   src    192.168.0.2-192.168.0.9 # группа пользователей
acl  SingleUser  src    192.168.0.10 #отдельный пользователь
        http_access  allow  UserGrour  #разрешаем доступ для группы
        http_access  allow  SingleUser # и для отдельного пользователя
        http_access  deny   all  #запрещаем всем остальным

Параметр dst позволяет указать список ip-адресов назначения, к которым клиент желает получить доступ:

acl  Net194   dst    194.67.0.0/16  #описываем некую подсеть 194.67.0.0/16
        http_access   deny   SingleUser   Net194 # запрещаем пользователю доступ к ней

Параметр dstdomain даёт возможность указывать домен, к которому выполняется запрос:

acl  SitesBlocked  dstdomain  .example.ru  .sample.ru #указываем несколько доменных имён
        http_access   deny   UserGroup  SitesBlocked #и запрещаем к ним доступ группе пользователей

Если необходимо указать домен источника, используется параметр srcdomain.

Параметры srcdom_regex и dstdom_regex позволяют использовать в ACL регулярные выражения:

acl  SitesRegexFree     dstdom_regex    free #сайты, содержащие в доменном имени слово “free”
acl  SitesRegexComOrg  dstdom_regex  \.com$ \.org $ #сайты доменных зон .com и .org
        http_access   deny   SingleUser   SitesRegexFree
        http_access   deny   SingleUser  SitesRegexComOrg

Ключ -i необходим для игнорирования регистра символов в регулярных выражениях:

acl имя [-i] url_regex элементы_списка

С помощью параметра url_regex возможно указать шаблон регулярного выражения для URL:

 acl  MusicMP3  url_regex  -i  \.mp3$  #охватывает музыкальные файлы .mp3

Параметр port используется для указания списка портов. Он будет полезен для запрета отдельных портов, которые используются установленными на клиентской машине программами, например интернет-мессенджерами.

Ограничение пользователей по времени осуществляется с помощью параметра time:

acl имя time дни чч:мм-ЧЧ:ММ

Где день: M - Понедельник, T - Вторник, W - Среда, H - Четверг, F - Пятница, A - Суббота, S - Воскресенье.

Важно отметить что время начала промежутка должно быть всегда меньше времени конца. Например, возможно указать вариант 00:00-23:59, но промежуток 20:00-09:00 придётся разбить на 20:00-23:59 и 00:00-09:00.

Ограничения по времени можно комбинировать и с другими правилами. Есть возможность по расписанию разрешать или запрещать доступ к просмотру определённых сайтов, открывать и закрывать порты, управлять доступностью IP-адресов и отдельных доменов. Например:

acl  WeekendTime  time  AS 10:00-15:00 #обозначим некоторый временной промежуток для выходных дней:
http_access  allow  SingleUser  WeekendTime  MusicMP3 #разрешим пользователю достум к файлам формата mp3 в выбранный промежуток времени
http_access  deny   SingleUser  MusicMP3 #и запретим в любое другое время

Параметр proto позволяет указывать протокол передачи информации:

acl имя_acl proto список

Используя его можно запретить пересылку файлов по протоколу ftp:

acl   proto_ftp   proto   ftp
http_access   deny   SingleUser  proto_ftp
  • Proxy-server Squid
  • 0 کاربر این را مفید یافتند
آیا این پاسخ به شما کمک کرد؟

مقالات مربوطه

3. Настройка DHCP и NAT

Настройка DHCP На данном этапе уже есть возможность указать на локальной машине статический...

5. Ограничения по скорости Proxy server Squid

Ограничения по скорости На сегодняшний день, когда ушли в прошлое каналы с пропускной...

6.Настройка кэширования и логов в прокси-сервере Squid

  Настройка логирования Squid имеет мощную систему подробного логирования для контроля...

2. Настройка локальной сети для прокси-сервера Squid

Настройка локальной сети Прежде чем переходить к установке и настройке прокси-сервера Squid,...

7. Анонимный прокси-сервер Squid на базе LХС Ubuntu 20.04

#Обновим репозиторий нашей системы: apt-get updateapt-get dist-upgrade Перезагружаемся с...