Контакты Поиск
17.06.2022 11:11
OlegON
 
После усиленного навязывания firewalld в последнее время, а так же из-за необходимости прикрыть один из хостов, который оказался не за Mikrotik, я поставил firewalld себе и начал разбираться.

Надо отметить, что я достаточно много работал с ipfw и iptables, потому могу быть конечно и предвзятым, но, в данном случае, постарался предвзятость отключить и разобраться в преимуществах этого софта.
Какие у него преимущества - наличие предустановленных пресетов (зон), которые можно переключать.
Изобразить аналогичное с помощью нескольких разных скриптов с iptables вообще не проблема.

Вроде бы firewalld динамический, то есть модули можно включать и выключать на ходу... Мне, если честно, вообще не приходилось трогать стенку после ее настройки в самом начале, так что это для меня вообще не преимущество.

И вот тут начинается самое главное... При работе с firewalld вы оперируете этими зонами, которые по факту просто являются профилями работы, сервисами, которые просто напросто описания портов в XML-формате, и прочими непонятными с точки зрения логики абстракциями. Зачем?!

В сети существуют хосты, порты и направления движения пакетов. По крайней мере те, кто как-то собираются регулировать доступ из сети, будут оперировать именно этими понятиями. При работе с firewalld придется приседать и описывать какие-то посторонние сущности, то есть ректально лечить гланды. Нет, там тоже, например, можно порты и тип протокола указать, но при этом смутное понимание, что эта хреновина вообще делает.

Поясню на простом примере, который заставил меня с матюками снести этот firewalld и поставить iptables-nft.
Нужно было открыть только SSH с моего хоста и все выходящие наружу, только на интерфейсе eth0.
Код:
/usr/sbin/iptables -A INPUT -i eth0 -s 77.37.184.187/32 --dport 22 -j ACCEPT
/usr/sbin/iptables -A INPUT -i eth0 -m state --state ESTABLISHED -j ACCEPT
/usr/sbin/iptables -P INPUT DROP
/usr/sbin/iptables -P OUTPUT ACCEPT
то есть я разрешил пакеты на 22 для 77.37.184.187 внутрь, уже установленные соединения внутрь, общую политику дропа внутрь и общую политику выхода наружу. Все! И просто мозг вывихнул себе, пока пытался понять, как описать сущности, а потом увязать их между собой в firewalld.... Не смейтесь, в итоге понял, что времени уходит слишком много при очень простой задаче. Буду рад признать свою неправоту, если кто-то напишет, как это сделать в firewalld проще, потому, что я так и не прошел этот квест до конца.
19.06.2022 10:39
OlegON
 
подсказали пример по первой строке... в общем, очередное поделие для тех, кто очень любит печатать...
Код:
firewall-cmd --permanent --zone=trusted --add-rich-rule='rule family=ipv4 source address=172.26.143.3 port port=22 protocol=tcp accept'

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.