Помниться шутка ещё из fido:
Q: У FreeBSD есть 3 файервола, какой использовать?
A: Правильно настроенный.
И так, если у вас больше, чем один файервол, то нужно понимать как пакет будет проходить и важно понимать, что пакет успешно пройдёт только тогда, когда пройдёт все файерволы. Здесь нет правила “ИЛИ”, есть только правило “И”. Вот здесь был совет ещё со времён 6.X, который перестал работать, где-то в 9-10 версиях. Потом появился совет, что порядок описан в файлах
/usr/src/sys/netpfil/ipfw/ip_fw2.c
/usr/src/sys/netpfil/pf/pf_ioctl.c
но нет инструкции, что и как править. Был ещё такой вредный совет:
$ rcorder /etc/rc.d/* | grep -nE '/i?pfw?$'
45:/etc/rc.d/pf
49:/etc/rc.d/ipfw
но он показывает прядок подгрузки модулей, а не порядок прохождения пакетов.
Но в 13-ой версии наконец-то появился механизм pfilctl . Теперь можно с помощью команд управлять приоритетом файерволов. Вот несколько примеров использования.
Помните, при использовании нескольких файерволов могут быть некоторые проблемы