Настройка IPFW
Создаем в файле rc.conf раздел My, в котором мы будем прописывать свою конфигурацию файрвола.
[Mm][Yy])
#________________________________________________
# Описиваем нашу сеть
fw="80.XXX.XXX.98"
outmask="255.255.255.252"
local="192.168.0.2"
net="192.168.0.0"
mask="255.255.255.0"
# разрешаем все пакеты, по локальному
интерфейсу
${fwcmd} add pass all from any to any via xl1
# Natd
${fwcmd} add divert natd ip from ${net}:${mask} to any out via ${fw}
${fwcmd} add divert natd ip from any to ${fw} in via ${fw}
# полностью разрешаем ICMP
${fwcmd} add pass ICMP from any to any
# разрешаем SMTP
${fwcmd} add pass tcp from any to any 25
${fwcmd} add pass tcp from any 25 to any
# разрешаем пакеты по HTTP
${fwcmd} add pass tcp from ${net}:${mask} to 192.168.0.2 3128
${fwcmd} add pass tcp from 192.168.0.2 3128 to ${net}:${mask}
${fwcmd} add pass tcp from any 80 to ${fw}:${outmask}
${fwcmd} add pass tcp from ${fw}:${outmask} to any 80
# ICQ
${fwcmd} add pass tcp from any 443,5190,1100 to any
${fwcmd} add pass tcp from any to any 443,5190,1100
# открываем доступ к DNS
${fwcmd} add pass udp from any to any 53
${fwcmd} add pass udp from any 53 to any
# POP3
${fwcmd} add pass tcp from any 110 to any
${fwcmd} add pass tcp from any to any 110
# разрешаем FTP.
${fwcmd} add pass tcp from any 21 to any
${fwcmd} add pass tcp from any to any 21
${fwcmd} add pass tcp from any 20 to any
${fwcmd} add pass tcp from any to any 20
${fwcmd} add deny all from any to any
;;
#______________________________________________________
Собственно говоря - все, только надо не забыть в rc.conf поменять в строке
firewall_type="open" на "My"
Остается только набрать с консоли
sh rc.firewall - ... и можно отдыхать :)