设为首页
加入收藏
帮助中心
首页 | 红盾通告 | 信息中心 | ASP技术 | 数据库 | 网页设计 | 网管专栏 | OICQ攻略 | 墨客频道 | 网站运营 |
当前位置:首页 >> 网管专栏 >> 防火墙和路由 >> 正文
最新信息
·做个ADSL+Linux软路由器
·使用iptable实现动态防火墙
·防火墙软件Netfilter之NAT…
·Linux2.4中netfilter框架实…
·一个实用的防火墙配置范例
·企业网中用Linux作为路由器
·用iptales实现包过滤型防火…
·用iptales实现包过滤型防火…
·Linux做WAP网关
·使用Linux创建网桥式防火墙
资料搜索
热点信息
·ARP欺骗技术
·Linux网络的多播IP技术
·防火墙软件Netfilter之NAT…
·做个ADSL+Linux软路由器
·用iptales实现包过滤型防火…
·使用iptable实现动态防火墙
·教你将Linux配置为代理防火…
·linux内核防火墙netfilter…
·Linux环境下基于策略的路由…
·用iptales实现包过滤型防火…
推荐信息
·一个实用的防火墙配置范例
·Linux网络的多播IP技术
·防火墙技术综述
·路由器基础
·用iptales实现包过滤型防火…
·用iptales实现包过滤型防火…
·Linux架设防火墙
·Linux下IP巧设置
·防火墙分析报告
·iptables配置工具比较


Google
 
iptables配置工具比较
〖编辑:Cloudy | 浏览:人次〗

作者:Anton Chuvakin

简介
使用命令行配置iptables的困难
iptables的命令行选项
iptables的优点
iptables配置工具

 

MonMotha的Firewall 2.3.5
Firewallscript
Ferm
AGT
knetfilter
gShield


结论


简介


在过去几年中,Linux作为防火墙平台的应用显著增长。从早期1.2版内核的ipfwadm开始,Linux的防火墙代码也走过了很长一段路程了。在2.4版的Linux内核中,使用了netfilter体系。在最新的2.4版中,Linux大大加强了安全性,例如:更好的加密支持和netfilter体系的使用。netfilter具有完全的向后兼容性。

本文将对iptables的配置做一个综述并且重点介绍一些iptables的配置工具。本文的讨论将着眼于Linux内核的IP防火墙以及其各种界面的配置工具,比如:GUI或者脚本(shell、Perl或者特定的配置语言)。使用这些工具能够简化iptables的配置减少配置的错误。关于iptables的知识请参考Rusty Russell写的Linux iptables HOWTO。

 

使用命令行配置iptables的困难


使用iptables的命令行接口来配置iptables防火墙对一个人来说是一个挑战,用户很难指定所有IP报文的行为。用户需要对TCP/IP和应用层协议有较深的了解。象其前辈ipchains一样,iptables把IP过滤规则归并到链中,IP报文遍历规则链接受处理,还可以送到另外的链接受处理,或者最后由默认策略(ACCEPT、DROP、REJECT)处理。有些网络应用程序比其它一些程序更容易穿过防火墙,因此需要理解网络连接的建立和断开。

我们看一下POP3协议,这是最简单的协议之一。允许所有向内目标端口是110的报文通过通过无法解决所有的管理问题,因为这样只能使客户端向发出申请,而服务器却无法应答。另外,如果使用网络地址转换(NAT)和其它方式的报文转发,也存在许多问题。因为防火墙的配置将影响到整个企业的安全,所以应该特别小心。下面将大概地讨论iptables的配置,要获得更多细节请参考Linux iptables HOWTO

 

iptables的命令行选项


在进入这时的讨论之前,我们看一下iptables命令行选项的一个总结。


规则链维护选项
<ull>
1.建立新的规则链(-N)
2.删除一个空的规则链(-X)
3.改变一个内置规则链的策略(-P)
4.列出一条规则链中的规则(-L)
5.擦写一条规则链中的规则(-F)

 

规则维护


1.在一条规则链中加入一条新的规则(-A)
2.删除一条规则链中某个位置的规则(-D)

 

iptables的优点

在讨论各种iptables配置工具之前,让我们看一下iptables的优点,尤其是netfilter比ipchains具有的优势。

 

iptables允许建立状态(stateful)防火墙,就是在内存中保存穿过防火墙的每条连接。这种模式对于有效地配置FTP和DNS以及其它网络服务是必要的。


iptables能够过滤TCP标志任意组合报文,还能够过滤MAC地址。


系统日志比ipchains更容易配置,扩展性也更好。


对于网络地址转换(Network Address Translation)和透明代理的支持,netfilter更为强大和易于使用。


iptable能够阻止某些DOS攻击,例如SYS洪泛攻击。

 

iptables配置工具

现在,我们看一下Linux iptables的一些配置工具。我主要关注每个工具的特征、弹性和易用性。我们将讨论以下的工具:

 

MonMotha's Firewall 2.3.5 作者:MonMotha

Firewallscript (iptables 4.4c-3 devel) 作者:Patrik Hildingsson

Ferm-0.0.18 作者:Auke Kok

AGT-0.83 作者:Andy Gilligan

Knetfilter-1.2.4 作者:Luigi Genoni

gShield-2.0.2 作者:R. Gregory

 

MonMotha的Firewall 2.3.5

MonMotha写的Firewall 2.3.5是一个大约30K的shell脚本。目前,主要适用于基于主机的保护,因为一些基于网络的选项正在开发中。这个脚本的界面(例如:给iptables传递配置选项的方法)有点混乱。不过,它不需要配置文件而且安装容易,直接复制到任何地方都可以。默认情况下,它根本不做什么,实际上根本就不执行,也缺少文档。这个脚本对于拨号用户可能有点用处。


Firewallscript

Firewallscript(IFS 4.4d)也是一个bash脚本,大约有85K。这个脚本可以用于基于主机和网络的防护。首次运行时,它会直接产生一个配置文件。不过,在默认情况下,这个文件不起什么作用,只有测试作用。这个脚本可以配置NAT和地址伪装。这个脚本非常复杂,但是缺少文档,因此最好能够仔细阅读它的代码,使用iptables -L命令哪个链已经生效,什么被允许/拒绝。这个脚本的IP报文追踪功能还可以为你提供娱乐。此外,它还会自动探测、加载iptables需要的内核模块。这个脚本和上一个脚本还具有取消(undo)功能,能够恢复iptables原来的配置文件。


Ferm

Ferm是一个Perl脚本,使用一种类C语言写成的配置文件。这种语言非常容易阅读和理解。这个脚本有很好的文档和丰富的示例作为参考。

这是一个例子:

-----------------------------------------------------------------------------


 # simple workstation example for ferm

 chain input {
     if ppp0 # put your outside interface here
     {
         proto tcp goto fw_tcp;
         proto udp goto fw_udp;
         proto icmp goto fw_icmp;
     }
 }

 chain fw_tcp proto tcp {
     dport ssh ACCEPT;
     syn DENY log;
     dport domain ACCEPT;
     dport 0:1023 DENY log;
 }
                                                                                            
 chain fw_udp proto udp {
     DENY log;
 }
                                                                                            
                                                                                            
 chain fw_icmp proto icmp {
     icmptype (
         destination-unreachable time-exceeded
     ) ACCEPT;
     DENY log;
 }


-----------------------------------------------------------------------------

这个配置文件将使ferm产生iptables如下规则:允许向外的ssh和DNS报文通过;阻塞所有的UDP报文;只允许两种类型的ICMP消息通过:目的不可达和超时,并绝拒绝和日志其它类型的ICMP消息。

AGT

AGT是一个使用C语言编写的程序。从它的代码来看,目前还处于开发阶段。不支持automake,需要手工编辑Makefile文件,文档也不是很丰富,但是其配置文件非常简单。下面就是一个配置文件:


NEW | FROM-INT
NEW | RESET

|| FROM-INT | icmp | ACCEPT |||||
|| FROM-INT | tcp | ACCEPT ||||| pop3
|| FROM-INT | tcp | ACCEPT ||||| imap
 
|| RESET | tcp | REJECT --reject-with tcp-reset |||||


这样的文件格式,加上缺乏必要的文档,对使用者来说是一个很大的挑战。而且最好多花些时间学学iptables。

knetfilter

knetfilter是一个非常棒的图形化iptables配置工具,它是基于KDE的(有KDE1和KDE2两个版本)。knetfilter非常易于上手,你可以很容易地使用它来配置基于主机保护的规则和规则列表;保存和恢复测这些规则和规则列表;测试规则和规则列表(在同一个面板上运行tcpdump网络嗅探器),这一切只要点几下鼠标就可以了。它也支持NAT和网络地址伪装的配置。但是,对于拨号工作站,knetfilter工作的不太好,因为它需要本地IP,而且只探测eth0网络接口,不进行PPP探测。这个工程的文档也很少,不过因为是基于图形界面,所以即使不用手册也可以很好地使用。

gShield

gShield是一个bash shell脚本,可能是当前最成熟的一个工具。它的文档非常丰富,配置文件也比较合理直观,还能够设置NAT。它不但能够处静态IP地址,还能够处理动态IP地址(例如:PPP)。

gShield还有图形界面,目前仍然处于早期开发阶段,可以从http://members.home.com/vhodges/gshieldconf.html下载。不过,它似乎只兼容gShield的早期版本(1.x)。

下面是一个示例配置文件:


FW_ROOT="/etc/firewall"
IPTABLES=`which iptables`
LOCALIF="eth0"
DNS="24.31.195.65"
LTIME="20/m"
ALLOW_DHCP_LEASES="YES"
...


gShield使用的默认配置非常安全,特别适合不愿意摆弄配置文件的用户,不过软件的编者建议用户最好能够通读整个配置文件。据README文件讲,gShield实现了"类tcpwrapper风格的服务访问控制功能",使用这个功能用户可以很容易地阻塞/允许某项服务,而不必考虑报文方向之类的问题,只要关心什么客户连接到服务器就可以了。

 

结论


虽然本文介绍了一些防火墙配置工具,但是实际上目前还没有理想的配置工具。最好的配置工具还是iptables命令,这里介绍的这些工具,只适用于对于使用iptables命令行感觉困难的用户。


声明:如果您认为这篇文章有点转载的价值,那么在转载时请注明文章的出处和作者(包括译者)。请不要拿出:

lion蠕虫分析


作者:Max Vision

作为自己没有侵犯版权的依据,因为Max Vision是美国人,他不会自己用汉语写一篇分析lion蠕虫的文章,虽然lion蠕虫是中国人写的。(读到这里,您可能会感到莫名其妙,已经抄起鸡蛋、西红柿了,但是请相信:我没有发烧,绝对是有感而发,通过这种方式表达自己的愤怒而已)。


录入时间:2006-05-08 22:40:42 [打印本页] [关闭窗口] [返回顶部]
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

Copyright © 2006-2014 0733168.Com Inc All Rights Reserved
关于我们 | 广告合作 | 联系我们 | 法律声明 | 友情链接 | 意见反馈
本站所收录信息、社区话题、及本站所做之广告均属其个人行为,与本站立场无关
湘ICP备06008436号