Под каждую задачу, поддерживающую определенный протокол, как правило, выделяется отдельный порт. Для HTTP-протокола, применяемого для загрузки Web-страниц, чаще всего используется порт 8080, но это значение зависит от сервера и может быть изменено. Перед использованием определенной программы прокси-сервера убедитесь, что она обладает необходимыми вам возможностями и обеспечивает поддержку всех нужных протоколов. Неподдерживаемые протоколы придется направлять, минуя сервер, т.е. напрямую через шлюз.
Для повышения безопасности вашей сети необходимо запретить с помощью сетевого экрана подключения извне на используемые сервисом squid порты. Например, для его работы с HTTP-протоколом по умолчанию используется порт 3128. И если к этому порту будет разрешено подключаться только из локальной сети, то хакер не сможет применять этот прокси-сервер в своих целях или для получения доступа к компьютерам этой сети.
9.3. squid
Как я уже сказал, самым распространенным прокси-сервером является squid. Этот сервер имеет достаточно длинную историю, и за время его существования в нем реализовано много возможностей. Еще не было ничего такого, что я не смог бы получить с помощью squid.
Основной конфигурационный файл для squid — /etc/squid/squid.conf
(в некоторых системах место его расположения /etc/squid.conf). Файл очень большой, и приводить его полностью нет смысла, т.к. значительную его часть занимают подробные комментарии по использованию директив.Рассмотрим основные команды, которые нам доступны для управления прокси-сервером. Как обычно, все параметры, влияющие на производительность и безопасность, мы разберем подробно. Остальные настройки будут рассмотрены поверхностно, с ними можно поближе познакомиться по комментариям из конфигурационного файла.
9.3.1. HTTP-директивы
При подключении к Интернету пользователи первым делом стремятся загрузить Web-страничку. Если используется proxy, то необходимо правильно настроить HTTP-протокол. Для решения этой задачи в squid есть следующие директивы:
□ http_port n
n
определяет номер порта, через который будет происходить подключение.Первое, что нам необходимо настроить, — это порты, на которых сервер будет ожидать подключения клиентов. Такие директивы имеют формат XXXX_port
http_port 8080
После этого при конфигурировании браузера на клиентском компьютере вы должны будете указывать IP-адрес сервера, где установлен squid, и выделенный в данной директиве порт;
□ hierarchy_stoplist
Рассмотрим пример. Предположим, что вы прочитали Web-страницу www.servername.com/cgi-bin/ping.cgi
, на которой можно через Web-интерфейс выполнить директивуping
. Допустим, что при первом обращении вы запустили команду ping
к адресу 18.1.1.1
. Результат будет сохранен в кэше прокси-сервера. В следующий раз вы обращаетесь к сценарию, чтобы выполнить ping 18.1.1.18
, но браузер вернет первый результат, потому что возьмет его из своего кэша.Страницы со сценариями могут возвращать разный результат, в зависимости от ситуации и параметров, которые выбрал пользователь. Если кэшировать такие страницы, то вы всегда будете видеть одно и то же. В результате вы получите только неудобства от соединения через proxy.
Вопросительный знак очень часто используется для передачи параметров в сценарии PHP, поэтому такие страницы тоже не рекомендуется кэшировать.
Тег hierarchy_stoplist
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
Я думаю, вы согласитесь со мной, что незачем кэшировать то, что будет получаться с сервера, и зря расходовать дисковое пространство.
9.3.2. FTP-директивы
Для работы по FTP-протоколу тоже есть несколько директив:
□ ftp_passive параметр
on
, то разрешен пассивный режим (устанавливается по умолчанию).Сервер squid позволяет работать с FTP-протоколом, но может потребоваться некоторая настройка. Например, если squid находится за сетевым экраном, запрещающим пассивный режим, то лучше изменить значение параметра по умолчанию, установив для этого следующую директиву:
ftp_passive off
□ ftp_user адрес