Feature #15183
closed
Add per-rule option to set PF State Policy (if-bound vs floating)
Added by Jim Pingle 10 months ago.
Updated 10 months ago.
Plus Target Version:
24.03
Description
Now that #15173 is in place it would be helpful to have a per-rule option to set state policy between default, if-bound, and floating.
This would work similar to the current "State Type" option but separate from that. Both policy and type can be set at the same time. Combining the options would be confusing.
The option should be named "State Policy", go directly above "State Type", and have three choices in a selection list drop-down:
- "" (empty/unset): Default - Use current global default policy
- "if-bound": Interface Bound - Packets matching states created by this rule can only pass on this interface (more secure)
- "floating": Floating - Packets matching states created by this rule can pass on any interface (more lenient)
Help text can lightly summarize the behavior and link to system_advanced_firewall.php
and note to see option "Firewall State Policy" there for full details.
When crafting rules, it should be set similar to sloppy and other $aline['flags']
entries (~Line 3597 on CE, 3660 on Plus)
See #15173 for more info.
- Status changed from New to In Progress
Note when testing that the OS default is floating
, thus when inspecting rules output by pfctl -sr
the word "floating" will not appear. If the rule has no listed policy in pfctl -sr
, it's using floating
. The global default does not affect this at all, it's only influenced by the OS default.
When a rule uses if-bound
, however, that will always appear, for the same reason (it always differs from the OS default).
- Status changed from In Progress to Feedback
- % Done changed from 0 to 100
- Related to Todo #15173: Add global option to set default PF State Policy (if-bound vs floating) added
Firewall State Policy option is added:
pfctl -sr results:
interface bound state:
pass in quick on em0 reply-to (em0 10.100.100.1) inet all flags S/SA keep state label "USER_RULE: test" label "id:1706381909" ridentifier 1706381909
floating state:
pass in quick on em0 reply-to (em0 10.100.100.1) inet all flags S/SA keep state (if-bound) label "USER_RULE: test" label "id:1706381909" ridentifier 1706381909
2.8.0.a.20240126.0600
- Status changed from Feedback to Resolved
Also available in: Atom
PDF