ipfw规则( 七 )


3:如果记录整个网络的日志,装载ipfw的kld版本,她不像你想象的那么简单 。介绍以下命令行:
kldload /modules/ipfw.ko &&
ipfw add 32000 allow ip from any to any

Along the same lines, doing an

ipfw flush

in similar surroundings is also a bad idea.

3:ipfw过滤器列表不可以被修改,如果系统的安全级别为3或更高(see init(8)for information on system security levels).

PACKET DIVERSION
一个转向插座跃向指定的端口将接收到的所有包转到那个端口 。如果没有socket 被邦定到指定端口,或者内核不支持,包将被丢弃 。

SYSCTL VARIABLES
内核变量的设置将控制防火墙的行为和联合模块( dummynet, bridge ) 。这里一起介绍他们,包括他们的默认值:

net.inet.ip.dummynet.expire: 1
一旦如果没有了没完的通信,就删除动态pipes/queue 。你可以停止这个,将变量设置为0,这个情况下,仅在极限到头的时候删除pipes/queue 。

net.inet.ip.dummynet.hash_size: 64
动态pipes/queue的默认哈示表 。这个默认值是当没有buckets 被指定当配置pipe/queue时 。

net.inet.ip.dummynet.max_chain_len: 16
pipes/queues 在hash bucket里最大的目标值 。max_chain_len*hash_size习惯用于测试将被关闭的,甚至net.inet.ip.dummynet.expire=0的空pipes/queues 的极限 。

net.inet.ip.dummynet.red_lookup_depth: 256

net.inet.ip.dummynet.red_avg_pkt_size: 512

net.inet.ip.dummynet.red_max_pkt_size: 1500
此参数是估算在使用RED法则的时候包丢失的几率 。

net.inet.ip.fw.autoinc_step: 100
是在两个规则号之间随机产生的,次数值在范围1..1000之间 。

net.inet.ip.fw.curr_dyn_buckets: net.inet.ip.fw.dyn_buckets
动态规则的哈希表里的buckets当前值(只读的)

net.inet.ip.fw.debug: 1
由ipfw控制的调试信息 。

net.inet.ip.fw.dyn_buckets: 256
动态规则的哈希表里的buckets值,必须是2的幂数,最大到65536 。他仅在所有的动态的规则停止的时候起作用,所以你仔细考虑是否使用Flush命令,来确定调整哈希表的大小 。

net.inet.ip.fw.dyn_count: 3
动态规则的当前号 。

net.inet.ip.fw.dyn_keepalive: 1

Enables generation of keepalive packets for keep-state rules on
TCP sessions. A keepalive is generated to both sides of the con-
nection every 5 seconds for the last 20 seconds of the lifetime
of the rule.
net.inet.ip.fw.dyn_max: 8192
动态规则的最大数值 。当你遇到这个限制的话,不会再产生动态规则了,直到哪一个规则被终止 了 。

net.inet.ip.fw.dyn_ack_lifetime: 300

net.inet.ip.fw.dyn_syn_lifetime: 20

net.inet.ip.fw.dyn_fin_lifetime: 1

net.inet.ip.fw.dyn_rst_lifetime: 1

net.inet.ip.fw.dyn_udp_lifetime: 5

net.inet.ip.fw.dyn_short_lifetime: 30
这些变量控制着动态规则的存活时间,用秒 。在初始的SYN上交换的存活时间一直是很短的,之后,当双SYN出现以后开始递增,然后在最后FIN交换期间或者是RST被接收时开始递减dyn_fin_lifetime和dyn_rst_lifetime必须严格控制在5秒之内,keepalives的重复周期 。防火墙会强制执行这个的.

net.inet.ip.fw.enable: 1
激活防火墙,如果设置为0,则关闭防火墙,即使编译也没用 。

net.inet.ip.fw.one_pass: 1
设置时,从dummynet(man dummynet)管道出来的包不再通过防火墙,另外,包会被放到防火墙的下一条规则里去 。
注意:bridged and layer 2管道出来的包不管设置如何,将不会被放到防火墙里面了 。

net.inet.ip.fw.verbose: 1
激活详细信息 。

net.inet.ip.fw.verbose_limit: 0
限制由详细的防火墙产生的信息号 。

net.link.ether.ipfw: 0
控制layer-2的包是否允许ipfw,默认为"不是" 。

net.link.ether.bridge_ipfw: 0

推荐阅读