Anton Saietskii wrote: > > > > Простейшая конфигурация на роутере из трех правил: > > > > # DMZ 172.16.1.0/24 > > pass in on $dmz > > block in on $dmz from any to 192.168.0.0/16 > > # Inside 192.168.10.0/24 > > pass in on $inside > > > > Пингуем хост 172.16.1.10 с хоста 192.168.10.3 через этот роутер. > > Эти пинги создают state: > > > > root@fw:~ # pfctl -vvs state > > No ALTQ support in kernel > > ALTQ related functions disabled > > all icmp 172.16.1.10:62211 <- 192.168.10.3:62211 0:0 > > age 00:09:17, expires in 00:00:10, 531:0 pkts, 44604:0 bytes, rule 2 > > id: 000000005de8b503 creatorid: e8f0f0df > > root@fw:~ # > > > > Однако почему-то ответы на пинг (идущие с 172.16.1.10 на 192.168.10.3) > > режутся на правиле "block in on $dmz from any to 192.168.0.0/16", хотя > > я ожидаю, что созданный state (приведен выше) должен их пропускать > > независимо от блокирующего правила "block in on $dmz ..." > > > > Почему так? > > > > По умолчанию state-policy=floating, т.е. по идее вышеприведенный state > > не привязан к интерфейсу и значит должен пропускать обратный трафик > > (echo reply с 172.16.1.10 на 192.168.10.3). Ан нет.
Вдруг кому пригодится результат исследования проблемы. Очень помог в личной переписке Hauke Fath hf эт spg.tu-darmstadt.de, который уже ходил по этим граблям при переходе с ipf на pf. Вкратце суть. Состояния (state) в pf работают не так, как в ipfw или ipf. Если например в ipfw создалось динамическое правило, то в check-state оно будет пропускать трафик в обоих направлениях, прямой и обратный. В pf же состояния даже при state-policy=floating остаются привязанными то ли к интерфейсу, то ли к направлению трафика (т.е. они не bidirectional). Т.е. если (см. пример выше) создался state при срабатывании "pass in on $inside", этот state не пропустит обратный входящий трафик через $dmz. Надо создавать state правилом "pass out on $dmz", тогда обратный трафик пройдет. Т.е. набор правил должен выглядеть так: # DMZ 172.16.1.0/24 pass in on $dmz block in on $dmz from any to 192.168.0.0/16 pass out on $dmz Бага это или фича - не берусь судить. По мне так ближе к баге (как минимум в документации). С другой стороны, это похоже на reflective acl в циске. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ _______________________________________________ freebsd mailing list [email protected] http://mailman.uafug.org.ua/mailman/listinfo/freebsd
