у меня так: more /etc/rc.conf
gateway_enable="YES"
firewall_enable="YES"
firewall_logging="YES"
firewall_type="OPEN"
firewall_script="/root/ipfw-rule/rule.conf10"
natd_enable="YES"
natd_interface="rl0"
natd_flags="-m -u"
ядро собрано с опциями
### Firewall
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=10
options IPDIVERT
options IPFIREWALL_FORWARD
ну и самый простецкий набор павил
ipfw -f flush
${FwCMD} add divert natd ip from ${NetIn}/${NetMaskIn} to any out via ${LanOut}
${FwCMD} add divert natd ip from any to ${IpOut} in via ${LanOut}
${FwCMD} add allow log logamount 10 ip from any to any via ${LanOut}
${FwCMD} add allow ip from any to any via ${LanIn}
как видишь эти правила далеки от идеала. Но зато дают возможность полета фантазии :)