用IPFW实现BSD防火墙

2009-05-13 01:38:14来源:未知 阅读 ()

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

使用ipfw配置系统的防火墙
(一)
FreeBSD操作系统本身带有二种内置的IP信息包检查机制:ipfw和ipfilter。在创建决定允许哪些信息包进入系统、哪些信息包会被拒之系统门外的规则集方面,二种机制各有自己独特的语法。在这里,我们将讨论如何使用ipfw配置系统的防火墙。
在能够使用ipfw防火墙机制之前,我们需要在FreeBSD的内核配置文件中添加一些选项,并重新编译内核。如果不太清楚如何编译FreeBSD的内核,请参阅相关的手册。
可供ipfw使用的选项有好几个,我们首先从讨论LINT开始。在这里,我通过使用“/”符号进行搜索,以便能够快速地发现恰当的小节:
cd /usr/src/sys/i386/conf
more LINT
/IPFIREWALL
# IPFIREWALL和ipfw软件,这二者就可以支持IP防火墙的构建。IPFIREWALL_VERBOSE向
# 系统的注册程序发送注册信息包,IPFIREWALL_VERBOSE_LIMIT限制一台机器注册的次
# 数。注意:如果没有在启动时添加任何允许IP访问的规则,IPFIREWALL的缺省配置是
# 禁止任何IP数据包进出系统的,这时你甚至不能访问网络中的其他机器。建议首次使
# 用这一功能时在/etc/rc.conf中设置firewall_type=open,然后在对内核进行测试后
# 再在/etc/rc.firewall仔细地调整防火墙的设置。IPFIREWALL_DEFAULT_TO_ACCEPT使
# 得缺省的规则允许所有形式的访问。在使用这一变量时应该非常小心,如果黑客能够
# 突破防火墙,就能任意访问你的系统。
要启用ipfw,必须设置IPFIREWALL选项,它将通知操作系统的内核检查每个IP数据包,将它们与规则集进行比较,通过添加
IPFIREWALL_VERBOSE选项包括注册支持是一个好主意,还应该通过添加IPFIREWALL_VERBOSE_LIMIT选项来限制内核注
册的数据包的数量。
除非在规则集中进行了特别的说明,缺省情况下ipfw将阻塞所有的IP数据包。由于缺省设置可以仔细地控制哪些数据包会被接受,因此我非常喜欢它。我不喜
欢内核会接受自己都不清楚内容的数据包,如果需要的数据没有被系统接受,会得到系统的提示,并修改规则集使系统可以接受它们。这时,如果有没有预料到的数
据包通过系统也不会知道。因此,我不会通过包括IPFIREWALL_DEFAULT_TO_ACCEPT选项来绕过缺省的设置。
# IPDIVERT启用由ipfw divert使用的转向IP套接字。这一选项需要与natd联合使用。由
# 于在本例中建立的防火墙仅用于保护一台机器,因此不需要这个选项。
# IPSTEALTH启动支持秘密转发的代码,这一选项在使防火墙不被traceroute和类似工具发现时很有用。
这是一个非常有趣的选项,因此我将在防火墙中包含这一选项,并在对防火墙进行测试时看看它的工作原理。
# 接受过滤器中的静态连接
# options ACCEPT_FILTER_DATA
# options ACCEPT_FILTER_HTTP
在这台计算机上运行的不是互联网服务器,因此无需在编译时包括这二个选项。
# 下面的选项和系统级变量控制系统如何处理适当的TCP数据包。
#
# TCP_DROP_SYNFIN可以支持包含有SYN+FIN的TCP数据包,它使nmap不能识别TCP/IP栈,# 但可以破坏对RFC1644扩展的支持,建议不要在互联网服务器中使用。
#
# TCP_RESTRICT_RST支持阻止TCP RST栈的泄出,对于需要大量SYN的系统或者不希望被简单地扫描到端口的系统非常有用。
我将在防火墙中包括这些选项,在测试防火墙时,仔细看看它们有什么作用。
# ICMP_BANDLIM根据带宽限制产生icmp错误。一般情况下我们需要这个选项,它有助于
# 你的系统免受D.O.S.攻击。
#
options ICMP_BANDLIM
FreeBSD内核缺省支持这一选项。
# DUMMYNET启动“dummynet”带宽限制软件。还需要有IPFIREWALL选项的支持

标签:

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

上一篇:使用Jail和ipfilter结合构建高安全服务器

下一篇:谈谈自己对这几年BSD的看法