ну у меня так:в конвиге ядра добавлены опции
options IPFIREWALL # firewall
options IPFIREWALL_VERBOSE # enable logging to syslogd(8)
options IPFIREWALL_VERBOSE_LIMIT=100 # limit verbosity
options IPFIREWALL_FORWARD # packet destination changes
options IPDIVERT # divert sockets
в rc.conf соответственно стоит
firewall_enable="YES"
firewall_script="/etc/rc.firewall"
firewall_type="OPEN"
natd_enable="YES"
natd_interface="fxp0"
вместо OPEN указываешь свой набор правил
и никаких проблем с IPFW не возникало (ну если только с правилами иной раз чего нибудь нето сотворишь)
если перелопатить все советы по IPFW в инете - получится тоже самое