- 100-е правило разделите на два code 00100 nat 1 ip from 192 168 30 0 24 to not , universite (ok), 20:15 , 02-Май-18 (1)
> $fwcmd 00001 allow all from any to any via re0 > ipfw nat 1 config log if re1 reset same_ports deny_in > $fwcmd 00100 nat 1 ip from any to any via re1 100-е правило разделите на два.
00100 nat 1 ip from 192.168.30.0/24 to not 192.168.30.0/24 out via re1 00101 nat 1 ip from any to me in via re1
Для прохождения пинга этих правил достаточно.
- Сумбур, ага, есть немного Ээээ, вот откуда могла возникнуть мысль, что с пакетом, Тыгра (?), 22:11 , 03-Май-18 (2)
>Извините за сумбур, пытаюсь все переварить.Сумбур, ага, есть немного. >И еще один момент, подскажите по правилу прохождения цепочки правил IPFW, продолжается ли >прохождение в случае: >1) для пакета найдено блокирующее правило >2) для пакета найдено разрешающее правило Ээээ, вот откуда могла возникнуть мысль, что с пакетом после этого ещё что то нужно делать? Конечно, обработка на командах allow, deny(drop), unreach, fwd завершается. nat, netgraph, ngtee - в зависимости от one_pass. skipto, call, count - всегда продолжается. reass - продолжается, если пакет не фрагментирован, иначе откладывает пакет до поступления всех частей, когда придут - собирает его в кучу и продолжается man ipfw вроде бы об этом хорошо говорит. >$fwcmd 00002 allow icmp from 192.168.30.10 to any out via re1 setup keep-state 1. icmp и setup? серьёэно? 2. allow = "всё, пропуск верный, беги по коридору". До NAT-а этот пакет не дойдёт, уйдёт в канал. Потому tcpdump и показывает такое - правило с NAT обойдено. 3. keep-state коварен. Избегайте, если структура правил не проектировалась для его использования. А в данном случае - вообще не нужен. Ещё мелочи - via и указанное направление out - бессмысленная трата тактов, ибо внутри ipfw "via re1" = "(out xmit re1) or (in recv re1)" также from any to me - красиво, понятно, но это me - долго, так как перебирает все интерфейсы и их адреса. Как концепция - самое то. Но потом - выпиливать в угоду скорости. А в чём сакральный смысл one_pass=1 ? Как раз без него, ИМХО, лучше. Да, добавится ещё правило, типа $fwcmd 00110 allow ip from any to any via re1 А вообще рекомендую сразу разделять потоки на группы правил, например:
#!/bin/shlan='re0' inet='re1' ipfw nat 1 config log if $inet reset same_ports deny_in $fwcmd 10 reass all from any to any // # separate IN and OUT $fwcmd 100 skipto 1000 all from any to any in $fwcmd 110 skipto 2000 all from any to any out # IN. Seperate interfaces $fwcmd 1000 skipto 3000 all from any to any recv $inet $fwcmd 1010 skipto 4000 all from any to any recv $lan $fwcmd 1997 allow all from any to any recv lo $fwcmd 1998 deny all fron any to 127.0.0.0/8 // protection $fwcmd 1999 deny all from any to any # OUT. Seperate interfaces $fwcmd 2000 skipto 5000 all from any to any xmit $inet $fwcmd 2010 skipto 6000 all from any to any xmit $lan $fwcmd 2997 allow all from any to any xmit lo $fwcmd 2998 allow all from 127.0.0.0/8 to any // protection $fwcmd 2999 deny all from any to any # inet in # icmp for router # filter some of them $fwcmd 3000 deny icmp from any to me icmptypes 5 // strange $fwcmd 3001 deny log icmp from any to me icmptypes 9,10,13,15,17 // danger $fwcmd 3002 allow icmp from any to me icmptypes 8 // usual in ping, NO NAT $fwcmd 3100 nat 1 all from any to any // inet in # place for filters to me $fwcmd 3110 allow tcp from any to me dst-port 80 // my web, also setup NAT rule $fwcmd 3130 deny tcp from any to me dst-port 1-1023 $fwcmd 3140 deny udp from any to me dst-port 1-1023 $fwcmd 3500 allow all from any to me // inet in to this gate # place for filters to LAN clients $fwcmd 3999 allow all from any to any // inet in transit # lan in $fwcmd 4000 allow all from any to any // lan in # inet out $fwcmd 5000 nat 1 all from any to any // inet out $fwcmd 5010 allow all from any to any // inet out $ lan out $fwcmd 6000 allow all from any to any // lan out
Это пример без keep-state. Этот keep-state в такой структуре можно применять очень ограниченно. Если нужно тотально, то структура правил должна быть совсем другой. Вопрос на понимание - какое правило 100 или 110 лишнее, но с ним нагляднее?
|