Date: Tue, 8 Dec 1998 03:09:26 -0500 From: Mark Mayo <mark@vmunix.com> To: questions@FreeBSD.ORG Subject: NATD + firewall - I'm stumped.. Message-ID: <19981208030926.A25214@vmunix.com>
next in thread | raw e-mail | index | archive | help
Hi all. I've been trying to get what I thought would be a trivial gateway to the net setup. I have a very simple setup - a P133 with two interface: ed1 and de0 ed1 is plugged into my cable modem with a static IP - 24.112.137.146 de0 is plugged into my hub on the internal network - 192.168.4.1 Naturally, I want my internal machines on the 192.168.4.1/24 network to be able to use the FreeBSD box as their NAT gateway. This is a 3.0-RELEASE box, with IPDIVERT, IPFIREWALL kernel options. GATEWAY=YES Using a very simple ruleset like: /sbin/ipfw add divert natd all from any to any via ed1 /sbin/ipfw add 100 pass all from any to any via lo0 /sbin/ipfw add 200 deny all from any to 127.0.0.0/8 /sbin/ipfw add 65000 pass all from any to any Accompanied by "natd -n ed1" works nicely, and the NAT functions. The actual NAT box can get to both networks fine, and the internal machines also get access as expected. Naturally, I'd like to give a little more protection to the "router" box, but as soon as I try to do anything without the "add 65000 pass all from any to any" rule NAT just doesn't seem to want to go. Obviously, I'm doing something wrong and missing some key fundamental here, but no matter how many ways I play with the rules it beats me everytime. Using the ruleset below, which makes sense at least in my mind, I can get to the point where the router is open on the inside, and from the actual router I can make connections to the outsid world just fine, and incoming connections are rejected. In short everything is just how I'd like and expect it to be, with the one notable exception that packets simply aren't getting through the NAT part so my internal machines can't get to the internet. the "65534 deny all from any to any" ruleset is killing the packets.. I'm stumped. What do I need to get this thing running correctly? :-) TIA to anyone that can lift my ignorance.. -Mark #--------------------------------------------------------------------- # Firewall by Mark... # summary: allow all traffic on the inside net, block nearly all # incoming traffic on the outside interface (internet), do NAT for # internal machine to access internet # # inside interface: de0 # outside interfance: ed1 # outside and inside IPs oip="24.112.137.146" iip="192.168.4.1" /sbin/ipfw -f flush # Allow NAT to examine packets first /sbin/ipfw add divert natd all from any to any via ed1 # Setup loopback interface + interior interface /sbin/ipfw add 100 pass all from any to any via lo0 /sbin/ipfw add 200 deny all from any to 127.0.0.0/8 # Stop RFC1918 nets on the outside interface /sbin/ipfw add deny all from 192.168.0.0:255.255.0.0 to any via ed1 /sbin/ipfw add deny all from any to 192.168.0.0:255.255.0.0 via ed1 /sbin/ipfw add deny all from 172.16.0.0:255.240.0.0 to any via ed1 /sbin/ipfw add deny all from any to 172.16.0.0:255.240.0.0 via ed1 /sbin/ipfw add deny all from 10.0.0.0:255.0.0.0 to any via ed1 /sbin/ipfw add deny all from any to 10.0.0.0:255.0.0.0 via ed1 # Allow all traffic to pass - i.e. open the door! #/sbin/ipfw add 65000 pass all from any to any # Allow established connections through (i.e. setup from the inside) # TCP goes through if setup succeeded /sbin/ipfw add pass all from any to any out xmit ed1 /sbin/ipfw add pass tcp from any to any established # Allow traffic on my own net /sbin/ipfw add pass all from 192.168.4.0/24 to ${iip} /sbin/ipfw add pass all from ${iip} to 192.168.4.0/24 # Allow access to my SSH port for remote access /sbin/ipfw add pass tcp from any to ${oip} 22 setup # Reset connections on the ident ports to prevent timeouts /sbin/ipfw add reset tcp from any to ${oip} 113 # Reject & Log all setup of incoming connections from the outside #/sbin/ipfw add deny log tcp from any to any in via ed1 setup #/sbin/ipfw add deny log tcp from any to any in recv ed1 setup /sbin/ipfw add deny log tcp from any to ${oip} setup # Allow DNS queries out into the world /sbin/ipfw add pass udp from any 53 to ${oip} /sbin/ipfw add pass udp from ${oip} to any 53 # Everything else is denied by default -- ------------------------------------------------------------------------ Mark Mayo mark@vmunix.com RingZero Comp. http://www.vmunix.com/mark ------------------------------------------------------------------------ "The Church says the earth is flat. But I know it's round, for I have seen the shadow on the moon. And I have more faith in a shadow than in the Church." - Ferdinand Magellan To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19981208030926.A25214>