IPFW Stateful behaviour
Prokofiev S.P.
proks at logos.uptel.net
Tue Apr 3 09:54:36 UTC 2007
Hi ALL!
The PF has useful state-policy option: if-bound, group-bound, floating.
I have found out IPFW stateful rules do not become attached to the interface
and behave as PF stateful rules in floating mode.
For example, I build stateful rules (29991,31991) on two interfaces for two
different networks. I send a packet "pkt" from a network net_staff1 to a
network net_staff2. It creates stateful rule on enter if1, then it gets access
to the net_staff2 on output from the if2 by a keep-state 31991 rule.
Deny rule 31995 does not work.
Has solved this problem by tag and skipto (29990,31990), but it is not
absolutely beautiful.
Whether other decisions are possible?
+-----------------+
| if1 O----net_staff1
| |-----<----pkt
----INET---O if0 |
| |----->---->
| if2 O----net_staff2
+-----------------+
ipfw add skipto 29000 ip from any to any via $if1
ipfw add skipto 31000 ip from any to any via $if2
############## IF1 29000
N_DA=29995
ipfw add 29990 skipto $N_DA log ip from any to any via $if1 tagged 65534 // bypass another stateful
ipfw add 29991 allow tag 65534 log ip from $net_staff1 to any via $if1 in keep-state // stateful
ipfw add $N_DA deny log ip from any to $net_staff1 via $if1 out
ipfw add 29999 skipto 65000 ip from any to any via $if1
############## IF2 31000
N_DA=31995
ipfw add 31990 skipto $N_DA log ip from any to any via $if2 tagged 65534 // bypass another stateful
ipfw add 31991 allow tag 65534 log ip from $net_staff2 to any via $if2 in keep-state // stateful
ipfw add $N_DA deny log ip from any to $net_staff2 via $if2 out
ipfw add 31999 skipto 65000 ip from any to any via $if2
Sorry for my English.
More information about the freebsd-net
mailing list