LINUX.ORG.RU
ФорумAdmin

Странное поведение Squid-а, не работает прозрачно.


0

1

Вроде бы со squid все уже давно понятно, все зубы об него уже сьел,ан нет фокусы продолжаются.

У меня 3 одинаковых шлюза. Стоит fedora 16 на всех стоял squid-3.2.0.16-1.fc16.i686 до недавнего времени, на непокорном шлюзе обновил до squid-3.2.5-1.fc16.i686 но проблема не решилась. А проблема в том что на этом одном шлюзе не работает прозрачный режим. В обычном режиме все пучком, в прозрачном режиме.... даже логи squid-а пустые, запрещенный явно сайт не открывается, но и не выскакивает мое сообщение о запрете. Анализ tcpdump показывает что запросы идут напрямую, все в iptables вроде бы как всегда редиректится 80 порт на 3128. Где то на просторах Инета натыкался что надо еще открыть для прозрачного порт 3129 иначе в логах ошибка «no forward-proxy ports configured» открываю порт, да сообшение об ошибке пропадает но сквид все равно не работает как надо. Причем до фонаря какой порт указать 3129 или любой другой. Вообще зачем это? можетя что то пропустил в изменении идеологии сквида?

Подскажите что может мешать работе свида, на всякий случай мой конфиг:

http_port 127.0.0.1:3128 intercept
http_port 172.16.1.100:3128 intercept
# пробовал 
#http_port 172.16.1.100:3128 transparent
error_directory /etc/squid/errors

acl sekvestr src «/etc/squid/limit»
acl office src «/etc/squid/good_user»

acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 5190 # icq
acl CONNECT method CONNECT

dns_nameservers 127.0.0.1 8.8.8.8

acl belii url_regex -i «/etc/squid/bad_url/white»
acl banners url_regex «/etc/squid/bad_url/banners»
acl bad_urlpath urlpath_regex «/etc/squid/bad_url/bad_urlpath

acl bad url_regex »/etc/squid/bad_url/bad"
acl game url_regex «/etc/squid/bad_url/game»

acl mp3 url_regex -i «/etc/squid/bad_url/mp3»

http_access allow belii
http_access deny banners
deny_info ERR_ACCESS_TRAFIK sekvestr

http_access deny bad
deny_info ERR_PORNO bad

http_access deny game
http_access deny bad_urlpath

http_access deny sekvestr
http_access allow office
http_access allow localhost
http_access deny manager

http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

http_access allow localhost
http_access allow office

http_access deny all

cache_dir ufs /var/spool/squid 100 16 256

coredump_dir /var/spool/squid

refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern .               0       20%     4320
cache_effective_user squid
cache_effective_group squid

Правила iptables:

/sbin/iptables -A INPUT -s $SETKA1 -d $GW -m tcp -p tcp --dport 3128 -j ACCEPT
/sbin/iptables -A OUTPUT -s $GW -d $SETKA1 -m tcp -p tcp --sport 3128 -j ACCEPT
/sbin/iptables -t nat -A PREROUTING -p tcp -i p1p1 -s $ip_admin --dport 80 -j REDIRECT --to-port 3128
# пробовал и так
#/sbin/iptables -t nat -A PREROUTING -p tcp -i p1p1 -s $ip_admin --dport 80 -j DNAT --to-destination 172.16.1.100:3128

Конфиги и правила фаера с работающими проксями сравнивал по буквам вроде бы.... Я уже не знаю куда еще нужно смотреть, посоветуйте, коллеги.

★★★★

Последнее исправление: alex_sim (всего исправлений: 1)

acl bad_urlpath urlpath_regex

ты случайно в этой строке кавычки не потерял? и засунь весь текст конфига в тег

anonymous
()
Ответ на: комментарий от anonymous

Что значит в Тег?

www.linux.org.ru/wiki/en/Lorcode не нашел ничего про тег. Просвятите как привильно конфиги размешать.

Ковычки... да наверное но этот не принципиально... прозрачный прокси думаю не из за ковычек не работает? (исправлю)

alex_sim ★★★★
() автор топика

/sbin/iptables -A INPUT -s $SETKA1 -d $GW -m tcp -p tcp --dport 3128 -j ACCEPT

Я правильно понимаю, что запрещено на любой порт кроме 3128?

smserg
()

А в FORWARD есть разрешение для таких пакетов?

Есть полезное средство для отладки iptables "-j TRACE"

vel ★★★★★
()
Ответ на: комментарий от smserg

Нет разрешено не только 3128

сейчас сетка вообще форвардится напрямую 80 SETKA1=«172.16.1.0/24» эксперименты только над собой ставлю пока не разберусь... GW=«172.16.1.100»

alex_sim ★★★★
() автор топика
Ответ на: комментарий от vel

Спасибо, про "-j TRACE" почитаю, попробую.

.

alex_sim ★★★★
() автор топика
Ответ на: комментарий от smserg

Большое спасибо за наводку!

Срабатывало правило NAT раньше, подвинул правило выше и все работает!

Осталось разобраться как используется TRACE и как вставлять конфиги в тег.

Тема закрыта.

alex_sim ★★★★
() автор топика
Последнее исправление: alex_sim (всего исправлений: 1)
Ответ на: комментарий от vel

все перерыл ничего не смог найти как использовать -j TRACE

правило создал, но где что искать ... в логах ничего не нашел. Вроде как что то должно быть включено в ядре или модули загружены. Везде описалово старых iptables.

alex_sim ★★★★
() автор топика

Правило можно вставить только в raw-таблицу

В логах будет видно все цепочки через которые проходит пакет.

Пользоваться нужно аккуратно (на нагруженной машинке «iptables -t raw -A PREROUTING -j TRACE» означает пипец), т.к. на каждый пакет пишется много строк.

iptables -t raw -A PREROUTING -p icmp -s 10.52.210.96 -j TRACE

[3598994.079013] TRACE: raw:PREROUTING:policy:3 IN=eth0.48 OUT= SRC=10.52.210.96 DST=10.52.210.3 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=28642 DF PROTO=ICMP TYPE=8 CODE=0 ID=5193 SEQ=1 
[3598994.079304] TRACE: mangle:PREROUTING:policy:4 IN=eth0.48 OUT= SRC=10.52.210.96 DST=10.52.210.3 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=28642 DF PROTO=ICMP TYPE=8 CODE=0 ID=5193 SEQ=1 
[3598994.079594] TRACE: nat:PREROUTING:policy:1 IN=eth0.48 OUT= SRC=10.52.210.96 DST=10.52.210.3 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=28642 DF PROTO=ICMP TYPE=8 CODE=0 ID=5193 SEQ=1 
[3598994.079879] TRACE: mangle:INPUT:policy:3 IN=eth0.48 OUT= SRC=10.52.210.96 DST=10.52.210.3 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=28642 DF PROTO=ICMP TYPE=8 CODE=0 ID=5193 SEQ=1 
[3598994.080164] TRACE: filter:INPUT:policy:9 IN=eth0.48 OUT= SRC=10.52.210.96 DST=10.52.210.3 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=28642 DF PROTO=ICMP TYPE=8 CODE=0 ID=5193 SEQ=1 
[3598994.080447] TRACE: nat:INPUT:policy:1 IN=eth0.48 OUT= SRC=10.52.210.96 DST=10.52.210.3 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=28642 DF PROTO=ICMP TYPE=8 CODE=0 ID=5193 SEQ=1 

vel ★★★★★
()
Ответ на: комментарий от vel

Правило такое же практически

/sbin/iptables -t raw -A PREROUTING -s $SETKA1 -i p1p1 -p tcp --dport 80 -j TRACE


В каком логе искать выхлоп? messages? В нем нет ничего касаемо TRACE

Что т в ядре должно быть разрешено или моули какие то подгружены? и как это делать?

alex_sim ★★★★
() автор топика
Последнее исправление: alex_sim (всего исправлений: 1)
Ответ на: комментарий от vel

Шарашил контекстным поиском везде где логи

никакого упоминания, выхлоп dmesg тоже ничего не дает, видимо чего то не хватает, не работает у меня.

alex_sim ★★★★
() автор топика
Последнее исправление: alex_sim (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.