Может кто-нибудь помочь мне преобразовать правила iptable в правила freebsd pf. Я уже пробовал fwbuilder, но безуспешно. Кажется, что некоторые правила не могут быть перенесены, а другие, похоже, логически отличаются. Я хочу портировать следующее:
1)
-A INPUT -p icmp -m limit --limit 5/sec -j ACCEPT
-A INPUT -p icmp -f -j DROP
-A INPUT -p icmp -j DROP
Проблема с pf в том, что, похоже, нет флага для скорости полученных пакетов. Существует только флаг для скорости соединения. Другая проблема заключается в том, что в pf я не могу отбросить фрагментированные пакеты.
2)
-A INPUT -m pkttype --pkt-type broadcast -j DROP
-A INPUT -m addrtype --dst-type BROADCAST -j DROP
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i ETH3 -p tcp -m tcp --dport 2576 -m limit --limit 50/sec --limit-burst 100 -j ACCEPT
-A INPUT -i ETH3 -p tcp -m tcp --dport 2576 -m recent --set --name DEFAULT --mask 255.255.255.255 --rsource
-A INPUT -i ETH3 -p tcp -m tcp --dport 2576 -m recent --update --seconds 5 --hitcount 200 --name DEFAULT --mask 255.255.255.255 --rsource -j DROP
Проблема с pf в том, что я не могу сопоставить широковещательные сообщения MAC. Также на pf можно обнаружить хост, который пытается соединиться с высокой скоростью соединения, и поместить его в таблицу с запрещенным хостом. Проблема в том, что хост не может быть удален из таблицы. Таким образом, если хост распознается как плохой хост, ему уже никогда нельзя доверять (и сообщения с этого хоста будут отбрасываться). Другая проблема заключается в том, что сообщения pf не имеют состояний, например, RELATED и ESTABLISHED.