ipfw网上资源(一)

2009-05-13 14:09:10来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

http://hi.baidu.com/ljx_m0n0/blog/item/5b2a8c34ddab413f5bb5f552.html
ipfw 是 FreeBSD
内建的防火墙指令,我们可以用它来管理进出的网络交通。如果防火墙服务器是扮演着路由器 (gateway 例如上一篇中的 NAT 服务器)
的角色,则进出的封包会被 ipfw 处理二次,而如果防火墙扮演的是桥接器 (bridge)
的角色,则封包只会被处理一次。这个观念关系着我们以下所要介绍的语法,有的语法并不适用于桥接器。
另外,我们在设定防火墙时有二种模式,一种模式是预设拒绝所有联机,再一条一条加入允许的联机;另一种是预设接受所有联机,加入几条拒绝的规则。如果是非常强调安全性,应该是使用预设拒绝所有联机,再一条一条加入我们允许的规则。
我们会将 firewall 的设定写在 /etc/rc.firewall 中,每一条设定都是以先入为主 (first match
wins) 的方式来呈现,也就是先符合的规则 (rules)
为优先。所有进出的封包都会被这些规则过滤,因此我们会尽量减少规则的数量,以加速处理的速度。
在 kernel 中,关于防火墙的设定有下列几条:
# 防火墙
options IPFIREWALL
# 支援 NAT
options IPDIVERT
# 下面这一行是预设允许所有封包通过,如果没有这一行,
# 就必须在 /etc/rc.firewall 中设定封包的规则。
# 这条规则内定编号是 65535,也就是所有规则的最后一条
# 如果没有加这一条规则,内定就是拒绝所有封包,
# 只允许规则中允许的封包通过。
options IPFIREWALL_DEFAULT_TO_ACCEPT
# 这一行是让你可以在 ipfw 中设定要记录哪些封包,
# 如果没有这一行,就算设定了要留下记录也不会有作用。
options IPFIREWALL_VERBOSE
# 这一行是限制每一条规则所要记录的封包数量,
# 因为同样的规则可能有许多记录,加上这一条可以使
# 同样的记录重复数减少,以避免记录文件爆增。
options IPFIREWALL_VERBOSE_LIMIT=10
# 下面这一行是用来支援封包转向,
# 当你要使用 fwd 动作时必须要有这一项设定。
options IPFIREWALL_FORWARD
# 如果要使用 pipe 来限制频宽,必须加入下列选项以支持 dummynet。
options DUMMYNET
ipfw 也支持状态维持 (keep-state) 的功能,就是可以让符合设定的规则以动态的方式来分配增加规则 (地址或连接端口)
来让封包通过。也就是说防火墙可以记住一个外流的封包所使用的地址及连接端口,并在接下来的几分钟内允许外界响应。这种动态分配的规则有时间的限制,一段
时间内会检查联机状态,并清除记录。
所有的规则都有计数器记录封包的数量、位数、记录的数量及时间等。而这些记录可以用 ipfw 指令来显示或清除。
在说明 ipfw 规则的语法之前,我们先来看这个指令的用法。ipfw 可以使用参数:
指令 说明
ipfw add [rule] 新增一条规则。规则 (rule) 的语法请参考下一节的说明。
ipfw delete [number] 删除一条编号为 number 的规则。
ipfw -f flush 清除所有的规则。
ipfw zero 将计数统计归零。
ipfw list 列出现在所有规则,可以配合下列参数使用。
-a 使用 list 时,可以列出封包统计的数目。
-f 不要提出确认的询问。
-q 当新增 (add)、归零(zero)、或清除 (flush) 时,不要列出任何回应。当使用远程登入,以 script (如 sh
/etc/rc.firewall) 来修改防火墙规则时,内定会列出你修改的规则。但是当下了 flush
之后,会立即关掉所有联机,这时候响应的讯息无法传达终端机,而规则也将不被继续执行。此时唯一的方法就是回到该计算机前重新执行了。在修改防火墙规则
时,最好在计算机前修改,以免因为一个小错误而使网络联机中断。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:tcpd - tcpwrapper

下一篇:ipfw网上资源(二)