Hi,

I'm seeing a discrepancy between pf.conf(5) timeout options and actual
behavior. I have an internal host that initiates a connection outbound
through the firewall with a "keep state" rule. After the remote host
sends a FIN and the local host ACKs it, the state table entry starts a
45 second countdown and then is purged. The local host has not sent a
FIN yet, so the state shows as "FIN_WAIT_2:ESTABLISHED". I have not
modified the default timers in my ruleset. The only 45s timer is
tcp.finwait, but I wouldn't expect that to be used until after the
local host sent it's FIN. Shouldn't the tcp.closing timer (90s) be used
instead, or am I interpreting this wrong? I'm running OpenBSD 3.7.

[from pf.conf(5)]
   tcp.closing
      The state after the first FIN has been sent.
   tcp.finwait
      The state after both FINs have been exchanged and the connec-
      tion is closed.  Some hosts (notably web servers on Solaris)
      send TCP packets even after closing the connection.  Increas-
      ing tcp.finwait (and possibly tcp.closing) can prevent block-
      ing of such packets.

# pfctl -st
tcp.first                   120s
tcp.opening                  30s
tcp.established           86400s
tcp.closing                 900s
tcp.finwait                  45s
tcp.closed                   90s
tcp.tsdiff                   30s

-Ryan

Reply via email to