All,
I am confused on a point; hoping someone here can clear this up for me. The rules
below are in use on my mail server & appear to be working OK. However, they did not
work until I added the rule shown just below the comment line:
"# Allow the spamd connections"
If I have a redirect as I do, why do I need a rule that allows the redirect to
actually take place?
Put another way: do I need the redirect with the pass rule for spamd?
Thanks,
Jay Moore
=============== begin pf.conf ===============
# These rules for a mail server
ExtIF="rl0"
LoopBk="lo0"
AllowTcpIn="{ 22, 25, 113 }"
AllowUdpIn="{ }"
AllowIcmpIn="echoreq"
NoRouteIPs="{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 }"
table <spamd> persist
# options
set block-policy return
set loginterface $ExtIF
# scrub
scrub in all
# redirection rule for spamd; send scum to tarpit :)
# make sure spamd is started in rc & setup w/ spamd-setup
rdr inet proto tcp from <spamd> to any port smtp -> 127.0.0.1 port 8025
# filter rules - default deny everything
block all
# Allow loopback packets
pass quick on $LoopBk all
# Allow the spamd connections -->> ?? WHY ?? <<--
pass in on $ExtIF inet proto tcp from <spamd> to 127.0.0.1 port 8025 \
flags S/SA keep state
# block RFC 1918 addresses from entering or exiting ext_if
# "block drop" -> don't respond w/ TCP RST or ICMP Unreachable packet
# block drop in quick on $ExtIF from $NoRouteIPs to any
# block drop out quick on $ExtIF from any to $NoRouteIPs
# open ports we want accessible from Internet
pass in on $ExtIF inet proto tcp from any to $ExtIF port $AllowTcpIn \
flags S/SA keep state
# pass required ICMP traffic
pass in inet proto icmp all icmp-type $AllowIcmpIn keep state
# pass traffic out on the interface
pass out on $ExtIF proto tcp all modulate state flags S/SA
pass out on $ExtIF proto { udp, icmp } all keep state
================ end pf.conf ================