ipfw fwd и прозрачный прокси
Модератор: terminus
Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- проходил мимо
ipfw fwd и прозрачный прокси
Есть машина с FreeBSD 6.1-RELEASE с ОДНИМ интерфейсом 192.168.0.5 (на которой просто вертится самба). На ней, перекомпилил ядро с поддержкой IPFW, поднял сквид и сделал его прозрачным. Но где-то вкралась ошибка, которую никак не могу найти. У юзеров GateWay натравлен на эту машинку и есть циска с адресом 192.168.0.1 с поднятым натом. Если в IE юзеров назначаешь прокси - все работает, а как ставишь "не использовать прокси" - все сдыхает. Версия сквида - squid-3.0.1. Вот конфиги:
ipfw show
00010 9176 3952596 allow tcp from any to any established
00020 564 256046 allow ip from any to any via lo0
00030 0 0 deny ip from any to 127.0.0.0/8
00040 0 0 deny ip from 127.0.0.0/8 to any
00050 0 0 check-state
00060 191 12224 allow tcp from 192.168.0.5 to any keep-state
00070 49 3042 allow udp from 192.168.0.0/24 to 192.168.0.5 dst-port 53,123
00080 250 39312 allow udp from 192.168.0.5 to any dst-port 53,123 keep-state
00090 0 0 deny ip from any to any frag
00100 0 0 allow log udp from any to any dst-port 67
00110 34 1632 allow tcp from 192.168.0.0/24 to 192.168.0.5 dst-port 110,25
00100 0 0 allow tcp from any to 192.168.0.5 dst-port 20,21,22
00120 134 16880 allow udp from 192.168.0.0/24 to 192.168.0.0/24 dst-port 137,138,139
00130 0 0 deny icmp from any to any icmptypes 5,9,13,14,15,16,17
00140 28 1998 allow icmp from any to any
00150 0 0 allow log tcp from 192.168.0.5 to any dst-port 80
00160 7 336 allow log tcp from 192.168.0.0/24 to any dst-port 80,443,21 in
00170 7 336 fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to any dst-port 80,443,21
00300 130 16574 allow log ip from any to any
65535 0 0 deny ip from any to any
в squid.conf
http_port 3128 transparent
присутствует.
Как видно правило 170 выполняется, но куда же уходят пакеты? В логах сквида ничего не отображается (т.е. отображаются запросы только тех у кого в IE сказано ходить через проски). Может ipfw не работает с одной сетевой картой, или какое-то правило отсутствует, или сквид неправильно настроен? Подскажите плиз. И еще попутно вопросик - как пишется правило fwd чтоб оно в лог писАло?
ipfw show
00010 9176 3952596 allow tcp from any to any established
00020 564 256046 allow ip from any to any via lo0
00030 0 0 deny ip from any to 127.0.0.0/8
00040 0 0 deny ip from 127.0.0.0/8 to any
00050 0 0 check-state
00060 191 12224 allow tcp from 192.168.0.5 to any keep-state
00070 49 3042 allow udp from 192.168.0.0/24 to 192.168.0.5 dst-port 53,123
00080 250 39312 allow udp from 192.168.0.5 to any dst-port 53,123 keep-state
00090 0 0 deny ip from any to any frag
00100 0 0 allow log udp from any to any dst-port 67
00110 34 1632 allow tcp from 192.168.0.0/24 to 192.168.0.5 dst-port 110,25
00100 0 0 allow tcp from any to 192.168.0.5 dst-port 20,21,22
00120 134 16880 allow udp from 192.168.0.0/24 to 192.168.0.0/24 dst-port 137,138,139
00130 0 0 deny icmp from any to any icmptypes 5,9,13,14,15,16,17
00140 28 1998 allow icmp from any to any
00150 0 0 allow log tcp from 192.168.0.5 to any dst-port 80
00160 7 336 allow log tcp from 192.168.0.0/24 to any dst-port 80,443,21 in
00170 7 336 fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to any dst-port 80,443,21
00300 130 16574 allow log ip from any to any
65535 0 0 deny ip from any to any
в squid.conf
http_port 3128 transparent
присутствует.
Как видно правило 170 выполняется, но куда же уходят пакеты? В логах сквида ничего не отображается (т.е. отображаются запросы только тех у кого в IE сказано ходить через проски). Может ipfw не работает с одной сетевой картой, или какое-то правило отсутствует, или сквид неправильно настроен? Подскажите плиз. И еще попутно вопросик - как пишется правило fwd чтоб оно в лог писАло?
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
- dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
- Контактная информация:
Re: ipfw fwd и прозрачный прокси
Код: Выделить всё
options IPFIREWALL_FORWARD
Код: Выделить всё
35900 0 0 fwd 127.0.0.1 log logamount 300 tcp from any to any dst-port 80,3128,8000,8001,8080,8081 out via fxp0
И ещё, 443 порт можешь убрать, SSL не работает прозрачно. Да и 21 FTP скорее всего тоже.(сам не пробовал)
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
-
- проходил мимо
Re: ipfw fwd и прозрачный прокси
[quote="dikens3"]В ядре присутствует?
Конечно.Такой вот у меня есть пример.
127.0.0.1 указан без порта - будет работать? Ведь пакеты на 80 порт идут, а их на 3128 завернуть нужно. Вообще их все заворачивать нужно.
Код: Выделить всё
options IPFIREWALL_FORWARD
Конечно.
Код: Выделить всё
35900 0 0 fwd 127.0.0.1 log logamount 300 tcp from any to any dst-port 80,3128,8000,8001,8080,8081 out via fxp0
127.0.0.1 указан без порта - будет работать? Ведь пакеты на 80 порт идут, а их на 3128 завернуть нужно. Вообще их все заворачивать нужно.
- dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
- Контактная информация:
Re: ipfw fwd и прозрачный прокси
Не проверял. :-)127.0.0.1 указан без порта - будет работать?
Код: Выделить всё
36000 fwd 127.0.0.1,3128 log logamount 300 tcp from any to any dst-port 80,3128,8000,8001,8080,8081 out via fxp0
Если есть отправленные пакеты на squid, значит должны быть логи в нём.00170 7 336 fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to any dst-port 80,443,21
в squid.conf
http_port 127.0.0.1:3128 transparent
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
-
- проходил мимо
Re: ipfw fwd и прозрачный прокси
В том то и дело, что нету! Не видит сквид эти пакеты. я переделал fwd 192.168.0.5,3128 чтоб он на этот порт слал, так как другие машины (пока) ходят в принудиловке. Но ни так, ни иначе, ни вообще без IP - не видит. А в сквиде есть опция - вести расширенный лог?Если есть отправленные пакеты на squid, значит должны быть логи в нём.00170 7 336 fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to any dst-port 80,443,21
здесь тоже сделал http_port 192.168.0.5:3128 transparent.в squid.conf
http_port 127.0.0.1:3128 transparent
Не хочет сквид видеть завернутые пакеты, но охотно обслуживает кто в принудиловке. Даже с моей машины: ставлю прокси - лезет (и в логах пишет) снимаю - ничего. В IE "Не возможно отобразить страницу". Может это 3 версия сквида глючит? Или кроме этой строчки в конфе сквида что-то еще ВАЖНОЕ для прозрачности нужно прописать?
- dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
- Контактная информация:
Re: ipfw fwd и прозрачный прокси
И в проксе и в ipfw нужно сделать 127.0.0.1. Пробуй.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
-
- рядовой
- Сообщения: 12
- Зарегистрирован: 2008-01-13 13:20:33
Re: ipfw fwd и прозрачный прокси
Такая же проблема. FreeBSD6.2+ipfw+Squid2.6r7
Transparent proxy не работает Причем при компиляции есть опции на включение поддержку transparent IPF и transparent IPFilter. Про IPFW не слова.
По всем мануалам:
в конфиге:
в ядре
в IPFW
Принудительно работает, прозрачно нет. В счетчиках ipfw show видно, что пакеты на 3128 заворачиваются.
Гугль молчит. Что делать?
Transparent proxy не работает Причем при компиляции есть опции на включение поддержку transparent IPF и transparent IPFilter. Про IPFW не слова.
По всем мануалам:
в конфиге:
Код: Выделить всё
http_port 127.0.0.1:3128 transparent
Код: Выделить всё
options IPFIREWALL_FORWARD
Код: Выделить всё
fwd 127.0.0.1,3128 tcp from $local_net to any 80
Гугль молчит. Что делать?
- dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
- Контактная информация:
Re: ipfw fwd и прозрачный прокси
Я тоже буду молчать, ибо дома на pf прозрачный прокси, а на работе ещё squid 2.5 + ipfw.Принудительно работает, прозрачно нет. В счетчиках ipfw show видно, что пакеты на 3128 заворачиваются.
Гугль молчит. Что делать?
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
-
- рядовой
- Сообщения: 12
- Зарегистрирован: 2008-01-13 13:20:33
Re: ipfw fwd и прозрачный прокси
И еще, tcpdump -i xxx "port 3128" на всех интерфейсах ничего не находит.
Зато tcpdump -i $int_if "port 80" показывает:
Т.е. пакеты на 3128 не заворачиваются??? доходят до места! (через НАТ видимо), ответ возвращается!, но до источника запроса не доходят!
Зато tcpdump -i $int_if "port 80" показывает:
Код: Выделить всё
listening on rl1, link-type EN10MB (Ethernet), capture size 96 bytes
14:26:21.825189 IP 192.168.1.1.2176 > yandex.ru.http: S 3883930653:3883930653(0) win 16384 <mss 1460,nop,nop,sackOK>
14:26:21.825380 IP yandex.ru.http > 192.168.1.1.2176: S 28885556:28885556(0) ack 3883930654 win 65535 <mss 1460,sackOK,eol>
14:26:21.825513 IP 192.168.1.1.2176 > yandex.ru.http: . ack 1 win 17520
14:26:21.825936 IP 192.168.1.1.2176 > yandex.ru.http: P 1:408(407) ack 1 win 17520
14:26:21.834949 IP yandex.ru.http > 192.168.1.1.2176: R 28885557:28885557(0) win 0
14:26:21.839741 IP yandex.ru.http > 192.168.1.1.2176: R 28885557:28885557(0) win 0
14:26:24.824819 IP yandex.ru.http > 192.168.1.1.2176: S 28885556:28885556(0) ack 3883930654 win 65535 <mss 1460,sackOK,eol>
14:26:24.824981 IP 192.168.1.1.2176 > yandex.ru.http: R 3883930654:3883930654(0) win 0
14:26:30.823906 IP yandex.ru.http > 192.168.1.1.2176: S 28885556:28885556(0) ack 3883930654 win 65535 <mss 1460,sackOK,eol>
14:26:30.824069 IP 192.168.1.1.2176 > yandex.ru.http: R 3883930654:3883930654(0) win 0
-
- рядовой
- Сообщения: 12
- Зарегистрирован: 2008-01-13 13:20:33
Re: ipfw fwd и прозрачный прокси
Отлично! Разобрался. Правило fwd после NAT'a стояло. Поставил перед ним - все ОК!
Кстати, адрес везде (в fwd и конфиге squid) прописан не 127.0.0.1, а 192.168.1.x. Т.к. в первую очередь не хотел поднимать squid на всех интерфейсах.
И еще: после того, как все заработало tcpdump -i rl1 "port 3128" по прежнему ничего не выдает... Странно, почему он не видит перенаправленных пакетов. Хоть к делу это не относится, но... неаккуратненько как то )))))
Кстати, адрес везде (в fwd и конфиге squid) прописан не 127.0.0.1, а 192.168.1.x. Т.к. в первую очередь не хотел поднимать squid на всех интерфейсах.
И еще: после того, как все заработало tcpdump -i rl1 "port 3128" по прежнему ничего не выдает... Странно, почему он не видит перенаправленных пакетов. Хоть к делу это не относится, но... неаккуратненько как то )))))
- dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
- Контактная информация:
Re: ipfw fwd и прозрачный прокси
потому что пакет идёт на 80 порт!!! Т.е. tcpdump -i rl1 port 80И еще: после того, как все заработало tcpdump -i rl1 "port 3128" по прежнему ничего не выдает... Странно, почему он не видит перенаправленных пакетов.
А вот на 3128 он уже идёт с Lo.
Я так думаю, сам пробуй.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
-
- рядовой
- Сообщения: 12
- Зарегистрирован: 2008-01-13 13:20:33
Re: ipfw fwd и прозрачный прокси
Проверил, на lo0 никакой активности ни на 80, ни на 3128. На rl1 3128 тоже не появляется
Код: Выделить всё
# tcpdump -i rl1 | grep 3128
... пусто ... :)
-
- проходил мимо
Re: ipfw fwd и прозрачный прокси
Это везде написано, но у меня НЕТ ната. Этат машина выходит в нет через нат который на циске. Получается что без ната и сквид работать не будет? Если так, то придется поднимать нат на фре - он не будет конфликтовать с цисковским натом?begemoto писал(а):Отлично! Разобрался. Правило fwd после NAT'a стояло. Поставил перед ним - все ОК!
- dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
- Контактная информация:
Re: ipfw fwd и прозрачный прокси
У меня всё отлично работает. :-)begemoto писал(а):Проверил, на lo0 никакой активности ни на 80, ни на 3128. На rl1 3128 тоже не появляетсяКод: Выделить всё
# tcpdump -i rl1 | grep 3128 ... пусто ... :)
Код: Выделить всё
tcpdump -n -i xl0 dst port 80
xl0 - внутренняя сетевая карта
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.