Първо забраняваш всичко, после пускаш, каквото трябва едно по едно, иначе става ужасна патаклама.
IPFW не е органициран така, че да забраняваш всичко и след това да пускаш каквото ти трябва.
При него важи, пускаш каквото искаш и забраняваш останалото.
защото ако забраним всичко с правило
ipfw add 1 deny all from any to any
Всички пакати ще попадат в това правило и няма да обхождат следващи номера.
Не е примерно като при ipf или pf, където ако не се ползва опцията quick то обхожда и останалите правила, като се зачита последното попадение.
mrowcp
Със:
ipfw show
Може да видиш реда на правилата в ipfw.
Правилата могат да заемат номерация от 1 до 65535
Обхождането става от низходящ към възходящ ред, при попадение на даден ИП пакет в правило, то веднага се изпълнява без да обхожда останалите правила след нето.
като 65535 може да бъде
deny ip from any to any
или
allow ip from any to any
в зависимост от това с каква опция е ядрото:
options IPFIREWALL_DEFAULT_TO_DENY
или
options IPFIREWALL_DEFAULT_TO_ACCEPT
Това правило не може да се манипулира.
Друга интересна опция е
skipto
с нея може да се укажеш даден пакет, които съвпада с правилото да не обхожда всички правила, а да "прескача" проверката на всички до посочения номер.
Пример:
ipfw add 10 skipto 10000 all from 192.168.100.1 to any
при проверка
с това правило след попадение на ИП пакет ще прескочи всички следващи номера до 9999 и ще продължи проверката от 10000 нагоре, докато се получи следващо попадение в правило.
Точно тук може да оказваш примерно:
ipfw add 10 skipto 10000 all from 192.168.100.1 to any
ipfw add 10 skipto 20000 all from 192.168.10.1 to any
ipfw add 10 skipto 30000 all from 192.168.1.1 to any
Не съм проверявал как би се държал ipfw,
при примерно такава ситуация
ipfw add 10 allow all from 192.168.1.1 to any
ipfw add 10 allow all from any to 192.168.1.1