1) куууча статей по данной теме, те паче что тема у вас ТИПОВАЯ!
2) man ipfw - нужно таки почитать, клонирование HOWTO не рулит, ибо пишется людми понимающими в теме для людей также понимающих
кроме тупого копирования правил, причем из нескольких хауту, я у вас ничего не узрел>[оверквотинг удален]
>
>#таблица с разрешенными адресами:
>${FwCMD} table 1 add 192.168.1.1
>${FwCMD} table 1 add 192.168.1.99
>${FwCMD} table 1 add 192.168.1.100
>${FwCMD} table 1 add 192.168.1.11
>${FwCMD} table 1 add 192.168.1.12
>
># Проверяем - соответствует ли пакет динамическим правилам:
>${FwCMD} add check-state
клево - а где keep-state если уж вы делаете динамический фаервол?
советую вам пока не заморачиваться вообще на эту тему
>[оверквотинг удален]
>
># разрешаем все установленные соединения (если они установились -
># значит по каким-то правилам они проходили.)
>${FwCMD} add allow tcp from any to any established
>
># разрешаем весь исходящий траффик (серверу-то в инет можно? :))
>${FwCMD} add allow ip from ${IpOut} to any out xmit ${LanOut}
>
># разрешаем весь tcp траффик внутри локалки (на внутреннем интерфейсе)
>${FwCMD} add allow tcp from any to any via ${LanIn}
пакет пройдет по вашему списку дважды - согласно количесву интерфейсов
на первом проходе он успешно проскочит через внутр интерфейс согласно этого правила
вообще правило надо назвать "разрешить все через вн интерфейс", а не локалки
># разрешаем весь udp траффик внутри локалки (на внутреннем интерфейсе)
>${FwCMD} add allow udp from any to any via ${LanIn}
аналогично
># разрешаем весь icmp траффик внутри локалки (на внутреннем интерфейсе)
>${FwCMD} add allow icmp from any to any via ${LanIn}
>
>#Разрешаем кому можно в интернет
>${FwCMD} add allow ip from "table(1)" to any
вот ключевая ошибка
на первом проходе пакет не дойдет до этого правила - см выше
на втором проходе дойтет - НО, пакетик то уже прошел дайверт и соурс айпи у него уже не локальный
>${FwCMD} add allow ip from any to "table(1)"
>#разрешаем городскую сеть всем
>${FwCMD} add allow ip from ${NetIn}/${NetMask} to ${NetOut}/${NetOutMask}
>${FwCMD} add allow ip from ${NetOut}/${NetOutMask} to ${NetIn}/${NetMask}
>
>${FwCMD} add deny ip from any to any
>