Date: Thu, 1 Dec 2005 01:53:48 +0100 From: Roland Smith <rsmith@xs4all.nl> To: Aaron Martinez <ml@proficuous.com> Cc: FreeBSD-questions@freebsd.org Subject: Re: pf blocking nfs Message-ID: <20051201005348.GB15959@slackbox.xs4all.nl> In-Reply-To: <200511301742.31258.ml@proficuous.com> References: <60336.192.168.3.69.1133319528.squirrel@webmail.proficuous.com> <20051130170210.GB1587@slackbox.xs4all.nl> <200511301742.31258.ml@proficuous.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--8P1HSweYDcXXzwPJ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Nov 30, 2005 at 05:42:30PM -0600, Aaron Martinez wrote: > On Wednesday 30 November 2005 11:02, Roland Smith wrote: > > On Tue, Nov 29, 2005 at 08:58:48PM -0600, Aaron P. Martinez wrote: > > > I am running FreeBSD 6.0-release and setting up a very basic firewall > > > using pf on my workstation. The ruleset is as follows: > > > > > > block in log all > > > pass quick on lo0 all > > > #pass in on $ext_if proto tcp from any to $ext_if port 22 keep state > > > pass out on fxp0 proto { tcp, udp, icmp } all keep state > > > > <snip> > > > > > I can't tell why this isn't working. I know that udp is stateless, b= ut i > > > was inclined to believe that you could still use state tracking with = pf. > > > I'd really like to have the firewall in place when this machine is > > > connected to the internet... > > > > Reading the pf manuals, it is supposed to work. > > > > Have you tried explicitly letting the required traffic through? > > > > pass out on fxp0 proto { tcp, udp } to $nfsserver port { sunrpc, > > nfsd-status, nfsd, lockd } keep state > > > > Where $nfsserver is the server's IP address. > > > > If that still doesn't work, try: > > > > pass out on fxp0 proto { tcp, udp } from any to $nfsserver port { sunr= pc, > > nfsd-status, nfsd, lockd } pass in on fxp0 proto { tcp, udp } from > > $nfsserver to any port { sunrpc, nfsd-status, nfsd, lockd } > > > > > > Roland >=20 > I thought for sure the last example here would solve the issue, but i'm s= till=20 > stumped. My current ruleset is as follows: >=20 > block in log all > pass quick on lo0 all > #pass in on $ext_if proto tcp from any to $ext_if port 22 keep state > pass out on fxp0 proto { tcp, udp, icmp } all keep state > pass out on fxp0 proto { tcp, udp } to 192.168.3.94 port { sunrpc, nfsd,= =20 > nfsd-status, lockd } keep state > pass in on fxp0 proto { tcp, udp } from 192.168.3.94 port { sunrpc, nfsd= ,=20 > nfsd-status, lockd } keep state >=20 > That didn't work so i tried: >=20 > block in log all > pass quick on lo0 all > #pass in on $ext_if proto tcp from any to $ext_if port 22 keep state > pass out on fxp0 proto { tcp, udp, icmp } all keep state > pass out on fxp0 proto { tcp, udp } to 192.168.3.94 port { sunrpc, nfsd,= =20 > nfsd-status, lockd } > pass in on fxp0 proto { tcp, udp } from 192.168.3.94 port { sunrpc, nfsd= ,=20 > nfsd-status, lockd } I think this should be pass in on fxp0 proto { tcp, udp } from 192.168.3.94 to any port { sunrpc,= nfsd, nfsd-status, lockd } =20 You could also try: pass in on fxp0 proto { tcp, udp } from 192.168.3.94 to $workstation pass out on fxp0 proto { tcp, udp } from $workstation to 192.168.3.94 If that doesn't work, I don't know what will. > which was even worse, with this setup i couldn't even switch to the /home= =20 > directory. >=20 > Still no go. I'm not sure if i have to reboot after changing the pf.conf= =20 > ruleset, i have just been stopping pf with pfctl -d, flushing the rules w= ith=20 > pfctl -F rules, loading the modified rules from /etc/pf.con with, pfctl= =20 > -f /etc/pf.conf and then re-enabling pf with, pfctl -e. Hope someone can= =20 > shed some light on this. Part of my whole reason for switcing to the BSD= s=20 > was my interest in pf, but this not keeping state is really letting me do= wn. I think the best way is to use '/etc/rc.d/pf reload'. =20 > I've said this before but i feel like it's worth mentioning again, even w= ith=20 > the single line: > pass out on fxp0 proto { tcp, udp, icmp } all keep state >=20 > i can switch to the /usr/home directory and even go into any directory th= at=20 > doesn't have a lot of files/folders in it. I only seem to have problem w= ith=20 > one home directory that is really loaded up. In your original post, there was something about a short packet. I'm guessing this might screw things up. You might try adding 'scrub in all' before the filtering rules. Roland --=20 R.F.Smith (http://www.xs4all.nl/~rsmith/) Please send e-mail as plain text. public key: http://www.xs4all.nl/~rsmith/pubkey.txt --8P1HSweYDcXXzwPJ Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (FreeBSD) iD8DBQFDjkmcEnfvsMMhpyURAniWAKCGoFhdd2PrL8HG1jXJyEcDUuaEXwCfYfMm X9l4ZG8Bpn6ZzyFvMiH2D8A= =iDPs -----END PGP SIGNATURE----- --8P1HSweYDcXXzwPJ--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20051201005348.GB15959>