Date: Sat, 08 Feb 1997 18:35:38 -0800 From: Julian Elischer <julian@whistle.com> To: Robert Shady <rls@mail.id.net> Cc: tiller@connectnet.com, FreeBSD-Questions@freebsd.org, FreeBSD-ISP@freebsd.org Subject: Re: Packet filtering help please Message-ID: <32FD37FA.41C67EA6@whistle.com> References: <199702090005.TAA06715@server.id.net>
next in thread | previous in thread | raw e-mail | index | archive | help
Robert Shady wrote: > > > > this will add to my system. Also, > > > where can I find more info on how to construct rules? > > > (Beyond the man pages.) > > > I will be doing this all remotely, so getting it right the first time is > > > essential. > > > > add the following code to the rc file > > ipfw add 10000 allow ip from all to all > > ipfw add 1000 deny ip from {his address} > > > > > > that should about do it.. > > remember that the default rule is: > > ipfw add 65536 deny ip from any to any > > > > so you need to add the allow rule above via /etc/rc > > because you won't be able to get to the box to do it by hand :) > > Also remember that the numbers are the 'rules numbers', they are > parsed from highest to lowest, and everyone must be different. > In the above example, it starts our like this > > RULE # > ====== > 65536 deny ip from any to any (Don't let ANYONE into this box by default) > 10000 allow ip from all to all (Now allow EVERYONE into this box by default) > 1000 deny ip from a.a.a.a (Now just deny people from a.a.a.a) > > And you could add... > > 999 deny ip from b.b.b.b (Now deny people from a.a.a.a & b.b.b.b) Boy is that confusing! 1/ there can be more than one rule with ths same number.. ordering of such rules is undefined. 2/ the rules are parsed LOWEST to HIGHEST.. the rules are interpretted with an implied "OTHERWISE go on to the next rule". while (rules to do) { if (condition of next rule is true) { if (rule is deny) return FALSE; else /* rule is accept */ return TRUE; } rule++; /* move on to next rule */ } in other words the set above are: 1000 If it's our pesky friend block it and go get the next packet. otherwise, go on to the next rule. 10000 Allow all packets not already thrown out. 65535 *never reached *
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?32FD37FA.41C67EA6>