频 道 直 达 - 新闻 - 培训 - 软件 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 读书 - 博客 - BBS
51CTO.COM_中国最大的网络技术网站
找资料:

2.4 使用iptables和ipchains(1)

作者: 黄永兵译 出处:51CTO.com  2008-06-10 11:52    砖    好    评论   进入论坛
阅读提示:《Linux企业集群》一书讲解如何在一个计算机网络中用有限的资源部署计算机,以及安装自由软件让计算机象一台服务器那样一起运行。其中第二章讲述改变Linux内核中网络数据包命运的技术,本文讲述使用iptables(和ipchains)命令控制抵达每个集群节点的数据包的命运。

使用iptables和ipchains

在这一节中,我将为你讲述使用iptables(和ipchains)命令控制抵达每个集群节点的数据包的命运,执行命令也可以用于在集群外建立一个防火墙,通过为每个INPUT规则添加对应的FORWARD规则,并将它们安装到集群负载调度器上实现,究竟是安装在每个集群节点上还是集群负载调度器上,还是两个上面都安装,就看你自己的选择了。

执行命令可以从一个shell提示符输入,但是它们在系统下次启动后将丢失,为了固定这些规则,你必须将它们放入一个每次随系统启动而自动执行的脚本(或你的发行版使用的一个配置文件)中,本章后面提供有一个样例脚本。

注意:如果你正工作在一个新的内核(2.4系列或更高)上,使用它提供的iptables(ipchains规则只是为了历史目的)。

清除现有的规则

在向内核添加任何规则前,先执行一个清除动作,在故障检修和建立一个新配置时,如果你需要启动但不想重启系统,此时ipchains和iptables命令是非常有用的。

使用其中一个命令(在2.2系列内核上是ipchains,在2.4及更高版本内核上是iptables)清除三个链表(INPUT、FORWARD和OUTPUT)中的所有规则:
#ipchains -F
#iptables -F

设置默认的INPUT链表策略

使用其中一个命令设置默认INPUT策略不允许入站数据包:
#ipchains -P input DENY
#iptables -P INPUT DROP

记住,如果你创建路由规则将数据包路由出系统(本章后面会介绍),你可能也想设置默认的FORWARD策略为DROP,并明确为允许通行的数据包指定准则,这就是你如何建立一个安全的负载调度器了(与Linux虚拟服务器一起在本书的第三部分描述)。

回想2.2系列内核ipchains的input策略对本地的数据包和需要发送到网络上的数据包的影响,而2.4及更高版本系列内核iptables的INPUT策略只影响到本地的数据包。

注意:如果你需要通过一个远程telnet或SSH连接向一个系统添加iptables(或ipchains)规则,在你设置好默认策略为DROP(或DENY)后,你首先应该输入ACCEPT规则(本节后面将会展示)允许你的telnet或SSH连接。

FTP

使用下面这些规则允许来自任意位置的FTP连接:

#ipchains -A input -i eth0 -p tcp -s any/0 1024:65535 -d MY.NET.IP.ADDR 21 -j ACCEPT
#ipchains -A input -i eth0 -p tcp -s any/0 1024:65535 -d MY.NET.IP.ADDR 20 -j ACCEPT
#iptables -A INPUT -i eth0 -p tcp -s any/0 --sport 1024:65535 -d MY.NET.IP.ADDR --dport 21 -j ACCEPT
#iptables -A INPUT -i eth0 -p tcp -s any/0 --sport 1024:65535 -d MY.NET.IP.ADDR --dport 20 -j ACCEPT


依赖于你的内核版本,要么你将使用ipchains要么使用iptables,只使用两个规则匹配你的实用程序。

让我们更进一步了解一下这两个iptables命令的语法:
-A INPUT

表明我们想向input过滤器添加一个新的规则。
-i eth0

只应用到eth0接口,如果你想一个input规则应用到所有连接到系统的接口,你可以将其留空(使用ipchains,当你为output链表创建规则时你可以指定input接口,但是在iptables下不再可能了,因为output链表只能应用到本地创建的数据包)。
-p tcp

这个规则应用到TCP协议(如果你计划阻止或接受基于一个端口号的数据包就需要)。
-s any/0 and --sport 1024:65535

这些参数表明源地址可以是任意地址,源端口可以是从1024到65535之间的任意端口,any后的0意味着我们不对ip地址应用子网掩码,通常,当你指定一个特定的ip地址时,你将需要象下面这样输入:
ALLOWED.NET.IP.ADDR/255.255.255.0

ALLOWED.NET.IP.ADDR/24

这里的ALLOWED.NET.IP.ADDR是一个ip地址,如209.100.100.3。

在这两个例子中,iptables命令屏蔽了ip地址前面作为地址网络部分的24位。

注意:我们将暂时跳过TCP/IP会话的细节,这里最重要的一个正常的入站TCP请求将到达一个特权端口(在/etc/services中定义的范围在1-1023之间的端口号),并要求你在一个非特权端口(范围在1024-65535之间的端口)发送一个应答。

-d MY.NET.IP.ADDR and --dport 21
这两个参数指定在数据包头请求的目标ip地址和目标端口号,用你eth0接口的ip地址替换这里的MY.NET.IP.ADDR,或如果你在-i选项处留空而且不担心数据包抵达哪个接口时,输入0.0.0.0(FTP同时请求端口20和21)。

-j ACCEPT
当一个数据包匹配到一条规则时,它丢掉这个链表(本例中的INPUT链表),无论你在这里为-j选项输入了什么,它将指定数据包下一步该怎么处理,如果一个数据包没有匹配到任何规则,本例中将应用默认的过滤器策略DENY或DROP。

被动FTP

仅为FTP提供了规则不允许被动FTP连接到服务器上的FTP服务,FTP是一个旧的协议,它只用于没有防火墙的情景,FTP服务器可以连回到FTP客户端以传输请求的数据,现在,大多数客户端都位于防火墙后面,这种情况就不再可能了,因此,FTP协议发布了一个新特性叫做被动FTP,它允许客户端在端口21上请求数据连接,它引起服务器监听来自客户端的入站数据连接(而不是象以前那样连回到客户端去),要使用被动FTP,你的FTP服务器必须有一条iptables规则允许它为这些被动的FTP数据连接监听非特权端口,使用iptables的规则如下:

#iptables -A INPUT -i eth0 -p tcp -s any/0 --sport 1024:65535 -d MY.NET.IP.ADDR --dport 1024:65535 -j ACCEPT

【责任编辑:雪花 TEL:(010)68476606】

回书目   上一节   下一节
专题
Linux——从菜鸟到高手
Linux/Solaris服务器的安全配置
Linux 集群技术专题
Linux中文环境
Linux防火墙
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 最 大 的 网 络 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
Vista SP1对决XP SP3
Vista SP1对决XP SP3
华为员工自杀频频拷问企业文化
华为员工自杀频频拷问企业文化
Windows Server 2008专题
Windows Server 2008专题
· Windows Server 2008专..
· 杀毒软件评测专题
· 2008中国互联网大会
· 微软出价446亿美元收购..
· 技术人求职简历完备手册
· 访问控制列表(ACL)介绍
· 隐私保护技术探讨
· 勇闯IT培训黑色围城
· CISSP认证成长之路
· 解析35岁技术人的价值..
· 网络工程师职业规划与..
· LAMP技术精解
· AMD Phenom三核处理器..
· 充电计划之热门IT认证..
· 如何有效防御SQL注入攻..
· 2008年上半年全国软考..
ARP攻击防范与解决方案
ARP攻击防范与解决方案
iSCSI应用与发展
iSCSI应用与发展
SQL Server 2008/2005全解
SQL Server 2008/2005全解
· SQL Server 2008/2005..
· SOA 面向服务架构
· SQL Server 2008/2005..
· iSCSI应用与发展
· Apache技术专题
· 三层交换技术专题
· SQL Server入门到精通
· Apache技术专题
· 国际文档格式标准开战
· 路由器设置与口令恢复
· 打造安全服务器
· PHP开发应用手册
· SOA 面向服务架构
· 企业数据恢复指南
· 了解统一威胁管理(UTM)..
· 专题:AIX操作系统管理..
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
iSCSI应用与发展
iSCSI应用与发展
· iSCSI应用与发展
· SQL Server入门到精通
· SQL Server 2008/2005..
· SOA 面向服务架构
· Apache技术专题
· iSCSI应用与发展
· 三层交换技术专题
· Apache技术专题
· 企业数据恢复指南
· 路由器设置与口令恢复
· SOA 面向服务架构
· 了解统一威胁管理(UTM)..
· 反垃圾邮件技术应用
· 访问控制列表(ACL)介绍
· PHP开发应用手册
· 专题:AIX操作系统管理..