- Создатель Александр Левдонский, отредактировано 02.07.19
Вы просматриваете старую версию данной страницы. Смотрите текущую версию.
Сравнить с текущим просмотр истории страницы
« Предыдущий Версия 6 Следующий »
Squid (англ. squid — «кальмар») — программный пакет, реализующий функцию кэширующего прокси-сервера для протоколов HTTP, FTP, Gopher и (в случае соответствующих настроек) HTTPS. Разработан как программа с открытым исходным кодом (распространяется в соответствии с GNU GPL). Все запросы выполняет как один неблокируемый процесс ввода-вывода.
Используется в UNIX-подобных системах и в ОС семейства Windows NT. Имеет возможность взаимодействия с доменными службами путём аутентификации через LDAP, что позволяет использовать разграничения доступа к интернет ресурсам пользователей, которые имеют учётные записи на Windows Server, также позволяет организовать «нарезку» интернет трафика для различных пользователей.
Используется вместе с движками Mediawiki на wiki хостингах. Использование кэширующего прокси-сервера для сайтов становится выгодно примерно с 2000 посетителей в сутки.
Статья применима к:
- ОС ОН Орёл 2.12
- ОС СН Смоленск 1.6
Установка пакета
Пакет squid входит в дистрибутивы ОС ОН Орёл 2.12 и ОС СН Смоленск 1.6, по умолчанию не устанавливается и может быть установлен либо с помощью графического менеджера пакетов, либо из командной строки командой:
После установки сервис запускается автоматически, однако для работы требует настроек.
Первичная настройка пакета
Параметры настройки пакета squid хранятся в файле /etc/squid/squid.conf
Из важнейших можно отметить следующие параметры:
Параметр | Описание |
---|---|
http_port 3128 | Порт, через который осуществляется подключение к серверу. По умолчанию 3128. |
http_access | Разрешение на доступ к серверу. Это единственный параметр, который требует настройки , так как по умолчанию доступ запрещен всем. Простейшая настройка - чтобы разрешить доступ всем нужно добавить в файл конфигурации строчку: http_access allow all |
После изменения параметров для вступления изменений в силу требуется перезапустить сервис.
Это можно сделать стандартными командами:
Перезапуск сервиса с настройками "по умолчанию" занимает около 35-ти секунд.
Для более быстрого обновления конфигурации:
ACL
Для управления доступом squid поддерживает работу со списками управления доступом (Access Control Lists, ACL).
Примеры ACL:
acl Safe_ports port 80 21 443 563 70 210 1025-65535 280 488 591 777
Пример применения ACL:
# запретить работу со всеми портами, кроме безопасных
http_access deny !Safe_ports
Пример блокировки определённых сайтов с помощью ACL:
acl blocksite1 dstdomain telegram.com
http_access deny blocksite1
При этом список ACL можно разместить во внешнем файле, например в файле /etc/squid/blockwebsites.lst:
acl blocksitelist dstdomain "/etc/squid/blockwebsites.lst"
http_access deny blocksitelist
При этом содержимое файла /etc/squid/blockwebsites.lst может быть:
google.com
telegram.com
Аналогично, можно блокировать адреса, содержащие ключевые слова:
acl blockkeyword1 url_regex telegram
acl blockkeyword2 url_regex google
http_access deny blockkeyword1
http_access deny blockkeyword2
Авторизация пользователей
Простая авторизация
В простейшем случае хранение паролей осуществляется в текстовом файле, содержащем учётные данные, закодированные в base64. Для обработки этого файла используется дополнительная программа /usr/lib/squid3/basic_ncsa_auth, проверяющая соответствие переданной комбинации "логин:пароль" хранящимся в файле данными.При этом на авторизованных пользователей распространяются любые правила контроля доступа, записанные в acl главного конфигурационного файла Squid.
Настройка конфигурации (файл паролей /etc/squid/users ):
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/users
acl lan proxy_auth REQUIRED # создание списка доступа, в который включены все прошедшие аутентификацию пользователи
http_access allow lan # теперь пользователям списка lan разрешен доступ к интернету
Файл паролей для реализации можно создать с помощью утилиты htpasswd, которая входит в состав пакета apache2-utils.
Синтаксис команды для htpasswd следующий:
-с
используется для создания нового файла, изменение существующего файла производится без этого параметра.Для созданного файла желательно установить права на чтение только пользователю и группе, от имени которой работает Squid:
chown proxy:proxy /etc/squid/users
Авторизация через Kerberos
В данной главе рассматривается настройка авторизации пользователей через контроллер домена FreeIPA.
При этом предполагается, что у нас имеется настроенный сервер (контроллер домена) FreeIPA, а сервер squid расположен на отдельной машине с полным доменным именем (FQDN) squid.ipadomain.ru, которая введена в домен.
- На контроллере домена регистрируем сервис. Имя сервиса состоит из ключевого слова HTTP, косой черты и полного доменного имени (FQDN), в нашем случае имя сервиса будет HTTP/squid.ipadomain.ru
Зарегистрировать сервис можно через WEB-интерфейс FreeIPA ("Идентификация" - "Службы" - "+ Добавить") или из командной строки командой
Файлы журналов и уровни журналирования
Журналы squid располагаются в каталоге /var/log/squid:
Файл | Описание |
---|---|
cache.log | Содержит отладочную информацию и сообщения о ошибках, которые генерирует Squid. |
access.log | Содержит подробную информацию о подключениях, пригодную для автоматического анализа. |
как
- Нет меток