LINUX.ORG.RU
ФорумAdmin

iptables + ipset прохождение цепочки Forward

 ,


0

1

Всем привет!

Есть Интернет-шлюз - NAT, Squid, iptables, pptp-server. В организации несколько подсетей.
Попросли сделать так:
чтобы какие-то ip-адреса не ходили в Интернет,
чтобы какие-то подсети не ходили в Интернет,
но чтобы из этих подсетей какие-то ip-адреса все же могли ходить в Интернет.
Чтобы было удобнее решил использовать ipset, создал три списка:
allow_address - для ip-адресов из заблокированных подсетей которым можно в Инет,
block_networks - для заблокированных подсетей,
и block_address - для заблокированных ip-адресов.
Цепочка FORWARD выглядит так:

-A FORWARD -p icmp -j ACCEPT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i ppp+ -o eth0 -j ACCEPT
-A FORWARD -i eth0 -o ppp+ -j ACCEPT
-A FORWARD -i ppp+ -o eth1 -j ACCEPT
-A FORWARD -i eth1 -o ppp+ -j ACCEPT
-A FORWARD -m set --match-set allow_address src -j ACCEPT
-A FORWARD -m set --match-set block_networks src -j DROP
-A FORWARD -m set --match-set block_address src -j DROP
-A FORWARD -i eth0 -o eth1 -j ACCEPT
-A FORWARD -s 192.168.0.0/16 -i eth0 -j ACCEPT
-A FORWARD -m conntrack --ctstate INVALID -j DROP
Все работает, как было задумано, что надо блочится, что надо проходит, но с ощутимыми тормозами загружаются сайты через прокси при работающих правилах c ipset. Подскажите, пожалуйста, может я в чем-то ошибся.

Попробуй -j LOG подобавлять. Может чего и отловишь. Ну и -i lo -j ACCEPT например.

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

forward через lo ? Оригинально!

-A FORWARD -m set --match-set block_networks src -j DROP
-A FORWARD -m set --match-set block_address src -j DROP

Я бы для каждой строки добавил уточнение в виде '-i xxx' или '-o xxx'

А про "-j LOG" уже подсказали.

vel ★★★★★
()

тут тормозить просто нечему
вероятнее тормоза из за чего то другого

как и что работает прокси и как на него ходят ? клиенты напрямую подключаються на порт прокси или траспарентный порт ?
точно ли что удаление ipset сразу нормализует инет через прокси ?
инет без прокси нормально работает всегда ?

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

в свойствах браузеров прописан прокси.
да, напрямую. есть ntlm-авторизация.
да, как только комментишь правила с ipset все тормоза пропадают.
без прокси всегда ок.

borschov
() автор топика

там в заблокированных какого-нибудь DNS сервера не оказалось, случаем? Ну и DROP можно заменить на REJECT, по идее тормоза должны уйти, но лучше разобраться, что тут не так

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

может тормазит именно прокси ? да дуратское предположение

тут просто нечему тормазить
если при работе - при тормазах сделать ipset flush
нормализуется ? не перерестатр всего фаервола - а именно обнуления ipset-а

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

да, когда ipset flush делаешь - тормоза пропадают.

borschov
() автор топика

собственно сделал ipset flush - все быстро заработало.
потом добавил в block_networks две подсети, скажем 192.168.1.0/25 и 192.168.1.128/25,
после добавил allow_address два-три адреса из этих подсетей, включая внутренние DNS - опять были тормоза.

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

Добавь перед каждым -j DROP такое же правило с -j LOG и смотри в сислоге, что именно блокируется.

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

есть подозрение что у тебя там чтото dns блокирует

нужно больше информации

ae1234 ★★
()

Всем спасибо!
Собрал лог, по правилам DROP, увидел, что один из ip-адресов постоянно ломится в Инет.
Пока поместил его пока в список разрешенных, и тормоза пропали.
Будем с коллегами разбираться, что это за хост.

borschov
() автор топика
Ответ на: комментарий от ae1234

Нет, проблемы действительно были с DNS, как Вы предположили.

borschov
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.