首页 运维 网络学院 查看内容

iptables实用范例

2009-11-2 10:09 636 0

摘要: iptables是Linux内核带的防火墙,结合Linux强大的路由功能,可以实现达到非常出色的性能并能满足大部分企业使用的要求。下面我就用一个常用的案例说明一下。一、网络拓扑图 下面是示例...
关键词: iptables nbsp ACCEPT PREROUTING 规则 服务器 客户机 端口 防火墙 INPUT

iptables是Linux内核带的防火墙,结合Linux强大的路由功能,可以实现达到非常出色的性能并能满足大部分企业使用的要求。下面我就用一个常用的案例说明一下。一、网络拓扑图 下面是示例中使用的架构:500) {this.resized=true; this.width=500;}" resized="true">  作为防火墙的Linux服务器使用红旗 DC Server 5.0,配置有两块网卡,eth0接外网,eth1接内网;内网有一台网站服务器,和若干台客户机,客户机通过防火墙访问外网。二、配置 iptables的命令规则和原理介绍可以参考[原]重新熟悉iptables。1、定义规则 规则我是放在/root/iptables.rule,如下: 引用 # Generated by iptables-save v1.2.11 on Mon Jan  9 13:31:17 2006*filter:INPUT DROP [0:0]:FORWARD ACCEPT [8:672]:OUTPUT ACCEPT [242:17914]-A INPUT -i lo -j ACCEPT -A INPUT -i eth1 -j ACCEPT -A INPUT -i eth0 -p icmp -j ACCEPT #下面是开放防火墙上的22(ssh)端口-A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -m state --state INVALID,NEW -j DROP COMMIT# Completed on Mon Jan  9 13:31:17 2006# Generated by iptables-save v1.2.11 on Mon Jan  9 13:31:17 2006*nat:PREROUTING ACCEPT [1060:200436]:POSTROUTING ACCEPT [0:0]:OUTPUT ACCEPT [1:67]#下面是设置NAT共享-A POSTROUTING -o eth0 -j MASQUERADE #下面是开放内网的WWW服务器对外使用-A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.2:80-A POSTROUTING -p tcp -d 10.0.0.2 --dport 80 -j SNAT --to-source 10.0.0.1COMMIT# Completed on Mon Jan  9 13:31:17 2006※需要留意的就是如何对外开放服务器:1)因为经过NAT转发,所以filter表上不需要设置对应的服务端口;2)一定要同时设置PREROUTING和POSTROUTING规则;我在查找资料的时候,发现网上很多资料都只是设置PREROUTING规则(DNAT),但就没有写需要设置SNAT,经过验证,这是有问题的。 首先,数据包经过PREROUTING后,把目的地址从原来访问防火墙的192.168.228.210,改为目的10.0.0.2。此时如果直接把包转发给WWW服务器,当WWW服务器获得数据包后,得到的数据包如下: 引用 源:外网IP|目标:10.0.0.2  这样,当WWW服务器回复的时候,就会发现找不到目标地址(因为他根本就没有外网的路由)。 因为,增加SNAT可以把源路径也改为从防火墙过来,这样就能保证数据包的正确路径了。3)如果端口不是一对一转发,只要修改PREROUTING语句--dport的端口和--to-destination后IP跟的端口,例如: -A PREROUTING -i eth0 -p tcp --dport 3000 -j DNAT --to-destination 10.0.0.2:802、打开路由支持 默认是不会支持路由的,用下面的命令打开: # echo "1" > /proc/sys/net/ipv4/ip_forward3、启动并测试 只要恢复iptables规则表: # iptables-restore iptables.rule  测试:内网客户机: 引用 # ping www.21cn.comPING www.cdn.21cn.com (61.140.60.90) 56(84) bytes of data.64 bytes from f1.21cn.com (61.140.60.90): icmp_seq=0 ttl=245 time=3.26 ms外网客户机:访问http://外网IP/,成功即可。4、设置开机运行 修改/etc/rc.local文件,文件后面增加两行: 引用 echo "1" > /proc/sys/net/ipv4/ip_forwardiptables-restore iptables.rule 保存即可。5、必须注意:使用iptables-restore保存的规则表是不通用的,只能用在本机上。若要在其他机器使用相同的规则,用脚本提供吧。
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部