分页: 1 / 1

《8. OpenBSD PF用户指南之高级配置——运行时选项》

发表于 : 2010-01-21 10:26
leo
PF: 运行选项

--------------------------------------------------------------------------------

选项用来控制PF的操作。在 pf.conf 中用 set 指定选项。

注意: OpenBSD 3.7及以后版本, 运行选项的表现有所变化。以前, 一旦运行选项被设定, 它不会把自己重置为默认值, 即使规则集被重新载入。从OpenBSD 3.7开始, 只要载入一个规则集, 这些运行选项会在PF分析规则前被重置为默认值。因此如果在规则集中先设定然后删除一个选项, 如果再重新载入规则集, 这些选项会被重置为其默认值。


set block-policy 选项

设置指定了block动作的过滤规则的默认行为。
drop - 数据包被默默丢弃。
return - 一个 TCP RST 数据包被返回给被阻止的 TCP 数据包, 一个 ICMP 不可到达数据包返回给其它所有。
注意 特别的过滤规则可以修改默认的反应, 默认是drop.
set debug option

设置pf的调试级别。
none - 不显示调试信息。
urgent - 仅显示严重错误的调试信息。
misc - 显示多种错误的调试信息 (例如, 查看数据包正常化/净化的情况和状态产生失败的情况)。
loud - 显示常规情况下的调试信息(例如, 查看被动操作系统指纹识别的情况)。
默认是 urgent.
set fingerprints file

设置从哪个文件载入操作系统指纹。如果使用 被动操作系统指纹识别 , 默认文件是 /etc/pf.os 。
set limit option value

设定PF工作时的各种限制。
frags - 内存池中用来进行数据包重组(净化规则)的最大项目数。默认是5000。
src-nodes - 内存池中用来跟踪源IP(由 sticky-address 和 source-track 选项产生)的最带项目数。默认是10000。
states - 内存池中用于状态表(指定保持状态的过滤规则)的最大项目数)。最大是10000.
tables - 可产生的最大 表格 数。默认是1000。
table-entries - 储存在所有表格中的最大地址数。默认是200000. 如果系统物理内存低于100MB, 默认是100000。
set loginterface interface

设置PF要统计(例如:进/出站字节数和通过/阻塞的数据包)的接口。一次仅能对一个网络接口进行统计。 Note that the match, bad-offset, etc., counters and the state table counters are recorded regardless of whether loginterface is set or not. To turn this option off, set it to none. The default is none.
set optimization option

为下列网络环境最优化PF:
normal - 适合于几乎所有网络。
high-latency - 高延迟网络, 例如卫星连接。
aggressive - 积极主动地终止状态表内的连接。在防火墙忙碌时可以显著地降低内存占用, 但也可能存在过早地断开闲置连接的风险。
conservative - 极端保守的设置。避免了断开闲置连接, 但会占用大量的内存和少量处理器资源。
默认是 normal.
set ruleset-optimization option
控制PF规则集以便最优化操作。
none - 完全禁用最优化。
basic - 启用下列规则集以实现最优化:
删除完全相同的规则。
删除那些是其它规则子集的规则。
如果效果更好, 就将多个规则合并进一个表格。
重新排列规则以提高评估性能。
profile - 将当前载入的规则集作为一个回馈档案以适应实际网络通讯中qucik规则的排序。
从OpenBSD 4.2开始, 默认是basic. 请参阅 pf.conf(5) 以获得更全面的描述。
set skip on interface

PF不对 interface 上的通讯做任何处理。这对不需要过滤、标准化、排队等的环回接口(loopback interfaces)很有用处 。这个选项可以iduoci使用。默认情况下这个选项是关闭的。
set state-policy option

设定PF保持状态时的行为。这个行为可以在每条规则上更改。请参阅 保持状态。
if-bound - 把状态绑定在产生它们的接口上。如果通讯匹配一个状态表项, 但并非由记录的接口通过, 那么这样的匹配也会被拒绝。这个数据包然后必须再去匹配一个过滤规则或(译者注:如果没有匹配的规则将)被丢弃或拒绝。
floating - 状态可以匹配在任何接口上。只要数据包匹配一个状态项并且与此状态产生时的原来的数据包的进出方向一致, 则不管这个数据包从哪个接口通过, 全会被放行。
默认是floating.
set timeout option value

设定不同的时间间隔(以秒为单位).
interval - 出现数据包碎片到转台被终止的时间间隔。默认是10。
frag - 未重组的碎片将在此时间后将终止。默认是30。
src.track - 在最后一个状态终止后在内存中保留一个源跟踪项目的时间。默认是0(不保留)。
例子:

代码: 全选

set timeout interval 10
set timeout frag 30
set limit { frags 5000, states 2500 }
set optimization high-latency
set block-policy return
set loginterface dc0
set fingerprints "/etc/pf.os.test"
set skip on lo0
set state-policy if-bound