per-interface packet filters

Jeremie Le Hen jeremie at le-hen.org
Tue Dec 14 15:41:00 PST 2004


On Tue, Dec 14, 2004 at 04:20:31PM +0300, Gleb Smirnoff wrote:
>>> ipfw syntax will be 100% backward compatible. The following keywords would
>>> be added:
>>> 
>>> ipfw chain list                 - list configured chains
>>> ipfw chain add | delete         - delete, remove chain
>>> ipfw chain _number_ [common rule definition]    - add/delete rules to
>>>                                                   non-default chain
>>> 
>>> It would be possible to attach chains to interfaces specifing also
>>> direction. It will be done with ifconfig, or a specific utility (not yet
>>> decided).
>> 
>> Why don't you specify the interface directly in the syntax?  That would be
>> more in line with ease of use instead of having yet another logical
>> indirection?
>> 
>>  ipfw fxp0 add permit ip from any to any
> 
> Because one chain may be used for several interfaces. One can be used for
> ng_pfil node. One can be not used at all, but it is hanging there, so that
> it can replace the one used by interface (this is what bms requested for
> XORP). 

If you introduce this kind of logical indirection, why would you
restrict these chains to be used only if the interface matched ?  I
mean that any of available packet-filter matches (src or dst ip, proto,
ports, TCP flags or even ttl...) may be used as a requirement to reach
this chain.  This is how the Linux NetFilter framework is designed [1].
    Quote from Linux iptables(8) manual page [2] :
    << Iptables is used to set up, maintain, and inspect the tables of
       IP packet filter rules in the Linux kernel. Several different
       tables may be defined. Each table contains a number of built-in
       chains and may also contain user-defined chains.

       Each chain is a list of rules which can match a set of packets.
       Each rule specifies what to do with a packet that matches. This
       is called a `target', which may be a jump to a user-defined
       chain in the same table. >>


Note that I am not saying that NetFilter is better (I would be silly
to do it here ;-)), but nevertheless it may have some interesting ideas
to consider while talking about extending FreeBSD firewall framework,
IMHO.

[1] http://www.docum.org/docum.org/kptd/
[2] http://sman.informatik.htw-dresden.de/man/ALL/iptables.html#sect2

Regards,
-- 
Jeremie Le Hen
jeremie at le-hen.org


More information about the freebsd-net mailing list