################## #####HELP######### ################## #################################################### #To view the logfiles: # # tcpdump -n -e -ttt -r /var/log/pflog # #################################################### #To tail -f the logfile: # # tcpdump -n -e -ttt -i pflog0 # #################################################### #Use pfctl -s nat to show the effective nat-rules# #################################################### #Use pfctl -s rules to show your effective pf-rules# #################################################### #Use pfctl -t persist table const { 192.168.0.0/16, 127.0.0.0/8, 172.16.0.0/12, 10.0.0.0/8, 0.0.0.0/8, 169.254.0.0/16, 192.0.2.0/24, 204.152.64.0/23, 224.0.0.0/3, 255.255.255.255/32 } ################################################ #####OPTIONS#################################### set block-policy drop set loginterface $EXT_IF set optimization aggressive set ruleset-optimization basic set skip on lo0 ################################################ #####SCRUB##################################################### scrub on $EXT_IF all fragment reassemble random-id max-mss 1488 ############################################################### ########################################################################################################################## ########################################################################################################################## ########################################################################################################################## ########################################################################################################################## #####QUEUEING############################################################################################################# ########################################################################################################################## #####ALTQ##PRIQ############################################################################ altq on $EXT_IF priq bandwidth 800Kb queue { std_out, www_out, httpd_out, ssh_im_out, dns_out, tcp_ack_out } queue std_out priq(default) queue www_out priority 3 priq(red) queue httpd_out priority 4 priq(red) queue ssh_im_out priority 5 priq(red) queue dns_out priority 6 queue tcp_ack_out priority 7 ########################################################################################### #####ALTQ##CBQ############################################################################# #altq on $INT_IF cbq bandwidth 16Mb queue { std_in, ssh_im_in, dns_in, clients_in } #queue std_in bandwidth 600Kb cbq(default) #queue ssh_im_in bandwidth 200Kb priority 4 #queue dns_in bandwidth 200Kb priority 5 #queue clients_in bandwidth 15Mb { silverstar_in, galaxia_in, solaris_in, celestialnexus_in, wii_in, xbox_in, ps3_in } # queue silverstar_in bandwidth 1Mb cbq(borrow) # queue galaxia_in bandwidth 1Mb cbq(borrow) # queue solaris_in bandwidth 5Mb cbq(borrow) # queue celestialnexus_in bandwidth 5Mb cbq(borrow) # queue wii_in bandwidth 1Mb cbq(borrow) # queue xbox_in bandwidth 1Mb cbq(borrow) # queue ps3_in bandwidth 1Mb cbq(borrow) ######################################################################################################################### ######################################################################################################################### ######################################################################################################################### ############################################################################################################################ #####NAT&REDIRECTS########################################################################################################## ############################################################################################################################ #####NAT############################################### nat on $EXT_IF from $INT_IF:network to any -> ($EXT_IF) ####################################################### #####FTP#PROXY################################################################ nat-anchor "ftp-proxy/*" rdr-anchor "ftp-proxy/*" rdr pass on $INT_IF proto tcp from any to any port ftp -> 127.0.0.1 port 8021 ############################################################################## #####FORWARDING##SERVER############################################################## rdr on $EXT_IF proto tcp from any to ($EXT_IF) port $SILVERSTARFWD -> $SILVERSTAR ##################################################################################### #####FORWARDING#CLIENTS############################################################### rdr on $EXT_IF proto tcp from any to ($EXT_IF) port $BITTORRENT -> $SOLARIS rdr on $EXT_IF proto { tcp, udp } from any to ($EXT_IF) port $AIM -> $CELESTIALNEXUS ###################################################################################### ############################################################################################################################ ############################################################################################################################ ############################################################################################################################ ################## #####DEBUG######## ################## ################### #pass in quick all #pass out quick all ################### ############################################################################################################################ #####DEFAULTS############################################################################################################### ############################################################################################################################ ######DEFAULT######################## block log block log quick from ##################################### #####INTERNAL#NETWORK########## pass quick on $INT_IF no state ############################### #####PORTSCAN####################### block log quick proto tcp flags /S block log quick proto tcp flags A/A #################################### ####ANTI#SPOOF############################################# antispoof for { $EXT_IF, $INT_IF } inet block out log quick on $EXT_IF inet from !($EXT_IF) to any block drop in quick on $EXT_IF from to any block drop out quick on $EXT_IF from any to ########################################################### ##Allow#incoming#traffic#to#ftp#proxy################### anchor "ftp-proxy/*" ######################################################## ####################################################################################################################### ####################################################################################################################### ####################################################################################################################### ####################################################################################################################### ############OUTGOING##CONNECTIONS##&##INTERNET##PROTOCOLS############################################################## ####################################################################################################################### #####UDP#ICMP############################################################################################ pass out quick on $EXT_IF inet proto { tcp udp } from ($EXT_IF) to any port domain queue dns_out pass out quick on $EXT_IF inet proto { udp icmp } from ($EXT_IF) to any queue std_out ######################################################################################################### #####TCP#OUT############################################################################################# pass out quick on $EXT_IF inet proto tcp from ($EXT_IF) to any port $WWW queue(www_out, tcp_ack_out) pass out quick on $EXT_IF inet proto tcp from ($EXT_IF) to any port $IM queue(ssh_im_out, tcp_ack_out) pass out quick on $EXT_IF inet proto tcp from ($EXT_IF) to any port $SSH queue(std_out, ssh_im_out) pass out quick on $EXT_IF inet proto tcp from ($EXT_IF) to any modulate state queue(std_out, tcp_ack_out) ######################################################################################################### ####################################################################################################################### ####################################################################################################################### ####################################################################################################################### ################################################################################################################ #####INCOMING#SILVERSTAR######################################################################################## ################################################################################################################ ######INCOMING###ICMP############################################################# pass in quick inet proto icmp all icmp-type $ICMP_TYPES ################################################################################## ######INCOMING###SSH###BRUTEFORCE################################################# pass in log quick proto { tcp, udp } from any to ($EXT_IF) port ssh \ synproxy state \ (max-src-conn 15, max-src-conn-rate 5/3, \ overload flush global) \ queue (std_out, ssh_im_out) ################################################################################## ######INCOMING###FTP###BRUTEFORCE################################################# pass in log quick inet proto tcp from any to $SILVERSTAR port ftp \ synproxy state \ (max-src-conn 15, max-src-conn-rate 5/3, \ overload flush global) \ queue (httpd_out, tcp_ack_out) ################################################################################## ###INCOMING###www###########BRUTEFORCE############################################ #pass in log quick inet proto tcp from any to $SILVERSTAR port www \ # synproxy state \ # (max-src-conn 300, max-src-conn-rate 100/1, \ # overload flush global) \ # queue (httpd_out, tcp_ack_out) pass in log quick inet proto tcp from any to $SILVERSTAR port www \ synproxy state \ queue (httpd_out, tcp_ack_out) ################################################################################## ################################################################################################################ ################################################################################################################ ################################################################################################################ ################################################################################################################ #####INCOMING#CLIENTS########################################################################################### ################################################################################################################ #####INCOMING#CLIENTS############################################################################################### pass in quick on $EXT_IF inet proto tcp from any to $SOLARIS port $BITTORRENT queue (std_out, tcp_ack_out) pass in quick on $EXT_IF inet proto { tcp, udp } from any to $CELESTIALNEXUS port $AIM queue (std_out, tcp_ack_out) #################################################################################################################### ################################################################################################################ ###EOF########################################################################################################## ################################################################################################################