OS: OpenBSD 4.4 RELEASE i386 PF is blocking traffic that I want it to pass. I notice this when I run nmap 4.76 (compiled from source). It appears that my packets are being dropped because they don't match the "pass out quick" rule in my pf.conf. I noticed this rule is modified due to the default setting to match on flags S/SA. How do I create a rule to ignore the flags S/SA so that my scans can complete?
# nmap -sS -T5 -sV -p- 2.2.2.2 Starting Nmap 4.76 ( http://nmap.org ) at 2008-11-20 22:47 PST sendto in send_ip_packet: sendto(4, packet, 40, 0, 2.2.2.2, 16) => No route to host Offending packet: TCP 1.1.1.1:37016 > 2.2.2.2:80 A ttl=45 id=13618 iplen=40 seq=3279582132 win=2048 ack=3457570278 Sleeping 15 seconds then retrying sendto in send_ip_packet: sendto(4, packet, 40, 0, 2.2.2.2, 16) => No route to host Offending packet: TCP 1.1.1.1:37016 > 2.2.2.2:80 A ttl=45 id=13618 iplen=40 seq=3279582132 win=2048 ack=3457570278 Sleeping 60 seconds then retrying (truncated for brevity) PF logs show that the packets are dropped due to rule 0 match: # tcpdump -n -e -ttt -s 1514 -r /var/log/pflog host 2.2.2.2 Nov 20 22:42:37.938337 rule 0/(match) block out on fxp0: 1.1.1.1.46363 > 2.2.2.2.80: . ack 834370022 win 2048 Nov 20 22:42:52.940776 rule 0/(match) block out on fxp0: 1.1.1.1.46363 > 2.2.2.2.80: . ack 1 win 2048 Nov 20 22:45:02.202499 rule 0/(match) block out on fxp0: 1.1.1.1.42175 > 2.2.2.2.80: . ack 2174811336 win 1024 Nov 20 22:45:17.206752 rule 0/(match) block out on fxp0: 1.1.1.1.42175 > 2.2.2.2.80: . ack 1 win 1024 Nov 20 22:46:17.194321 rule 0/(match) block out on fxp0: 1.1.1.1.42175 > 2.2.2.2.80: . ack 1 win 1024 Nov 20 22:47:12.874250 rule 0/(match) block out on fxp0: 1.1.1.1.37016 > 2.2.2.2.80: . ack 3457570278 win 2048 Nov 20 22:47:27.877828 rule 0/(match) block out on fxp0: 1.1.1.1.37016 > 2.2.2.2.80: . ack 1 win 2048 Nov 20 22:48:27.865343 rule 0/(match) block out on fxp0: 1.1.1.1.37016 > 2.2.2.2.80: . ack 1 win 2048 (truncated for brevity) Here are my PF rules # pfctl -s rules block return log all block return in quick inet6 all pass quick proto icmp all keep state allow-opts pass out quick all flags S/SA keep state allow-opts pass in log on fxp0 proto tcp from any to (fxp0) port = ssh flags S/SA keep state pass in on fxp0 proto tcp from any to (fxp0) port = www flags S/SA keep state pass quick on vlan0 all flags S/SA keep state allow-opts pass quick on vlan1 all flags S/SA keep state allow-opts Here is my pf.conf # cat /etc/pf.conf # SETTINGS set block-policy return set loginterface fxp0 set skip on lo scrub in # NAT/RDR nat on fxp0 from !(fxp0) to any -> (fxp0) # RULES block log all block in quick inet6 all pass quick proto icmp allow-opts pass out quick all allow-opts pass in log on fxp0 proto tcp from any to (fxp0) port 22 pass in on fxp0 proto tcp from any to (fxp0) port 80 pass quick on vlan0 allow-opts pass quick on vlan1 allow-opts