ipfw规则( 五 )


默认的情况下,,规则将被设置为0,除非你输入新规则是,在N上有所改动,设置可以被个别激活或者停止,所以这种办法允许一个很简单的方法去贮存防火墙的多种配置,很快的可以在它们之间互相转换 。激活/停止的命令为:
ipfw set disable number ... [enable number ...]

各种各样的激活或者停止,可以分别指定 。命令的执行在所有指定的设置中很微小,默认情况下 。所有设置为激活的 。
当你停止一个设置,他的规则则表现为在防火墙上没有任何配置,只有一种情况例外:
由源规则(父规则)创建一个动态的规则,在他被停止之前,一直运行,直到他们中断为止 。为了删除动态规则,你不得不将他们俩个规则全都删除;
规则的号码可以用命令更改
ipfw set move {rule rule-number | old-set} to new-set
同样你也可以交换两个规则
ipfw set swap first-set second-set
( See the EXAMPLES Section on some possible uses of sets of rules.)

STATEFUL FIREWALL
Stateful的作用是让防火墙能动态的创建一个规则,为了描述当匹配包所给出的模式的流程 。这个的实现是通过规则的check-state, keep-state and limit得设置得到的 。
当一个数据包匹配keep-state or limit规则时,动态规则将被创建,这个动态规则将匹配所有的包所给出的src-ip/src-port dst-ip/dst-port之间的协议(这里所使用的源地址和目的地地址都指最初的地址,但是后来他们将完全一样)动态规则在第一次的check-state,keep-state or limit将被选中,并执行匹配,此匹配跟父规则一样 。
注意,这些不是附加的属性,除了动态规则检查的协议,ip地址和端口 。
动态规则典型的应用是保持一个关闭的防火墙设置,但是让第一个从内网来的TCP SYN包将安装一个为流程动态规则,所以那些包允许通过防火墙:

ipfw add check-state
ipfw add allow tcp from my-subnet to any setup
ipfw add deny tcp from any to any
类似的途径可以为UDP使用,一个从内网来的UDP包,将安装一个动态规则去允许防火墙作应答:

ipfw add check-state
ipfw add allow udp from my-subnet to any
ipfw add deny udp from any to any
(See Section EXAMPLES for more examples on how to use dynamic rules.)


TRAFFIC SHAPER CONFIGURATION
ipfw也同样是塑造通信的用户接口 。这个塑造器由划分的包进到流程中按照用户指定的在ip头不同区域的掩码,包同样属于流程,也通向2个不同的目标,(named pipe or queue)名字管道和列队 。
一个管道就像一个给定的宽带,传播延迟,列队大小和包丢是的比率 。包是按照自身的参数通过管道的

一个列队,就是一个提取过程,执行WF2Q 方针()列队使没一个流程跟weight和reference管道发生联系 。然后,所有的流程按照管道WF2Q 方针按预定的比率指向预定的同样的管道 。
ipfw管道的配置格式如下:

pipe number config pipe-configuration

ipfw列队的配置格式如下

queue number config queue-configuration

管道配置的参数如下:

bw (bandwidth) | (device)
Bandwidth, 标准[K|M]{bit/s|Byte/s}.

默认值0意味着无限带宽 。这个单位必须跟数字,例如:

ipfw pipe 1 config bw 300Kbit/s

如果一个设备的名字是数字代替定义的,则发送时间由被定义的设备给出 。在这个时候只有通道设备支持此函数,以建立端对端协议的连接 。

delay ms-delay
传播延迟是用毫秒为标准 。此值为轮到下一次时间启动的值(例如,10ms,它是最习惯去运行配置为HZ=1000内核的值,去减少间隔时间到1ms或更少),默认为0时,表示没有延迟 。

以下设置参数可以用在queue(列队等待)上:

pipe pipe_nr
连接一个列队到指定的通道 。多样的类对(通常是不同的大小)可以被联接到同一个通道 。

推荐阅读