17 октября 2021, 14:49

Цитата дня:

Успех -- это способность идти от поражения к поражению, не теряя оптимизма. Уинстон Черчилль


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

Автор Diesel315, 30 сентября 2016, 09:21

« предыдущая тема - следующая тема »

0 Пользователей и 1 Гость просматривают эту тему.

Вниз

Diesel315

Всем добрый день.
Пытаюсь настроить передачу ip клиента в логи squid при работающем dansguardian.
Детально:
1. Centos 6.8 (2.6.32-642.4.2.el6.x86_64). LAN - 10.60.4.13. WAN - 10.60.30.3. На одной машине установлен и dansguardian (10.60.4.13:8080) и Squid (10.60.4.13:3128)
2. Установлен squid 3.4.5. Squid -v показывает, что сборка сделана с параметром '--enable-follow-x-forwarded-for'
3. В настройках dansguardian (собран из исходников DansGuardian 2.12.0.0 Built with: '--prefix=' '--sysconfdir=/etc' '--enable-trickledm' '--enable-ntlm')
прописано:
filterip = 10.60.4.13
filterports = 8080
proxyip = 10.60.4.13
proxyport = 3128
forwardedfor = on
usexforwardedfor = on.
В настройках squid (установлен из репозитория) параметра follow_x_forwarded_for не было.
Дописал вручную
follow_x_forwarded_for allow localhost
follow_x_forwarded_for deny all
Проблема все равно есть. В логах только dansgardian (src 10.60.4.13).
Сервер перезагружал.
В соответствующей теме посоветовали сделать dump (tcpdump -i eth0 -s 1024 -c 1000 -w /tmp/httpdump dst port 3128)
Сейчас некоторые пользователи используют прокси и ходят напрямую через squid (т.е 10.60.4.13:3128), на своем же компьютере я хожу через dansguardian (т.е. 10.60.4.13:8080). Dansguardian у меня отрабатывает, страницы блокируются. Но в дампе нет ни одного упоминания моего компьютера. Там только указаны те, кто ходит напрямую (10.60.4.13:3128). Более того, я не уверен, что дамп сможет захватить этот трафик, так как dansguardian и squid работаю на одной системе, то обмен идет внутри системы (возможно тут чушь сказал:))

Может кто подсказать, где ошибка?

Уваров А.С.

#1
30 сентября 2016, 12:26 Последнее редактирование: 30 сентября 2016, 12:33 от Уваров А.С.
Все правильно

tcpdump -i eth0 -s 1024 -c 1000 -w /tmp/httpdump dst port 3128
-i eth0  - указывает откуда ловить пакеты, я вам дал команду для примера, быстро опробовав ее на своем сервере. Если вам нужно ловить пакеты между DG и Squid, то должно быть -i lo

Более того, я не уверен, что дамп сможет захватить этот трафик, так как dansguardian и squid работаю на одной системе, то обмен идет внутри системы
А какая ему разница через какой интерфейс идет трафик?

Diesel315

Спасибо за подсказку. Что-то ступил)
Снял дамп с lo. В дампе присутствует передача X-Forwarded-For:10.60.60.5

Уваров А.С.

Значит вопросы к squid, попробуйте 

follow_x_forwarded_for allow all

Ну и еще раз проверить, что squid собран с  --enable-follow-x-forwarded-for




Diesel315

Спасибо за подсказку.
Заменил follow_x_forwarded_for allow all вместо follow_x_forwarded_for allow locahost. 
В логах  tail -f /var/log/squid/access.log вижу теперь адреса пользователей...

Проблемка правда осталась, что sqstat показывает только опять же адрес прокси 10.60.4.13. Пробовал в настройках  /var/www/html/sqstat/config.inc.php менять порты прокси 3128/8080 все равно только 10.60.4.13 показывает. Не знаете случаем как победить?

Также есть проблема шаблона страницы блокировки. Если выбрать русский шаблон (# language to use from languagedir.), то не указывается причина блокировки, пустая строка. А вот если выбрать language = 'ukenglish', то показывает почему. Не сталкивались с таким?

Уваров А.С.


Проблемка правда осталась, что sqstat показывает только опять же адрес прокси
Это зависит от того, умеет ли sqstat "понимать" заголовки X-Forwarded-For, скорее всего не умеет.


Также есть проблема шаблона страницы блокировки. Если выбрать русский шаблон (# language to use from languagedir.), то не указывается причина блокировки, пустая строка. А вот если выбрать language = 'ukenglish', то показывает почему. Не сталкивались с таким?
Отсутствуют нужные языковые переменные в русском шаблоне. Можно посмотреть где они в английском и по аналогии добавить в русский.

Вверх