In order to actually live test this rule set,
I have to come in in the middle of the night and swap out the linux server.
I'd like to have as many bugs worked out before then.
I finally have a pf rule the "pf -f /etc/pf.conf" command
doesn't puke on. I now submit it to you to see if there's
anything funky I did, perhaps things should be moved around.
the way it's setup is like this
INTERNET------Firewall-----INTERNET SERVERS
|
|
NAT
I want by default all access in to be denied unless explicitly allowed.
and all access out to allowed
(except msn messanger and aol which i have yet to figure out).
on to the config!
=====PASTE CONFIG FILE=====
######################
# INTERFACE SETTINGS #
######################
ext_if = "xl0"
int_if = "xl1"
dmz = "xl2"
##################################
# Block everything IN by default #
##################################
block in log on $ext_if all
############################
# Unwanted list. #
# Keep these people away! #
############################
blocklist = "{ 66.220.25.151, 216.127.82.63, 216.228.123.2, 216.127.82.63,
138.9.200.8, 198.186.220.95, 65.243.141.125, 207.46.125.16, biz360.netmar.com,
server37.aitcom.net, rhea.hmdns.net, paris.webpipe.net,
evrtwa1-ar3-4-65-130-024.evrtwa1.dsl-verizon.net, dsl-52.psni.net,
sea-host134.inter-tel.com, blv-proxy-07.boeing.com, ip-216-73-190-204.hqglobal.net }"
block in log quick on $ext_if inet from $blocklist to any
##############
# ROUTE RULE #
##############
pass in on { $ext_if, $int_if, $dmz } proto { tcp, udp } from any to any port route
keep state
########################
# MAIL SERVER SETTINGS #
########################
emailport = "{ smtp pop3 imap imaps pop3s 5309 }"
mailserver = "207.109.73.101"
pass in on $ext_if proto { tcp, udp } from any to $mailserver port $emailport keep
state
pass in log on $ext_if proto { tcp, udp } from any to $mailserver port ssh keep state
#######################
# WEB SERVER SETTINGS #
#######################
webport = "{ www https ntp domain }"
webservers = "207.108.73.64/26"
pass in on $ext_if proto { tcp, udp } from any to $webservers port $webport keep state
pass in log on $ext_if proto { tcp, udp } from any to $webservers port ssh keep state
###############################
# FTP PROXY SETTINGS (CHARON) #
###############################
charonport = "{ ftp-data ftp 1024 }"
charon = "207.109.73.104"
pass in on { $ext_if, $dmz } proto { tcp, udp } from any to $charon port $charonport
keep state
pass in log on $ext_if proto { tcp, udp } from any to $charon port ssh keep state
##################################
# MISCELLANEOUS SSH CONNECTIONS #
##################################
ghost = "207.109.73.74"
veda = "207.109.73.73"
lanfear = "207.109.73.93"
pass in on $ext_if proto { tcp, udp } from any to { $ghost, $veda, $lanfear } port ssh
keep state
##########################
# MISCELLANEOUS SETTINGS #
##########################
pass in on $ext_if proto { tcp, udp } from any to { $ghost, $veda } port 8879 <> 9001
keep state
################################
# Pass everying out by default #
################################
pass out on $ext_if all
=====END OF THE CONFIG=====
--Bryan