DansGuardian. Настраиваем передачу IP-адреса клиента в Squid

|

squid-dg-ip-000.pngКак показывает читательский отклик, существуют такие, простые на первый взгляд вопросы, которые тем не менее возникают снова и снова. Это свидетельствует о том, что данный момент остался не проработан и решение неочевидно определенной части читателей. Поэтому будет справедливо вернуться к таким вопросам и сделать дополнительные разъяснения. Сегодня мы решили окончательно внести ясность в вопрос о том, как "научить" контент-фильтр Dansguardian передавать прокси-серверу Squid IP-адрес клиента.

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

Также именно IP-адреса клиентов из логов Squid служат основой для построения статистики любыми анализаторами логов, например, SARG.

Все это прекрасно работает до тех пор, пока мы не установим контент-фильтр Dansguardian, после чего все завязанные на IP-адреса правила перестают работать, а статистика показывает одного единственного клиента с адресом 127.0.0.1. Чтобы понять, что случилось и почему так происходит, давайте рассмотрим следующую схему:

squid-dg-ip-001.pngСогласно приведенной схемы клиенты с адресами из диапазона 192.168.31.101 - 192.168.31.199 обращаются к роутеру посылая ему HTTP-запросы и получая в ответ содержимое веб-страниц, при условии, что данное содержимое проходит все установленные администратором фильтры.

Теперь самое время вспомнить о спецификациях протокола HTTP, а именно то, что они не предусматривают передачи адреса клиента в заголовках запроса. Пока Squid был один, он самостоятельно фиксировал адреса обратившихся к нему клиентов, но с появлением в схеме Dansguardian ситуация изменилась.

Так как все клиентские запросы первым обрабатывает контент-фильтр, то именно он может фиксировать реальные адреса клиентов, что он собственно и делает, записывая их в лог. Находящийся за ним Squid получает все запросы от локального процесса (если Dansguardian находится с ним на одном физическом сервере) и не имеет никакой возможности определить истинный источник запроса, поэтому в логе окажется только один адрес - 127.0.0.1 и все основанные на IP-адресах правила перестанут работать.

squid-dg-ip-002.png

К счастью разработчики протокола предусмотрели подобную ситуацию и ввели в протокол специальный заголовок X-Forwarded-For, который позволяет передавать в составе запроса адрес клиента. В нашем случае, для исправления ситуации следует настроить Dansguardian на добавление в запрос таких заголовков, а Squid на их обработку, причем сделать это действительно несложно.

В конфигурационном файле Dansguardian /etc/dansguardian/dansguardian.conf найдите и приведите к следующему виду опцию:

forwardedfor = on

Теперь откройте файл конфигурации Squid /etc/squid3/squid.conf и после секции с элементами ACL найдите и раскомментируйте:

follow_x_forwarded_for allow localhost 

После чего Dansguardian начнет добавлять к запросам заголовки X-Forwarded-For, а Squid их обрабатывать.

Обратите внимание! Если вы используете старые версии Squid, младше 3.3, то убедитесь, что задан следующий элемент ACL - acl localhost src 127.0.0.1, начиная с версии 3.3 данный элемент является предопределенным и указывать его отдельно не требуется.

Для применения изменений перезапустим службы:

service dansguardian restart
service squid3 restart

Теперь можно еще раз заглянуть в логи Squid и убедиться, что нужный заголовок передается и обрабатывается.

squid-dg-ip-003.pngНадеемся, что наш материал поможет вам лучше понять происходящие процессы и осмысленно подойти к настройке роутера, отказавшись от бездумного копирования непонятных команд.

 

Подписка на блог

Наш канал на YouTube Мы в Твиттере

Архивы по месяцам

Реклама

Статистика

 

Яндекс.Метрика

География

Flag Counter

Реклама

Об этой записи

Сообщение опубликовано 11.05.2016 20:31. Автор — Уваров А.С..

Предыдущая запись — Переход с 1С:Розница 1.0 на 1С:Розница 2.2. Практическое руководство

Следующая запись — WPAD или автоматическая настройка параметров прокси

Смотрите новые записи на главной странице или загляните в архив, где есть ссылки на все сообщения.

Реклама

Облако тегов