I've noticed a few of these PF log entries that were logging traffic
passed and containing IP options:

Sep 30 22:52:12.586548 rule 32/(ip-option) [uid 0, pid 9872] pass in on sis1:
    10.0.1.23.1031 > x.x.13.31.10000: [udp sum ok] udp 68 (ttl 255, id 5,
    len 100, optlen=4 IPOPT-148{4})
                    4600 0064 0005 0000 ff11 4709 0a00 0117
                    xxxx 0d1f 9404 0000 0407 2710 004c 0c4a
                    b38e b558 0000 0002 60a9 3aea 66c6 929b
                    9f98 00bb cdac ef28 9b28 c96d 970b 0b81
                    c834 1336 a7bb 6e8c 5cb5 1a57 93f4 51ec
                    3ae5 f0b2 e17c 9ac8 b13a 06c8 5bd1 59a9
                    9292 8fc5
Sep 30 22:52:13.478540 rule 32/(ip-option) [uid 0, pid 9872] pass in on sis1:
    10.0.1.23.1031 > x.x.13.31.10000: [udp sum ok] udp 68 (ttl 255, id 23,
    len 100, optlen=4 IPOPT-148{4})
                    4600 0064 0017 0000 ff11 46f7 0a00 0117
                    xxxx 0d1f 9404 0000 0407 2710 004c ee73
                    b38e b558 0000 0014 5d3f 9355 fec2 166e
                    abd4 dd96 419a 70f0 4b44 ef4b 4ef3 5a7a
                    35bd 3cc1 0f02 c857 29ce 2d23 6a22 7694
                    ecf0 6afe a634 92e0 82fa 332b 2f84 70d3
                    b743 5759

The rule that this matched is as follows:

@32 pass in on sis1 inet from any to ! 10.0.1.1 flags S/SA keep state
  [ Evaluations: 84252     Packets: 5119148   Bytes: 2733671124  States: 29    ]
  [ Inserted: uid 0 pid 9872 ]

I was under the belief that packets with IP options were dropped but
this appears to be passed and logged. Is it because this is an
explicit pass rule and packets with IP options are only dropped if the
default pass rule is matched? I figured from pf.conf(5) that the
packets would be dropped unless allow-opts was specified:

allow-opts
       By default, packets which contain IP options are blocked.  When
       allow-opts is specified for a pass rule, packets that pass the fil-
       ter based on that rule (last matching) do so even if they contain
       IP options.  For packets that match state, the rule that initially
       created the state is used.  The implicit pass rule that is used
       when a packet does not match any rules does not allow IP options.

This host is running OpenBSD 4.0/i386.

DS

Reply via email to