ipfw fwd и прозрачный прокси

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
zumer
проходил мимо

ipfw fwd и прозрачный прокси

Непрочитанное сообщение zumer » 2008-01-10 16:47:06

Есть машина с 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 чтоб оно в лог писАло?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.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/

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: ipfw fwd и прозрачный прокси

Непрочитанное сообщение dikens3 » 2008-01-10 19:25:39

Код: Выделить всё

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 и прозрачный прокси

Непрочитанное сообщение Гость » 2008-01-11 11:22:55

[quote="dikens3"]

Код: Выделить всё

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 и прозрачный прокси

Непрочитанное сообщение dikens3 » 2008-01-11 13:36:42

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
И ещё:
00170 7 336 fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to any dst-port 80,443,21
Если есть отправленные пакеты на squid, значит должны быть логи в нём.
в squid.conf
http_port 127.0.0.1:3128 transparent
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

zumer
проходил мимо

Re: ipfw fwd и прозрачный прокси

Непрочитанное сообщение zumer » 2008-01-11 15:44:19

00170 7 336 fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to any dst-port 80,443,21
Если есть отправленные пакеты на squid, значит должны быть логи в нём.
В том то и дело, что нету! Не видит сквид эти пакеты. я переделал fwd 192.168.0.5,3128 чтоб он на этот порт слал, так как другие машины (пока) ходят в принудиловке. Но ни так, ни иначе, ни вообще без IP - не видит. А в сквиде есть опция - вести расширенный лог?
в squid.conf
http_port 127.0.0.1:3128 transparent
здесь тоже сделал http_port 192.168.0.5:3128 transparent.
Не хочет сквид видеть завернутые пакеты, но охотно обслуживает кто в принудиловке. Даже с моей машины: ставлю прокси - лезет (и в логах пишет) снимаю - ничего. В IE "Не возможно отобразить страницу". Может это 3 версия сквида глючит? Или кроме этой строчки в конфе сквида что-то еще ВАЖНОЕ для прозрачности нужно прописать?

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: ipfw fwd и прозрачный прокси

Непрочитанное сообщение dikens3 » 2008-01-11 15:51:37

И в проксе и в ipfw нужно сделать 127.0.0.1. Пробуй.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

begemoto
рядовой
Сообщения: 12
Зарегистрирован: 2008-01-13 13:20:33

Re: ipfw fwd и прозрачный прокси

Непрочитанное сообщение begemoto » 2008-01-13 13:51:47

Такая же проблема. FreeBSD6.2+ipfw+Squid2.6r7
Transparent proxy не работает :( Причем при компиляции есть опции на включение поддержку transparent IPF и transparent IPFilter. Про IPFW не слова.
По всем мануалам:
в конфиге:

Код: Выделить всё

http_port 127.0.0.1:3128 transparent
в ядре

Код: Выделить всё

options IPFIREWALL_FORWARD
в IPFW

Код: Выделить всё

fwd 127.0.0.1,3128 tcp from $local_net to any 80
Принудительно работает, прозрачно нет. В счетчиках ipfw show видно, что пакеты на 3128 заворачиваются.
Гугль молчит. Что делать?

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: ipfw fwd и прозрачный прокси

Непрочитанное сообщение dikens3 » 2008-01-13 14:10:43

Принудительно работает, прозрачно нет. В счетчиках ipfw show видно, что пакеты на 3128 заворачиваются.
Гугль молчит. Что делать?
Я тоже буду молчать, ибо дома на pf прозрачный прокси, а на работе ещё squid 2.5 + ipfw.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

begemoto
рядовой
Сообщения: 12
Зарегистрирован: 2008-01-13 13:20:33

Re: ipfw fwd и прозрачный прокси

Непрочитанное сообщение begemoto » 2008-01-13 14:29:47

И еще, tcpdump -i xxx "port 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
Т.е. пакеты на 3128 не заворачиваются??? доходят до места! (через НАТ видимо), ответ возвращается!, но до источника запроса не доходят!

begemoto
рядовой
Сообщения: 12
Зарегистрирован: 2008-01-13 13:20:33

Re: ipfw fwd и прозрачный прокси

Непрочитанное сообщение begemoto » 2008-01-13 14:35:12

Отлично! Разобрался. Правило fwd после NAT'a стояло. Поставил перед ним - все ОК!
Кстати, адрес везде (в 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 и прозрачный прокси

Непрочитанное сообщение dikens3 » 2008-01-13 21:47:31

И еще: после того, как все заработало tcpdump -i rl1 "port 3128" по прежнему ничего не выдает... Странно, почему он не видит перенаправленных пакетов.
потому что пакет идёт на 80 порт!!! Т.е. tcpdump -i rl1 port 80
А вот на 3128 он уже идёт с Lo.

Я так думаю, сам пробуй.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

begemoto
рядовой
Сообщения: 12
Зарегистрирован: 2008-01-13 13:20:33

Re: ipfw fwd и прозрачный прокси

Непрочитанное сообщение begemoto » 2008-01-14 0:53:10

Проверил, на lo0 никакой активности ни на 80, ни на 3128. На rl1 3128 тоже не появляется

Код: Выделить всё

# tcpdump -i rl1 | grep 3128
... пусто ... :)

zumer
проходил мимо

Re: ipfw fwd и прозрачный прокси

Непрочитанное сообщение zumer » 2008-01-14 8:33:21

begemoto писал(а):Отлично! Разобрался. Правило fwd после NAT'a стояло. Поставил перед ним - все ОК!
Это везде написано, но у меня НЕТ ната. Этат машина выходит в нет через нат который на циске. Получается что без ната и сквид работать не будет? Если так, то придется поднимать нат на фре - он не будет конфликтовать с цисковским натом?

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: ipfw fwd и прозрачный прокси

Непрочитанное сообщение dikens3 » 2008-01-14 10:42:45

begemoto писал(а):Проверил, на lo0 никакой активности ни на 80, ни на 3128. На rl1 3128 тоже не появляется

Код: Выделить всё

# tcpdump -i rl1 | grep 3128
... пусто ... :)
У меня всё отлично работает. :-)

Код: Выделить всё

tcpdump -n -i xl0 dst port 80
xl0 - внутренняя сетевая карта
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.