Date: Mon, 24 Aug 2015 13:25:31 +0900 (JST) From: Hiroki Sato <hrs@FreeBSD.org> To: truckman@FreeBSD.org Cc: freebsd-net@FreeBSD.org Subject: Re: a couple /etc/rc.firewall questions Message-ID: <20150824.132531.1687906630049554750.hrs@allbsd.org> In-Reply-To: <201508240052.t7O0qsFF002623@gw.catspoiler.org> References: <20150823.084453.1715908115913144015.hrs@allbsd.org> <201508240052.t7O0qsFF002623@gw.catspoiler.org>
next in thread | previous in thread | raw e-mail | index | archive | help
----Security_Multipart(Mon_Aug_24_13_25_31_2015_174)--
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Don Lewis <truckman@FreeBSD.org> wrote
in <201508240052.t7O0qsFF002623@gw.catspoiler.org>:
tr> > A TCP setup packet coming from a host on the internal LAN to the NAPT
tr> > router falls into the last deny-all rule because it does not match if
tr> > you added "out via ${oif}" to that rule. Does the following
tr> > additional rule work for you?
tr> >
tr> > ${fwcmd} add pass tcp from any to any out via ${oif} setup
tr> > ${fwcmd} add pass tcp from any to not me in via ${iif} setup
tr>
tr> That works for now, but won't do the correct thing when I subdivide my
tr> internal network because it will allow unrestricted connections between
tr> the internal subnets. What I'd really like is something like:
tr>
tr> ${fwcmd} add pass tcp from any to not me,${inet} setup
tr>
tr> but that isn't a valid rule. I ended up adding a couple of deny
tr> rules for me and ${inet} before the wildcard pass allow rule. I had to
tr> make sure that some other more specific rules allowing connections
tr> between me and the inside were before the new deny rules.
Hmmm, I think "table" would be useful to restrict connections between
the internal subnets in that case like:
## allow TCP setup going to outside network:
${fwcmd} add pass tcp from any to any out via ${oif} setup
## list of all internal subnets including NAPT router itself:
${fwcmd} table 1 flush
${fwcmd} table 1 add 192.168.1.1/32 # NAPT router
${fwcmd} table 1 add 192.168.3.0/24
${fwcmd} table 1 add 192.168.4.0/24
...
## allow TCP setup from the internal subnets to outside network:
${fwcmd} add pass tcp from "table(1)" to not "table(1)" in via ${iif} setup
##
## list of internal subnets which can connect to me:
${fwcmd} table 2 flush
${fwcmd} table 2 add 192.168.3.0/24
...
## allow TCP setup from some of the internal subnets to me:
${fwcmd} add pass tcp from "table(2)" to me in via ${iif} setup
-- Hiroki
----Security_Multipart(Mon_Aug_24_13_25_31_2015_174)--
Content-Type: application/pgp-signature
Content-Transfer-Encoding: 7bit
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iEYEABECAAYFAlXanLsACgkQTyzT2CeTzy1gvwCcCOaEwtSkDugtWHhyhte8K/Hw
GG0AnRZ1AlVFuxQIP7KHqlnOexS7c0of
=v8xY
-----END PGP SIGNATURE-----
----Security_Multipart(Mon_Aug_24_13_25_31_2015_174)----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150824.132531.1687906630049554750.hrs>
