始创于2000年 股票代码:831685
咨询热线:0371-60135900 注册有礼 登录
  • 挂牌上市企业
  • 60秒人工响应
  • 99.99%连通率
  • 7*24h人工
  • 故障100倍补偿
您的位置: 网站首页 > 帮助中心>文章内容

iptables实用范例

发布时间:  2012/8/13 18:08:09

iptables是Linux内核带的防火墙,结合Linux强大的路由功能,可以实现达到非常出色的性能并能满足大部分企业使用的要求。下面我就用一个常用的案例说明一下。

一、网络拓扑图
 下面是示例中使用的架构:

  作为防火墙的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.1
COMMIT
# 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: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

外网客户机:访问http://外网IP/,成功即可。
4、设置开机运行
 修改/etc/rc.local文件,文件后面增加两行:

引用
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables-restore iptables.rule

 保存即可。

亿恩科技地址(ADD):郑州市黄河路129号天一大厦608室 邮编(ZIP):450008 传真(FAX):0371-60123888
   联系:亿恩小凡
   QQ:89317007
   电话:0371-63322206


本文出自:亿恩科技【www.enkj.com】

服务器租用/服务器托管中国五强!虚拟主机域名注册顶级提供商!15年品质保障!--亿恩科技[ENKJ.COM]

  • 您可能在找
  • 亿恩北京公司:
  • 经营性ICP/ISP证:京B2-20150015
  • 亿恩郑州公司:
  • 经营性ICP/ISP/IDC证:豫B1.B2-20060070
  • 亿恩南昌公司:
  • 经营性ICP/ISP证:赣B2-20080012
  • 服务器/云主机 24小时售后服务电话:0371-60135900
  • 虚拟主机/智能建站 24小时售后服务电话:0371-60135900
  • 专注服务器托管17年
    扫扫关注-微信公众号
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 亿恩科技 版权所有  地址:郑州市高新区翠竹街1号总部企业基地亿恩大厦  法律顾问:河南亚太人律师事务所郝建锋、杜慧月律师   京公网安备41019702002023号
      0
     
     
     
     

    0371-60135900
    7*24小时客服服务热线