Переход от iptables на PfSense
-
Здравствуйте коллеги. Нужна помощь и совет. Организация серьезная. Много рассказать не смогу. На рубеже внутренней и внешней сетью стоит Линукс с iptables. Задача перейти на PfSense не снизив надежности защиты сети из вне. Сейчас грызу iptables для расшифровки и переноса правил в PfSense. Я так понимаю, что iptables инструмент универсальный, а PfSense уже заточен под защиту из вне. Дайте, пожалуйста, совет. Как грамотно перенести правила из iptables в PfSense. Я на своем примере вижу что в iptables перед основными правилами (проброс портов, дружба разных сеток) есть много общих описаний которые в PfSense, я так понимаю, уже есть по умолчанию. Раньше работал с Kerio control. Там все просто. Настрочил правил, маршрутов, остальное запретил, все работает.
-
@antonr69 Исходите из того, что:
в pfSense по умолчанию все извне запрещено, все изнутри - разрешено.
Разные сети за разными интерфейсами друг от друга изолированы. Для доступа подсетей не нужны маршруты, только правила.
При порт-форварде разрешающие правило по умолчанию создаются автоматически.Правила выполняются сверху вниз.
@antonr69 said in Переход от iptables на PfSense:
Kerio control. Там все просто. Настрочил правил, маршрутов, остальное запретил, все работает.
Пожалуй, в pfSense все не сложнее.
-
Добрый
@antonr69
iptables -L -v -n > rules.txt, открываете файл rules.txt и внимательно переносите правила на пф ) -
@werter said in Переход от iptables на PfSense:
iptables -L -v -n > rules.txt, открываете файл rules.txt и внимательно переносите правила на пф )
Что то более удобоваримое получилось с ключем -S
iptables -S > rules.txt
Но я пока не совсем понял концепцию обработки цепочек. Пока разбираюсь. -
@antonr69 Не о цепочках, но стоит посмотреть на пост из закрепленных:
https://forum.netgate.com/topic/66675/pfsense-%D0%BF%D0%BE%D1%80%D1%8F%D0%B4%D0%BE%D0%BA-%D0%BF%D1%80%D0%BE%D1%85%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%BE%D0%B2 -
@pigbrother
Спасибо. Я эту тему видел. Хотя не могу сказать что исчерпал. Я с ней поработаю еще. Вроде начинаю въезжать в iptables. -
#anchor(@antonr69
Коллеги здравствуйте. Все же нужен совет. У меня не три правила в iptables. У меня портянка со сценариями, по примеру опубликованному здесь https://www.opennet.ru/docs/RUS/iptables/#INCLUDE.RCFIREWALL
Я так понимаю, что при прохождении пакетов через правило
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 21 -j allowed
пакет перемещается на цепочкуallowed chain
$IPTABLES -A allowed -p TCP --syn -j ACCEPT
$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A allowed -p TCP -j DROP
Если ДА, то при переносе правил из iptables в Pfsense каждое перенесенное правило нужно снабдить параметрами из цепочки allowed? Или же сделать отдельные правила правила с параметрами из цепочки allowed?
И как изобразить в Pfsense цепочкуbad_tcp_packets chain
#$IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK
-m state --state NEW -j REJECT --reject-with tcp-reset
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG
--log-prefix "New not syn:"
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP
И нужно ли в Pfsense такое городить? Может он уже по умолчанию рубит все кривые пакеты?При экспорте правил через iptables -L -v -n > rules.txt, у меня мягко говоря, получается не совсем удобоваримая каша.)
-
@antonr69
Для примераChain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 3841K 430M f2b-sshd tcp -- any any anywhere anywhere multiport dports ssh 1139M 184G XL-Firewall-1-INPUT all -- any any anywhere anywhere Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 1263M 1661G XL-Firewall-1-INPUT all -- any any anywhere anywhere Chain OUTPUT (policy ACCEPT 2688 packets, 760K bytes) pkts bytes target prot opt in out source destination Chain XL-Firewall-1-INPUT (2 references) pkts bytes target prot opt in out source destination 32 3232 ACCEPT icmp -- any any localhost anywhere icmp any 103K 8745K ACCEPT icmp -- any any anywhere anywhere icmp destination-unreachable 490K 33M ACCEPT icmp -- any any anywhere anywhere icmp echo-request 1842M 1759G ACCEPT all -- any any anywhere anywhere state RELATED,ESTABLISHED 286K 17M ACCEPT tcp -- any any anywhere anywhere state NEW tcp dpt:ssh 73M 22G REJECT all -- any any anywhere anywhere reject-with icmp-host-prohibited
в PFSense такое городить не надо , если не используете Floating правила (там свои нюансы )
- то что вы указали можно и в PF сделать , чтобы отбрасывать "плохие пакеты"
выглядеть это будет так
block drop in on vmx0 all block drop in quick on vmx0 proto tcp all flags /S block drop in quick on vmx0 proto tcp all flags /FSRA block drop in quick on vmx0 proto tcp all flags /FSRAU block drop in quick on vmx0 proto tcp all flags A/A block drop in quick on vmx0 proto tcp all flags F/FSRA block drop in quick on vmx0 proto tcp all flags U/FSRAU block drop in quick on vmx0 proto tcp all flags FS/FS block drop in quick on vmx0 proto tcp all flags FS/FSRA block drop in quick on vmx0 proto tcp all flags SR/SR block drop in quick on vmx0 proto tcp all flags FPU/FPU block drop in quick on vmx0 proto tcp all flags FPU/FSRPAUEW block drop in quick on vmx0 proto tcp all flags FSRAU/FSRAU block drop in quick on vmx0 proto tcp all flags FSRPAU/FSRPAU block drop in quick on vmx0 from any os "NMAP" to any pass in quick on vmx0 proto tcp from any to (vmx0) port = ssh flags S/SA synproxy state
-
Добрый.
@antonr69
Пф дропает все , что не разрешено ЯВНО.И не заморачивайтесь с :
#$IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK
-m state --state NEW -j REJECT --reject-with tcp-reset
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG
--log-prefix "New not syn:"
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROPПереносите только правила вида
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 21 -j allowed
Будет совсем трудно - пишите в ЛС )
Зы. Коллеги, недавно закончил проект с haproxy + ACME на пф. Непростой проект ) Кто столкнется с этой связкой - пишите.
-
@werter
А как грамотно будет накатить правила при мультиван? На каждый ван продублировать правила или создать одно в разделе плавающих правил указав все ван интерфейсы? -
@antonr69
Не надо пока трогать флоатинг рулез. Рисуйте сперва для обоих ВАНов - как все заработает, тогда и плавающие можно потыкать. Если оно надо, конечно (в 99% - не надо). -
@werter
Спасибо за ответы. Продвигаюсь в своей задаче. Настраивал squid, pfblockerng, и с какого то момента заметил что некоторые сайты, которые нормально открывались, перестали открываться, хром ругается "NET::ERR:CERT_DATE_INBALID" softodorom.ru например или forum.netgate.com.
Дата и время на pfsense и на компе правильные. Squid pfblockerng отключил, не помогло, менял настройки dns resolver, тоже не помогло. Заменил pfsense на ИКС, тоже такая проблема. Если шнурок от провайдера вставить в обычный роутер такой проблемы нет, и через шлюз на iptables нет. Подскажите пожалуйста, куда копать? -
@antonr69
Подцепил другой ноут, все работает. Сайты открывает. Пока разбираюсь. -
@antonr69
Братцы, что то намудрил я с dns resolver. Подскажите с правильными настройками. -
Добрый.
@antonr69
Скрины давайте. -
@werter said in Переход от iptables на PfSense:
Добрый.
@antonr69
Скрины давайте
Настроил PfblockerNG, все работает, блокирует. Запускаю Squid, и вся блокировка пропадает. Squid мне нужен для статистики. Он не прозрачный т.к. есть юзеры которые ходят в инет с терминального сервера. И идентифицировать их по IP-адресу не получится. По этому они ходят через ввод логина и пароля присвоенного в настройках Squid. -
Добрый
@antonr69
Зачем людям инет на терминальном сервере? -
@werter said in Переход от iptables на PfSense:
Добрый
@antonr69
Зачем людям инет на терминальном сервере?Добрый день. Ну, пока так сложилось. Потом переделаю.
У меня другая загвозка. На pfsense поднят сквид с авторизацией по логину\паролю. Не могу заставить на рабочих станциях вязаться к почтовым серверам программе thunderbird. Что только не делал. Менял параметры прокси в самой программе, сделал правило по которому разрешено ходить на прямую к почтовому серванту, в самой системе где прописывается адрес прокси сказал что вот на этот адрес (почтовик) ходить помимо прокси. Не помогает ничего. Уже второй день бьюсь. Подскажите, пожалуйста как можно решить проблему? -
Добрый.
@antonr69
Все настройки сквида скринами покажите.ЗЫ. У сквида можно указать КАКИЕ через него разрешать. В advanced добавьте почтовые порты
Что-то типа https://sysadmins.ru/topic167979.html (последнее сообщение).
При этом в настройках громоптицы указать, что прокси не использовать (проверить!)Зы2. Покажите правила fw на ЛАН. Сквид работает только с http(s) и разрешающих правил на ЛАН для почтовых портов должно хватать.
https://forum.netgate.com/topic/127606/squid-gmail-thunderbird-unable-to-connect
https://forum.netgate.com/topic/42208/firewall-rules-for-smtp-pop-to-use-thunderbird -
@werter
Спасибо за полезные ссылки. кое что прояснилось. Виновник найден немного в другом месте, это был snort. Он по каким то своим идейным соображениям заблокировал наш почтовый сервер.