Передача IP-адреса клиента из Dansguardian в Squid

При использовании связки кэширующего прокси-сервера Squid и фильтрующего прокси-сервера Dansguardian могут возникнуть проблемы с определением реального IP-адреса клиента, так как Squid по умолчанию получает IP-адрес хоста, на котором запущен Dansguardian (чаще всего это локальный хост 127.0.0.1). В данном случае невозможно произвести корректную обработку логов или применение правил редиректором Rejik — адрес клиента скрыт за предыдущими прокси-серверами.
Начиная с версии 2.5.10, Squid можно собрать с параметром follow-xff, который добавляет возможность получения реального адреса клиента из HTTP-заголовка.

Таким образом для решения проблемы следует включить в конфигурационном файле dansguardian.conf передачу параметра X-Forwarded-For:

forwardedfor = on

А в конфигурационном файле squid.conf настроить разрешение для получения данного заголовка:

#Если Dansguardian установлен на локальном сервере:
acl localhost src 127.0.0.1
follow_x_forwarded_for allow localhost

#Если Dansguardian установлен на стороннем сервере:
acl my_other_proxy srcdomain .proxy.example.com
follow_x_forwarded_for allow my_other_proxy

Также следует установить параметр, регламентирующий использование косвенных адресов в журнале доступа и работе редиректора:

log_uses_indirect_client on

Этот тэг доступен только, если Squid скомилирован с опцией -DFOLLOW_X_FORWARDED_FOR option

Метки: , , , , ,

Комментарии запрещены.