# [ /etc/pf.conf ] :: [ EVA ] :: [ by Stealth ][ 2007-08-24 ] # -----------+ # Interfaces | int_if = "lo0" ext_if = "bge0" # ----+ # IPs | shield = "80.250.162.163" ftp_ip = "80.250.162.180" pro_ip = "80.250.162.181" # -------------+ # Active VLANs | vlans = "{ vlan3, vlan4, vlan5, vlan6, vlan7, vlan8, vlan9, vlan10, vlan11 }" vlan_eva = "vlan2" vlan_colocation = "vlan1" # --------+ # Servers | server_ftp = "10.0.0.49" server_mail = "10.0.0.180" server_linux = "10.0.0.33" server_admin = "10.0.0.105" server_jabber = "10.0.0.114" # ---------+ # Services | icmp_type = "echoreq" udp_services = "{ domain, ntp }" tcp_services = "{ ftp-data, ftp, ssh, nameserver, whois, domain, www, auth, \ ntp, rsync, 5222, 5223, cvspserver, 6667, 49152:49170 }" # -------+ # Tables | table const { \ 10.0.0.1, \ 172.16.3.1, \ 172.16.4.1, \ 172.16.5.1, \ 172.16.6.1, \ 172.16.7.1, \ 172.16.8.1, \ 172.16.9.1, \ 172.16.10.1, \ 172.16.11.1 } table const { \ 80.250.162.182/28, \ 80.250.162.183/28, \ 80.250.162.187/28, \ 80.250.163.82/28, \ 80.250.163.83/28, \ 80.250.163.84/28, \ 80.250.163.85/28, \ 80.250.163.86/28, \ 80.250.163.87/28, \ 80.250.163.88/28, \ 80.250.163.89/28, \ 80.250.163.90/28, \ 80.250.163.91/28, \ 80.250.163.92/28, \ 80.250.163.93/28, \ 80.250.163.94/28 } table const { \ 10.0.0.0/22 } table const { \ 10.0.4.0/22 } table const { \ 172.16.3.0/24, \ 172.16.4.0/24, \ 172.16.5.0/24, \ 172.16.6.0/24, \ 172.16.7.0/24, \ 172.16.9.0/24, \ 172.16.8.0/24, \ 172.16.10.0/24, \ 172.16.11.0/24 } table const { \ $server_ftp \ $server_mail \ $server_linux \ $server_admin \ $server_jabber } table persist # --------+ # Options | set optimization satellite set state-policy if-bound set skip on $int_if set loginterface $ext_if # ----------+ # Scrubbing | scrub on $ext_if fragment drop-ovl # ----+ # NAT | nat on $ext_if inet from { , } -> ($ext_if) # ---------+ # Proxying | # share rdr pass proto tcp to $ftp_ip -> $server_ftp # mail rdr pass proto { udp, tcp } to $pro_ip port { smtp, imap, imaps, submission } -> $server_mail rdr pass proto { udp, tcp } from $server_mail port smtp -> $pro_ip # linux rdr pass proto tcp to $pro_ip port ssh -> $server_linux # jabber rdr pass proto tcp to $pro_ip port { 5222, 5223 } -> $server_jabber # ------------+ # Redirection | # NOTE: ftp -- 51k / ssh -- 52k / https -- 53k # giirt rdr pass proto tcp to $pro_ip port 53056 -> 10.0.0.56 port https # 1514 rdr pass proto tcp to $pro_ip port 51061 -> 10.0.0.61 port ftp rdr pass proto tcp to $pro_ip port 52061 -> 10.0.0.61 port ssh # admin rdr pass proto tcp to $pro_ip port 51105 -> 10.0.0.105 port ftp # wikitest rdr pass proto tcp to $pro_ip port 51118 -> 10.0.0.118 port ftp rdr pass proto tcp to $pro_ip port 52118 -> 10.0.0.118 port ssh # hosting rdr pass proto tcp to $pro_ip port 52121 -> 10.0.0.121 port ssh # monitoring rdr pass proto tcp to $pro_ip port 52126 -> 10.0.0.126 port ssh # ZenGeist rdr pass proto tcp to $pro_ip port 54001 -> 172.16.11.63 port ssh rdr pass proto tcp to $pro_ip port 54002 -> 172.16.4.63 port ssh rdr pass proto tcp to $pro_ip port 54003 -> 172.16.3.57 port ssh # --------------------+ # Spoofing protection | antispoof log for $ext_if # ---------+ # Ban list | block log from # --------------+ # Carte blanche | block in log # icmp pass inet proto icmp icmp-type $icmp_type # freedom::in pass in log on $ext_if proto udp to port $udp_services pass in log on $ext_if proto tcp to port $tcp_services # freedom::out pass out log on $ext_if modulate state # freedom::shield pass log on $ext_if proto tcp to $shield port 60000 # freedom::vlans pass in on $vlans to { !, } pass out on $vlans from { !, } # freedom::vlans::eva pass in on $vlan_eva from { , } pass out on $vlan_eva to pass out on $vlan_eva from ! # freedom::colocation pass log to pass log from to { !, $server_mail } # freedom::vpn pass log on tu