Date: Sat, 22 Sep 2001 17:08:20 +0200 (CEST) From: Luigi Rizzo <luigi@info.iet.unipi.it> To: Chris Hardie <chris@summersault.com> Cc: freebsd-hackers@FreeBSD.ORG, freebsd-ipfw@FreeBSD.ORG Subject: Re: net.inet.ip.fw.one_pass=0 not effective in filtering bridge? Message-ID: <200109221508.RAA66779@info.iet.unipi.it> In-Reply-To: <Pine.BSF.4.40.0109220914270.79903-100000@nollie.summersault.com> from Chris Hardie at "Sep 22, 2001 09:15:54 am"
next in thread | previous in thread | raw e-mail | index | archive | help
in fact one_pass does not work with bridging, it might be as simple as changing one line in bridge.c if (ip_fw_chk_ptr && bdg_ipfw != 0 && src != NULL) { struct ip *ip ; int i; - if (rule != NULL) /* dummynet packet, already partially processed */ + if (rule != NULL && fw_one_pass) goto forward; /* HACK! I should obey the fw_one_pass */ but i never had a chance to test it. If you want to give this a try, I'd be glad to know how it works. cheers luigi > Hi. I've got a filtering bridge running on FreeBSD 4.3 with ipfw and > a customized rc.firewall config. The setup has been working well for > a while now. I was unfortunately alerted to a hole after a box behind > the firewall was cracked because ports that I thought were > protected...weren't. > > It turns out that traffic to/from the machine in question was being > passed through a pipe early in the rc.firewall config, and that the > ipfw processing terminated when the packets came out of the pipe, so > they never saw the rules farther down that would have dropped those > packets headed for bad places. > > A-ha! "Easy" you say - just do > sysctl -w net.inet.ip.fw.one_pass=0 > and according to the ipfw man page, that will cause the packets to be > re-injected into the firewall when they come out of the pipe, starting > where they left off. Well, this just doesn't seem to be taking > effect! > > I've crawled through docs and mailing lists. Setting > net.inet.ip.fw.one_pass seems to be the common solution, but a few > other people have mentioned the same ineffectiveness of that, and then > those threads just drop off. So I'm wondering if it's possible that, > because the kernel is compiled with "options BRIDGE", that packets are > strictly only going through the firewall rules once, and that > net.inet.ip.fw.one_pass=0 isn't having an effect in this case? > > If my wondering is in error, I'm looking for suggestions about how to > verify the behavior I'm seeing and how to achieve the desired result: to > use pipes AND deny rules that come after. I'm happy to send along the > particular rules, but wanted to see if the question could be answered > using theory first. > > (This message addresses an issue similar to but separate from the "ipfw" > thread on freebsd-questions started by Rick Norman on Sep 18. I also > posted this message there.) > > Any help is much appreciated. > > Thanks, > Chris > > -- Chris Hardie ----------------------------- > ----- mailto:chris@summersault.com ---------- > -------- http://www.summersault.com/chris/ -- > > > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-hackers" in the body of the message > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ipfw" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200109221508.RAA66779>