Первичная настройка пакета
Параметры настройки пакета squid хранятся в файле /etc/squid/squid.conf
Из важнейших можно отметить следующие параметры:
Параметр | Описание |
---|
http_port 3128 | Порт, через который осуществляется подключение к серверу. По умолчанию 3128. |
http_access | Разрешение на доступ к серверу. Простейшая настройка - чтобы разрешить доступ всем нужно добавить в файл конфигурации строчку: |
После изменения параметров для вступления изменений в силу требуется перезапустить сервис.
Это можно сделать стандартными командами:
sudo systemctl restart squid
ACL
Для управления доступом squid поддерживает работу со списками управления доступом (Access Control Lists, ACL).
Примеры ACL:
Пример применения ACL:
Пример блокировки определённых сайтов с помощью ACL:
При этом список ACL можно разместить во внешнем файле, например в файле /etc/squid/blockwebsites.lst:
При этом содержимое файла /etc/squid/blockwebsites.lst может быть:
Аналогично, можно блокировать адреса, содержащие ключевые слова:
Авторизация пользователей
Простая авторизация
В простейшем случае хранение паролей осуществляется в текстовом файле, содержащем учётные данные, закодированные в base64. Для обработки этого файла используется дополнительная программа
/usr/lib/squid3/basic_ncsa_auth, проверяющая соответствие переданной комбинации "логин:пароль" хранящимся в файле данными.
При этом на авторизованных пользователей распространяются любые правила контроля доступа, записанные в acl главного конфигурационного файла Squid.
Настройка конфигурации (файл паролей /etc/squid/users ):
Файл паролей для реализации можно создать с помощью утилиты htpasswd, которая входит в состав пакета apache2-utils.
Синтаксис команды для htpasswd следующий:
htpasswd [-c] /создаваемый/файл/паролей имя_пользователя
Параметр
-с
используется для создания нового файла, изменение существующего файла производится без этого параметра.Для созданного файла желательно установить права на чтение только пользователю и группе, от имени которой работает Squid:
chmod 440 /etc/squid/users
chown proxy:proxy /etc/squid/users
Авторизация через Kerberos
В данной главе рассматривается настройка авторизации пользователей через контроллер домена Контроллер ЕПП FreeIPA в Astra Linux.
При этом предполагается, что у нас имеется настроенный сервер (контроллер домена) FreeIPA с полным доменным именем (FQDN) ipa.ipadomain.ru, а сервер squid расположен на отдельной машине с полным доменным именем (FQDN) squid.ipadomain.ru, которая введена в домен.
На контроллере домена регистрируем сервис. Имя сервиса состоит из ключевого слова HTTP, символа косой черты и полного доменного имени (FQDN), в нашем случае имя сервиса будет
Зарегистрировать сервис можно через WEB-интерфейс FreeIPA:
или из командной строки, выполнив на контроллере домена команду
sudo ipa service-add HTTP/squid.ipadomain.ru
На сервере squid получить ключи службы, для чего на сервере squid выполнить команду
sudo ipa-getkeytab -s ipa.ipadomain.ru -p HTTP/squid.ipadomain.ru -k /etc/squid/krb5.keytab
где
-s - имя сервера, от которого нужно получить ключи (ipa.ipadomain.ru);
-p - имя службы, для которой нужно получить ключи (HTTP/squid.ipadomain.ru);
-k - имя файла, в котором нужно сохранить полученные ключи (/etc/squid/krb5.keytab).
- Установить для созданного на предыдущем шаге файла с ключами права доступа:
chown proxy:proxy /etc/squid/krb5.keytab
chmod 640 /etc/squid/krb5.keytab
Отредактировать юнит запуска службы squid (файл /etc/init.d/squid), добавив после строки "DESC=Squid HTTP Proxy" строки:
Отредактировать файл конфигурации службы squid /etc/squid/squid.conf, закомментировав строки "#http_access allow localnet" и "#http_access allow localhost" и добавив после них строки для включения авторизации через Kerberos:
Обновить конфигурацию юнитов запуска системных служб командой
sudo systemctl daemon-reload
Перезапустить службу squid командой:
sudo
Файлы журналов
Журналы squid располагаются в каталоге /var/log/squid:
Файл | Описание |
---|
cache.log | Содержит отладочную информацию и сообщения о ошибках, которые генерирует Squid. Обычно это отчеты о ошибках при программировании Squid, полезные пир тестировании новых возможностей или поиске причин непонятного поведения прокси. |
access.log | Содержит подробную информацию о подключениях, пригодную для автоматического анализа. |