iptables是Linux内核带的防火墙,结合Linux强大的路由功能,可以实现达到非常出色的性能并能满足大部分企业使用的要求。下面我就用一个常用的案例说明一下。
[原]iptables实用范例
※需要留意的就是如何对外开放服务器:
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:80
2、打开路由支持
默认是不会支持路由的,用下面的命令打开:
# echo "1" > /proc/sys/net/ipv4/ip_forward
3、启动并测试
只要恢复iptables规则表:
# iptables-restore iptables.rule
测试:
内网客户机:
引用
# ping www.21cn.com
PING 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
PING 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_forward
iptables-restore iptables.rule
iptables-restore iptables.rule
保存即可。
5、必须注意:使用iptables-restore保存的规则表是不通用的,只能用在本机上。若要在其他机器使用相同的规则,用脚本提供吧。
红旗十周年用户大会——广州站(邀请函)
在Windows下使用红旗HA Cluster 配置工具
红旗Asianux 3.0 安装 Oracle 9i
流量监控脚本 v1.3
流量监控脚本 v1.2
在Windows下使用红旗HA Cluster 配置工具
红旗Asianux 3.0 安装 Oracle 9i
流量监控脚本 v1.3
流量监控脚本 v1.2
原创文章,作者:kepupublish,如若转载,请注明出处:https://blog.ytso.com/tech/linux/114477.html
赞 (0)