Brendan Conoboy 摘要:本文档向初学者介绍IP Filter防火墙软件,同时介绍一些设计防火墙的基本方法。 1.1声明 作者对因该文档所造成的破坏概不负责,该文档只是介绍基于ipfilter的防火墙。如果你觉得你采取的行动不太合适的话,你应该停止阅读该文档,请有资格的安全专家为你安装防火墙。 1.2 版权 除非其它情况,该文档版权属于每一个作者。部分或全部文档可以以各种介质复制和重新发布,只要你在所有的拷贝中保存版权声明。任何商业性质的发布应该通知文档的作者。 1.3 哪里可以获得重要文档 ipf官方网站:http://coombs.anu.edu.au/~avalon/ip-filter.html 2. 基本防火墙 这部分将使您对ipfilter的语法及防火墙原理有个总体的了解。这里讨论的防火墙特点都可以在任何好的防火墙软件中找到。这部分将使您更容易的阅读和理解后面的高级部分。必须提一下的是,这一部分不足以让你建立一个好的防火墙,如果您想建立一个有效率的安全系统您应该阅读高级部分。 2.1 文件的结构,顺序及优先级 ipf 有一个配置文件(或者说是一些一次运行的命令)。这个文件沿袭unix风格:每行一条规则,“#”表示注释,多余的空格将被忽略,我们鼓励保持规则文件的可读性。 2.2 基本的规则处理 每条规则从上到下顺序执行。这意味着如果你的配置文件是这样的:
IP Filter Based Firewalls HOWTO
xiaojl <zhiyouxjl@sina.com>
Erik Fichtner
$FreeBSD: src/share/examples/ipfilter/ipf-howto.txt,v 1.1.2.1 2002/04/27 20:04:18 darrenr Exp $
所有的翻译文档及其它衍生文档应该保留版权声明。
文档的最新版本可以在这找到:http://www.obfuscation.org/ipf/
block in all
pass in all
计算机将视它视为
block in all
pass in all
就是说,当有一个包进来,第一条规则起作用:
block in all
接下来ipf将包传给下一条规则,第二条规则将起作用:
pass in all
这个时候你也许会问ipf将执行第二条规则吗?如果你熟悉ipfwadm或者ipfw,你也许就不会问这个问题了。也许您将会对包的走向感到困惑,很多包过滤软件只要包符合一条规则,它将不会往下匹配,但是ipf不属于这种类型。
不像其它包过滤器,ipf会为每个包做一个标记,不管这个包通过与否。ipf将遍历整个规则集,除非你打断它的遍历,然后ipf根据最后一条规则决定是通过还是抛弃这个包。当一个包进入一个接口(如rl0,tun0),ipf就开始工作,他先检查这个包然后再检查第一条规则:
block in all
ipf说:“我现在应该阻止这个包”。它又看看第二条规则:
pass in all
“我现在应该通过这个包”。它又看看第三条规则,没有第三条规则,所以这个包根据最后一条规则,向前传递这个包。
现在应该指出的是,即使你的规则是这样的:
block in all
block in all
block in all
block in all
pass in all
这个包依然通过。规则没有累加作用的。最后一条匹配规则总是优先的。