All pastes #503317 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-05-22 20:46 UTC
rendered paste body
##################
#####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 <table -T show/flush to show/flush   #
####################################################





##################
#####MACROS#######
############################################################################################################################
############################################################################################################################
############################################################################################################################

#####INTERFACES###############
EXT_IF="pppoe0"	
INT_IF="vr1"
LO="lo0"
INT_NET="192.168.0.0/24"
##############################

#####MACHINES#################
LOCALHOST="127.0.0.1"
METEORA="192.168.0.1"
SILVERSTAR="192.168.0.2"
GALAXIA="192.168.0.3"
SOLARIS="192.168.0.4"
CELESTIALNEXUS="192.168.0.5"
WII="192.168.0.51"
XBOX="192.168.0.52"
PS3="192.168.0.55"
##############################

####PORTS##################################################################################
SILVERSTARFWD="{ www, ftp }"   ###80/HTTP###25/SMTP###110/POP3###22/SSHD###21/FTP###
BITTORRENT="6881:6889"
AIM="5190"
ICMP_TYPES="{ echoreq, unreach }"
SSH="{ 22 2022 }"
IM="{ 1863 5190 5222 }"
WWW="{ www, https, pop3, smtp, ftp, ftp-data, rsync }"
###########################################################################################################################
###########################################################################################################################
###########################################################################################################################





###########################################################################################################################
####GENERAL################################################################################################################
###########################################################################################################################

######TABLES####################################
table <bruteforce> persist
table <noroute> 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 <bruteforce>
#####################################

#####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 <noroute> to any
block drop out quick on $EXT_IF from any to <noroute>
###########################################################

##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 <bruteforce> 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 <bruteforce> 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 <bruteforce> 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##########################################################################################################
################################################################################################################