iptables实例

运维 系统运维
iptables实例:iptables是与最新的Linux内核集成的IP信息包过滤系统,它完全免费、功能强大、使用灵活、可以对流入和流出的信息进行细化控制,且可以在一台低配置机器上很好地运行。本文将介绍iptables实例。

  iptables实例

  单个规则实例

  1.   iptables -F?   

      # -F 是清除的意思,作用就是把 FILTRE TABLE 的所有链的规则都清空

      iptables -A INPUT -s 172.20.20.1/32 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

      #在 FILTER 表的 INPUT 链匹配源地址是172.20.20.1的主机,状态分别是NEW,ESTABLISHED,RELATED 的都放行。

      iptables -A INPUT -s 172.20.20.1/32 -m state --state NEW,ESTABLISHED -p tcp -m multiport --dport 123,110 -j ACCEPT

      # -p 指定协议,-m 指定模块,multiport模块的作用就是可以连续匹配多各不相邻的端口号。完整的意思就是源地址是172.20.20.1的主机,状态分别是NEW, ESTABLISHED,RELATED的,TCP协议,目的端口分别为123 和 110 的数据包都可以通过。

      iptables -A INPUT -s 172.20.22.0/24 -m state --state NEW,ESTABLISHED -p tcp -m multiport --dport 123,110 -j ACCEPT

      iptables -A INPUT -s 0/0 -m state --state NEW -p tcp -m multiport --dport 123,110 -j DROP

      #这句意思为源地址是0/0的 NEW状态的的TCP数据包都禁止访问我的123和110端口。

      iptables -A INPUT -s ! 172.20.89.0/24 -m state --state NEW -p tcp -m multiport --dport 1230,110 -j DROP

      # "!"号的意思 取反。就是除了172.20.89.0这个IP段的地址都DROP。

      iptables -R INPUT 1 -s 192.168.6.99 -p tcp --dport 22 -j ACCEPT

  替换INPUT链中的第一条规则

  1.   iptables -t filter -L INPUT -vn  
  2.  

  以数字形式详细显示filter表INPUT链的规则

  #-------------------------------NAT IP--------------------------------------

  #以下操作是在 NAT TABLE 里面完成的。请大家注意。

  1.   iptables -t nat -F  
  2.  
  3.   iptables -t nat -A PREROUTING -d 192.168.102.55 -p tcp --dport 90 -j DNAT --to 172.20.11.1:800  
  4.  

  #-A PREROUTING 指定在路由前做的。完整的意思是在 NAT TABLE 的路由前处理,目的地为192.168.102.55 的 目的端口为90的我们做DNAT处理,给他转向到172.20.11.1:800那里去。

  1.   iptables -t nat -A POSTROUTING -d 172.20.11.1 -j SNAT --to 192.168.102.55  
  2.  

  #-A POSTROUTING 路由后。意思为在 NAT TABLE 的路由后处理,凡是目的地为 172.20.11.1 的,我们都给他做SNAT转换,把源地址改写成 192.168.102.55 。

  1.   iptables -A INPUT -d 192.168.20.0/255.255.255.0 -i eth1 -j DROP  
  2.  
  3.   iptables -A INPUT -s 192.168.20.0/255.255.255.0 -i eth1 -j DROP  
  4.  
  5.   iptables -A OUTPUT -d 192.168.20.0/255.255.255.0 -o eth1 -j DROP  
  6.  
  7.   iptables -A OUTPUT -s 192.168.20.0/255.255.255.0 -o eth1 -j DROP  
  8.  

  # 上例中,eth1是一个与外部Internet相连,而192.168.20.0则是内部网的网络号,上述规则用来防止IP欺骗,因为出入eth1的包的ip应该是公共IP

  1.   iptables -A INPUT -s 255.255.255.255 -i eth0 -j DROP  
  2.  
  3.   iptables -A INPUT -s 224.0.0.0/224.0.0.0 -i eth0 -j DROP  
  4.  
  5.   iptables -A INPUT -d 0.0.0.0 -i eth0 -j DROP  
  6.  

  # 防止广播包从IP代理服务器进入局域网:

  1.   iptables -A INPUT -p tcp -m tcp --sport 5000 -j DROP  
  2.  
  3.   iptables -A INPUT -p udp -m udp --sport 5000 -j DROP  
  4.  
  5.   iptables -A OUTPUT -p tcp -m tcp --dport 5000 -j DROP  
  6.  
  7.   iptables -A OUTPUT -p udp -m udp --dport 5000 -j DROP  
  8.  

  # 屏蔽端口 5000

  1.   iptables -A INPUT -s 211.148.130.129 -i eth1 -p tcp -m tcp --dport 3306 -j DROP  
  2.  
  3.   iptables -A INPUT -s 192.168.20.0/255.255.255.0 -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT  
  4.  
  5.   iptables -A INPUT -s 211.148.130.128/255.255.255.240 -i eth1 -p tcp -m tcp --dport 3306 -j ACCEPT  
  6.  
  7.   iptables -A INPUT -p tcp -m tcp --dport 3306 -j DROP  
  8.  

  # 防止 Internet 网的用户访问 MySQL 服务器(就是 3306 端口)

  1.   iptables -A FORWARD -p TCP --dport 22 -j REJECT --reject-with tcp-reset  
  2.  

  #REJECT, 类似于DROP,但向发送该包的主机回复由--reject-with指定的信息,从而可以很好地隐藏防火墙的存在。iptables实例说明介绍。

【编辑推荐】

iptables的启动和关闭

Iptables 详细介绍

使用netfilter/iptables构建防火墙 

责任编辑:zhaolei 来源: CSDN
相关推荐

2011-03-15 10:09:11

2013-02-28 13:18:08

2011-03-17 17:19:24

iptables

2011-03-18 09:26:13

Iptables规则

2011-03-15 15:47:15

Iptables防火墙

2011-03-16 11:17:56

IptablesICMP

2011-03-15 16:26:46

iptablesnat

2011-03-17 17:45:45

iptables规则

2011-03-15 14:01:13

2011-03-14 14:40:11

iptables编译

2011-03-15 09:46:31

2011-03-15 13:39:14

iptablesstun

2011-03-15 16:34:36

Iptables性能

2011-03-17 14:26:45

iptables 端口

2011-03-14 14:40:08

Iptables命令

2011-03-15 14:50:03

使用IPTables

2011-03-17 17:24:48

2011-03-17 16:43:49

2011-03-15 09:14:29

2011-03-15 15:06:27

iptables脚本
点赞
收藏

51CTO技术栈公众号