По моему многовато лишнего, посмотри мой rc.firewall#!/bin/sh
fwcmd="/sbin/ipfw"
${fwcmd} -f flush
################################################
## Внешняя сеть (Инет) #########################
oif="rl0"
onet="xxx.xxx.xxx.xxx"
omask="xy"
oip="yyy.yyy.yyy.yyy"
###############################################
### Определение переменных для разрешений #####
asxxx="*.*.*.*"
moon="*.*.*.*"
predxxx="*.*.*.*"
yarxxx="*.*.*.*"
## Внутренняя сеть (Локаль)####################
iif="rl1"
inet="192.168.1.0"
imask="24"
iip="192.168.1.21"
################################################
### Правила для "Локальной петли" (внутри сервера всё могёт крутится) ###
${fwcmd} add 100 allow all from any to any via lo0
${fwcmd} add 200 deny all from any to 127.0.0.0/8
${fwcmd} add 300 deny ip from 127.0.0.0/8 to any
### Запретить хождения сеток на не свои интерфейсы (перекрёстные)###
### На всякий случай, бо це обурливо ###
${fwcmd} add 1000 deny all from ${inet}/${imask} to any in via ${oif}
${fwcmd} add 1010 deny all from ${onet}/${omask} to any in via ${iif}
### Запрещаем подключение через внешний интерфейс частных сеток ###
### Нечего им там подключаться ;) ###
${fwcmd} add 2000 deny all from any to 10.0.0.0/8 via ${oif}
${fwcmd} add 2010 deny all from 10.0.0.0/8 to any via ${oif}
${fwcmd} add 2020 deny all from any to 172.16.0.0/12 via ${oif}
${fwcmd} add 2030 deny all from 172.16.0.0/12 to any via ${oif}
${fwcmd} add 2040 deny all from any to 0.0.0.0/8 via ${oif}
${fwcmd} add 2050 deny all from 0.0.0.0/8 to any via ${oif}
${fwcmd} add 2060 deny all from any to 169.254.0.0/16 via ${oif}
${fwcmd} add 2070 deny all from 169.254.0.0/16 to any via ${oif}
${fwcmd} add 2080 deny all from any to 192.0.2.0/24 via ${oif}
${fwcmd} add 2090 deny all from 192.0.2.0/24 to any via ${oif}
${fwcmd} add 2100 deny all from any to 224.0.0.0/4 via ${oif}
${fwcmd} add 2110 deny all from 224.0.0.0/4 to any via ${oif}
${fwcmd} add 2140 deny all from any to 192.168.0.0/16 via ${oif}
${fwcmd} add 2150 deny tcp from 192.168.0.0/16 to any via ${oif}
### Разрешаем крутится мускулу только внутри сервера###
${fwcmd} add 3000 deny tcp from not me to me 3306
########## Прокси Squid и Froxy #################################
${fwcmd} add 3050 fwd 127.0.0.1,3128 tcp from ${inet}/${imask} to any 80 via ${oif}
${fwcmd} add 3055 fwd 192.168.1.21,2121 tcp from ${inet}/${imask} to any 21
########## НАТ #######
${fwcmd} add 3060 divert natd tcp from ${inet}/${imask} to any out via ${oif}
####Для пингов внаружу ####
${fwcmd} add 3065 divert natd icmp from any to any via ${oif}
### отбрасываем фрагментированые пакеты ###
${fwcmd} add 3070 deny icmp from any to any frag
### Пинги ###
${fwcmd} add 3080 allow icmp from any to any icmptypes 0,8,11
### Уж кто попал, тот пусть работает по етому правилу, нефиг проверять каждый раз ###
### если конект установлен, значит какоето правило пропустило ###
${fwcmd} add 4000 allow tcp from any to any established
### Доступ по ssh из вне (с определённого хоста)###
${fwcmd} add 6000 allow tcp from ${moon} to ${oip} 22 setup
### Почта ###
${fwcmd} add 6010 allow tcp from any to ${oip} 25 setup
#####Почта (из нутри чтоб трояны не плодились) ###########
${fwcmd} add 6015 allow tcp from ${inet}/${imask} to ${iip} 25 setup
############ Доступ к веб ресурсам (мыло и Интранетовский сайт) ###
### XXX ###
${fwcmd} add 6020 allow tcp from ${astxxx} to ${oip} 80 setup
### YYY ###
${fwcmd} add 6030 allow tcp from ${predxxx} to ${oip} 80 setup
### ZZZ ###
${fwcmd} add 6040 allow tcp from ${yarxxx} to ${oip} 80 setup
### Moon ########################################################
#${fwcmd} add 6050 allow tcp from ${moon} to ${oip} 80 setup
#################################################################
### Заперщаем доступ к внешнему интерфейсу (с записью в лог)###
### всё что непрохавали правила с пометкой setup ###
${fwcmd} add 7000 deny log tcp from any to any in via ${oif} setup
### Разрешить пакеты которые не запрещены выше ###
### в частности для доступа к серверу из локальной сети ###
### кулхацкеров пока не наблюдалось внутри локалки :) ###
${fwcmd} add 8000 allow tcp from any to any setup
### Для DNS###
${fwcmd} add 9000 allow udp from ${oip} to any 53 keep-state
${fwcmd} add 9010 allow udp from any to ${oip} 53 keep-state
${fwcmd} add 9020 allow udp from ${iip} to ${inet}/${imask} 53 keep-state
${fwcmd} add 9030 allow udp from ${inet}/${imask} to ${iip} 53 keep-state
### Для сервера времени ###
${fwcmd} add 9040 allow udp from ${oip} to any 123 keep-state
${fwcmd} add 9050 allow udp from any 123 to ${oip} keep-state
${fwcmd} add 9060 allow udp from ${inet}/${imask} to ${iip} 123 keep-state
${fwcmd} add 9070 allow udp from ${iip} 123 to ${inet}/${imask} keep-state
#### На самом деле ето правило не нужно если по дефолту все пакеты запрещены
#### в ядре (так ... для перестраховки, кушать-то не просит :)
${fwcmd} add 10000 deny ip from any to any
====================
аську пускай через прокси и т.д.