Date: Tue, 22 Feb 2005 15:29:36 -0500 From: sn1tch <dot.sn1tch@gmail.com> To: freebsd-ipfw@freebsd.org Subject: IPFW Ruleset Message-ID: <a82b971905022212292e3e2a59@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
I'm trying to setup a stateful ruleset for my bsd machine, I have natd running and working, but for the life of me I cannot get to any outside websites. I know DNS is getting blocked but it's by one of the last rules denying everything else=E2=80=A6and I cant seem to get the firew= all to let it pass on.. Here is what I have (which is right out of the FreeBSD handbook): =20 // Begin=20 case ${firewall_type} in=20 [Nn][Ee][Tt])=20 # Outside interface network and netmask and ip oif=3D"fxp0" onet=3D"111.111.111.0" omask=3D"255.255.255.0" oip=3D"111.111.111.45" =20 # Inside interface network and netmask and ip iif=3D"fxp1" inet=3D"10.0.0.0" imask=3D"255.0.0.0" iip=3D"10.0.0.1" =20 # DNS servers dns1=3D"111.111.111.115" =20 skip=3D"skipto 800" =20 cmd=3D"ipfw -q add" =20 setup_loopback =20 ################################################################# # No restrictions on Inside Lan Interface for private network # Change xl0 to your Lan Nic card interface name ################################################################# $cmd 005 allow all from any to any via $iif =20 ################################################################# # No restrictions on Loopback Interface ################################################################# $cmd 010 allow all from any to any via lo0 =20 ################################################################# # check if packet is inbound and nat address if it is ################################################################# $cmd 014 divert natd ip from any to any in via $oif =20 ################################################################# # Allow the packet through if it has previous been added to the # the "dynamic" rules table by a allow keep-state statement. ################################################################# $cmd 015 check-state =20 ################################################################# # Interface facing Public Internet (Outbound Section) # Interrogate session start requests originating from behind the # firewall on the private network or from this gateway server # destine for the public Internet. ################################################################# # Allow out access to my ISP.s Domain name server. # x.x.x.x must be the IP address of your ISP.s DNS # Dup these lines if your ISP has more than one DNS server # Get the IP addresses from /etc/resolv.conf file $cmd 020 $skip tcp from any to $dns1 53 out via $oif setup keep-state =20 # Allow out access to my ISP.s DHCP server for cable/DSL configurations. $cmd 030 $skip udp from any to 111.111.111.116 67 out via $oif keep-state =20 # Allow out non-secure standard www function $cmd 040 $skip tcp from any to any 80 out via $oif setup keep-state =20 # Allow out secure www function https over TLS SSL $cmd 050 $skip tcp from any to any 443 out via $oif setup keep-state =20 # Allow out send & get email function $cmd 060 $skip tcp from any to any 25 out via $oif setup keep-state $cmd 061 $skip tcp from any to any 110 out via $oif setup keep-state =20 # Allow out FreeBSD (make install & CVSUP) functions # Basically give user root "GOD" privileges. $cmd 070 $skip tcp from me to any out via $oif setup keep-state uid root =20 # Allow out ping $cmd 080 $skip icmp from any to any out via $oif keep-state =20 # Allow out Time $cmd 090 $skip tcp from any to any 37 out via $oif setup keep-state =20 # Allow out nntp news (i.e. news groups) $cmd 100 $skip tcp from any to any 119 out via $oif setup keep-state =20 # Allow out secure FTP, Telnet, and SCP # This function is using SSH (secure shell) $cmd 110 $skip tcp from any to any 22 out via $oif setup keep-state =20 # Allow out whois $cmd 120 $skip tcp from any to any 43 out via $oif setup keep-state =20 # Allow ntp time server $cmd 130 $skip udp from any to any 123 out via $oif keep-state =20 ################################################################# # Interface facing Public Internet (Inbound Section) # Interrogate packets originating from the public Internet # destine for this gateway server or the private network. ################################################################# # Deny all inbound traffic from non-routable reserved address spaces $cmd 300 deny all from 192.168.0.0/16 to any in via $oif #RFC 1918 private = IP $cmd 301 deny all from 172.16.0.0/12 to any in via $oif #RFC 1918 private I= P $cmd 302 deny all from 10.0.0.0/8 to any in via $oif #RFC 1918 private IP $cmd 303 deny all from 127.0.0.0/8 to any in via $oif #loopback $cmd 304 deny all from 0.0.0.0/8 to any in via $oif #loopback $cmd 305 deny all from 169.254.0.0/16 to any in via $oif #DHCP auto-config $cmd 306 deny all from 192.0.2.0/24 to any in via $oif #reserved for docs $cmd 307 deny all from 204.152.64.0/23 to any in via $oif #Sun cluster $cmd 308 deny all from 224.0.0.0/3 to any in via $oif #Class D & E multicas= t =20 # Deny ident $cmd 315 deny tcp from any to any 113 in via $oif =20 # Deny all Netbios service. 137=3Dname, 138=3Ddatagram, 139=3Dsession # Netbios is MS/Windows sharing services. # Block MS/Windows hosts2 name server requests 81 $cmd 320 deny tcp from any to any 137 in via $oif $cmd 321 deny tcp from any to any 138 in via $oif $cmd 322 deny tcp from any to any 139 in via $oif $cmd 323 deny tcp from any to any 81 in via $oif =20 # Deny any late arriving packets $cmd 330 deny all from any to any frag in via $oif =20 # Deny ACK packets that did not match the dynamic rule table $cmd 332 deny tcp from any to any established in via $oif =20 # Allow traffic in from ISP.s DHCP server. This rule must contain # the IP address of your ISP.s DHCP server as it.s the only # authorized source to send this packet type. # Only necessary for cable or DSL configurations. # This rule is not needed for .user ppp. type connection to # the public Internet. This is the same IP address you captured # and used in the outbound section. $cmd 360 allow udp from 111.111.111.116 to any 68 in via $oif keep-state =20 # Allow in standard www function because I have apache server $cmd 370 allow tcp from any to me 80 in via $oif setup limit src-addr 2 $cmd 371 allow tcp from any to me 443 in via $oif setup limit src-addr 10 =20 # Allow in secure FTP, Telnet, and SCP from public Internet $cmd 380 allow tcp from any to me 21 in via $oif setup limit src-addr 2 $cmd 385 allow tcp from any to me 22 in via $oif setup limit src-addr 2 =20 # Reject & Log all unauthorized incoming connections from the public Intern= et $cmd 400 deny log all from any to any in via $oif =20 # Reject & Log all unauthorized out going connections to the public Interne= t $cmd 450 deny log all from any to any out via $oif =20 # This is skipto location for outbound stateful rules $cmd 800 divert natd ip from any to any out via $oif $cmd 801 allow ip from any to any =20 # Everything else is denied by default # deny and log all packets that fell through to see what they are $cmd 999 deny log all from any to any =20 ;; =20 // End =20 =20 Thanks in advance for any help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?a82b971905022212292e3e2a59>