WAN="hme1" LAN="hme2" WLAN="hme3" DMZ1="hme4" DMZ2="hme5" DMZ3="hme6" IPV6="gif0" table const {self} table file "/etc/pf/spoofing/IPSpoof-LAN" table file "/etc/pf/spoofing/IPSpoof-WLAN" table file "/etc/pf/spoofing/IPSpoof-DMZ1" table file "/etc/pf/spoofing/IPSpoof-DMZ2" table file "/etc/pf/spoofing/IPSpoof-DMZ3" table file "/etc/pf/spoofing/IPSpoof-Networks" table file "/etc/pf/services/DNS-Servers" table file "/etc/pf/default/defaultdrop" table file "/etc/pf/default/dropicmp" INTERNET="{! }" set skip on lo set loginterface hme0 set block-policy drop scrub in # ------------------------- NAT ------------------------------- nat on $WAN from to $INTERNET -> ($WAN) # vr: LAN HIDE-NAT nat on $WAN from to $INTERNET -> ($WAN) # vr: WLAN HIDE-NAT # ------------------------- RDR ------------------------------- nat-anchor "ftp-proxy/*" rdr-anchor "ftp-proxy/*" rdr pass on $LAN proto tcp from to any port 21 -> 127.0.0.1 port 8021 rdr pass on $WLAN proto tcp from to any port 21 -> 127.0.0.1 port 8021 # rdr pass on $WAN proto tcp from any to any port 80 -> 192.168.3.2 port 80 # ----------------------- DEFAULT ----------------------------- # DEFAULT DROP block log block log quick from # vr: Block Specific Users block log quick proto icmp from # vr: Disable ICMP for Specific Users # SPOOFING block in log quick on $WAN from to any block in log quick on $WAN from to any block in log quick on $WAN from to any block in log quick on $WAN from to any block in log quick on $WAN from to any block in log quick on ! $LAN from to any block in log quick from ($LAN) to any block in log quick on ! $WLAN from to any block in log quick from ($WLAN) to any block in log quick on ! $DMZ1 from to any block in log quick from ($DMZ1) to any block in log quick on ! $DMZ2 from to any block in log quick from ($DMZ2) to any block in log quick on ! $DMZ3 from to any block in log quick from ($DMZ3) to any # ------------------------ INHERIT ---------------------------- pass log quick from to any keep state # vr: Allows the Firewall to talk to * pass log quick inet proto icmp from $INTERNET to ($WAN) icmp-type echoreq keep state # vr: WAN Interface Pingable # ------------------------- POLICY ---------------------------- pass log quick inet proto tcp from any to 192.168.3.2 port 80 keep state # LAN <> ANY pass log quick inet proto icmp from to any icmp-type echoreq keep state # vr: ICMP/echo pass log quick inet proto udp from to any port 33000><33999 keep state # vr: TRACEROUTE # LAN <> WLAN pass log quick from to keep state # vr: Access WLAN pass log quick inet proto tcp from to port 22 keep state pass log quick inet proto tcp from to 192.168.1.101 port 80 keep state # vr: Access to mythtv # LAN <> WAN pass log quick proto udp from to port 53 keep state # vr: DNS pass log quick from to $INTERNET keep state # vr: Internet Access for LAN # LAN <> DMZ1 pass log quick from to keep state # vr: Access to DMZ1 pass log quick from to $INTERNET keep state # vr: DMZ DNS # WLAN <> WAN pass log quick proto udp from to port 53 keep state # vr: DNS pass log quick from to $INTERNET keep state # vr: Internet Access for WLAN # FIREWALL pass log quick proto tcp from to ($LAN) port 22 keep state # vr: SSH ACCESS FROM LAN pass log quick proto tcp from to ($LAN) port 8021 keep state # vr: SSH ACCESS FROM LAN pass log quick proto tcp from $INTERNET to ($WAN) port 22 keep state # vr: SSH ACCESS FROM INTERNET anchor "ftp-proxy/*" pass out proto tcp from to any port 21 keep state block log quick to # vr: FIREWALL CATCHALL