iptables的过滤规则

运维 系统运维
iptables的过滤规则:iptables是一种集成的、便捷的IP信息包过滤系统,如果连接LAN的使用,则更有利于iptables在Linux下控制IP信息包。本文讲述的是如何iptables的过滤规则。

iptables过滤规则:

  # 过滤表规则

  1.   *filter  
  2.  

  # 默认彻略

  1.   :FORWARD DROP [ ]  
  2.  
  3.   :INPUT DROP [ ]  
  4.  
  5.   :OUTPUT ACCEPT [ ]  
  6.  

  # 定义新链

  1.   -N ICMP_FORWARD  
  2.  
  3.   -N TCP_FORWARD  
  4.  
  5.   -N UDP_FORWARD  
  6.  
  7.   -N ICMP_INPUT  
  8.  
  9.   -N TCP_INPUT  
  10.  
  11.   -N UDP_INPUT  
  12.  
  13.   # Fix a bug  
  14.  
  15.   -A OUTPUT -p icmp -m state --state INVALID -j DROP  
  16.  

  # 以下是FORWARD链的规则

  # 若是ICMP协议则跳到 ICMP_FORWARD

  1.   -A FORWARD -p icmp -j ICMP_FORWARD  
  2.  

  # 若是TCP协议则跳到 TCP_FORWARD

  1.   -A FORWARD -p tcp -j TCP_FORWARD  
  2.  

  # 若是UDP协议则跳到 UDP_FORWARD

  1.   -A FORWARD -p udp -j UDP_FORWARD  
  2.  

  # 允许碎片通过的速率200个/s,从200开始计数

  1.   -A FORWARD -f -m limit --limit 200/s --limit-burst 200 -j ACCEPT  
  2.  

  # 不匹配FORWARD链的所有规则,丢弃数据包,结束FORWARD链

  1.   -A FORWARD -j DROP  
  2.  

  # 以下是FORWARD链中针对ICMP协议的规则

  # 从内网到外网的放行

  1.   -A ICMP_FORWARD -p icmp -s 192.168.0.0/24 -i eth0 -o ppp+ -j ACCEPT  
  2.  

  # 从外网进来的回应包放行

  1.   -A ICMP_FORWARD -p icmp -m state --state ESTABLISHED,RELATED -i ppp+ -j ACCEPT  
  2.  

  # 丢弃所有不匹配的ICMP数据包,结束FORWARD链

  1.   -A ICMP_FORWARD -p icmp -j DROP  
  2.  

  # 以下是FORWARD链中针对TCP协议的规则

  # 允许内网1024以上的端口连接外网

  1.   -A TCP_FORWARD -p tcp -s 192.168.0.0/24 -m tcp --sport 1024: -i eth0 -o ppp+ -j ACCEPT  
  2.  

  # 允许内网进行主动式的FTP

  1.   -A TCP_FORWARD -p tcp -m tcp --sport 21 --dport 1024: -m state --state ESTABLISHED -i ppp+ -j ACCEPT  
  2.  
  3.   -A TCP_FORWARD -p tcp -m tcp --sport 20 --dport 1024: -m state --state ESTABLISHED,RELATED -i ppp+ -j ACCEPT  
  4.  

  # 允许外网进来的回应包通过

  1.   -A TCP_FORWARD -p tcp -m state --state ESTABLISHED -m tcp --dport 1024: -i ppp+ -j ACCEPT  
  2.  

  # 丢弃所有不匹配的TCP数据包,结束FORWARD链

  1.   -A TCP_FORWARD -p tcp -j DROP  
  2.  

  # 以下是FORWARD链中针对UDP协议的规则

  # 允许内网1024以上的端口连接外网

  1.   -A UDP_FORWARD -p udp -s 192.168.0.0/24 -m udp --sport 1024: -i eth0 -o ppp+ -j ACCEPT  
  2.  

  # 允许外网中指明的DNS服务器进行域名解析

  1.   -A UDP_FORWARD -p udp -s 202.96.96.68 -m udp --sport 53 --dport 1024: -i ppp+ -j ACCEPT  
  2.  
  3.   -A UDP_FORWARD -p udp -s 202.96.*.* -m udp --sport 53 --dport 1024: -i ppp+ -j ACCEPT  
  4.  

  # 开放IRC OICQ 端口

  1.   -A UDP_FORWARD -p udp -m multiport --source-port 4000,8000 -m udp --dport 1024: -i ppp+ -j ACCEPT  
  2.  

  # 允许从外网进来的UDP回应包通行

  1.   -A UDP_FORWARD -p udp -m state --state ESTABLISHED,RELATED -m udp --dport 1024: -i ppp+ -j ACCEPT  
  2.  

  # 丢弃所有不匹配的UDP数据包,结束FORWARD链

  1.   -A UDP_FORWARD -p udp -j DROP  
  2.  

  # 以下开始是对网关服务器的匹配规则

  # 允许数据包进入本地回环接口

  1.   -A INPUT -p all -i lo -j ACCEPT  
  2.  

  # 若是ICMP协议则跳到ICMP_INPUT进行规则匹配

  1.   -A INPUT -p icmp -j ICMP_INPUT  
  2.  

  # 若是TCP协议则跳到TCP_INPUT进行规则匹配

  1.   -A INPUT -p tcp -j TCP_INPUT  
  2.  

  # 若是UDP协议则跳到UDP_INPUT进行规则匹配

  1.   -A INPUT -p udp -j UDP_INPUT

     

  # 允许碎片通过的速率200个/s,从200开始计数

  1.   -A INPUT -f -m limit --limit 200/s --limit-burst 200 -j ACCEPT  
  2.  

  # 不匹配INPUT链的所有规则,丢弃数据包,结束INPUT链

  1.   -A INPUT -j DROP  
  2.  

  # 以下是INPUT链中针对ICMP协议的规则

  # 允许从内网来的ICMP数据包

  1.   -A ICMP_INPUT -p icmp -i eth0 -j ACCEPT  
  2.  

  # 允许从外网来的ICMP回应包通行

  1.   -A ICMP_INPUT -p icmp -m state --state ESTABLISHED,RELATED -i ppp+ -j ACCEPT  
  2.  

  # 丢弃所有不匹配的ICMP数据包,结束INPUT链

  1.   -A ICMP_INPUT -p icmp -j DROP  
  2.  

  # 以下是INPUT链中针对TCP协议的规则

  # 对内网机器提供 http https 网上邻居 透明代理服务

  1.   -A TCP_INPUT -p tcp -s 192.168.0.0/24 -m multiport --destination-port 80,443,137,138,139,8080 -i eth0 -j ACCEPT  
  2.  

  # 允许服务器以主动方式连接外网的FTP服务器

  1.   -A TCP_INPUT -p tcp -m tcp --sport 21 --dport 1024: -m state --state ESTABLISHED -i ppp+ -j ACCEPT  
  2.  
  3.   -A TCP_INPUT -p tcp -m tcp --sport 20 --dport 1024: -m state --state ESTABLISHED,RELATED -i ppp+ -j ACCEPT  
  4.  

  # 提供 ssh smtp pop3 http https 服务

  1.   -A TCP_INPUT -p tcp -m multiport --destination-port 22,25,110,80,443 -j ACCEPT  
  2.  

  # 拒绝外网主动连接本服务器

  1.   -A TCP_INPUT -p tcp -m tcp --syn -i ppp+ -j DROP  
  2.  

  # 允许进来的回应包通过

  1.   -A TCP_INPUT -p tcp -m state --state ESTABLISHED -m tcp --dport 1024: -j ACCEPT  
  2.  

  # 丢弃所有不匹配的TCP数据包,结束INPUT链

  1.   -A TCP_INPUT -p tcp -j DROP  
  2.  

  # 以下是INPUT链中针对UDP协议的规则

  # 允许外网中指明的DNS服务器进行域名解析

  1.   -A UDP_INPUT -p udp -s 202.96.96.68 -m udp --sport 53 --dport 1024: -i ppp+ -j ACCEPT  
  2.  
  3.   -A UDP_INPUT -p udp -s 202.96.*.* -m udp --sport 53 --dport 1024: -i ppp+ -j ACCEPT  
  4.  

  # 为内网的机器提供DNS和SAMBA服务

  1.   -A UDP_INPUT -p udp -s 192.168.0.0/24 -m multiport --destination-port 53,137,138,139 -i eth0 -j ACCEPT  
  2.  

  # 允许服务器作为samba client

  1.   -A UDP_INPUT -p udp -s 192.168.0.0/24 -m udp --sport 137:139 --dport 1024: -i eth0 -j ACCEPT  
  2.  

  # 允许进来的回应包通过

  1.   -A UDP_INPUT -p udp -m state --state ESTABLISHED,RELATED -m udp --dport 1024: -j ACCEPT  
  2.  

  # 为内网的机器提供DHCP服务

  1.   -A UDP_INPUT -p udp -m udp --sport 68 --dport 67 -i eth0 -j ACCEPT  
  2.  

  # 丢弃所有不匹配的UDP数据包,结束INPUT链

  1.   -A UDP_INPUT -p udp -j DROP  
  2.  
  3.   COMMIT  
  4.  

  # 路由表规则

  *nat

  # 默认彻略

  1.   :PREROUTING ACCEPT [ ]  
  2.  
  3.   :POSTROUTING ACCEPT [ ]  
  4.  
  5.   :OUTPUT ACCEPT [ ]  
  6.  

  # 为内网机器使用squid透明代理进行端口重定向

  1.   -A PREROUTING -i eth0 -p tcp -d ! 192.168.0.1 -m tcp --dport 80 -j REDIRECT --to-ports 8080  
  2.  

  # 对内网机器应用IP伪装

  1.   -A POSTROUTING -o ppp+ -j MASQUERADE  
  2.  
  3.   COMMIT  
  4.  

【编辑推荐】

netfilter/iptables系统的安装

如何用iptables实现NAT

iptables常用命令及参数

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

2011-03-15 09:59:54

2011-03-15 09:59:54

2011-03-18 09:26:13

Iptables规则

2011-03-17 17:45:45

iptables规则

2011-03-16 16:41:57

清空iptables

2011-03-16 10:59:57

2011-03-14 15:46:35

Iptables语法

2017-09-11 20:16:58

2011-03-16 16:54:10

iptables 清空linux

2011-03-16 16:23:23

保存iptables防火墙

2011-03-15 15:47:34

netfilteriptables

2010-02-24 15:10:18

2011-03-16 16:48:32

iptables 清空

2019-07-04 22:54:15

防火墙CMP系统安全

2011-03-17 16:43:49

2011-03-16 16:59:46

iptables 映射

2010-09-09 16:51:50

2011-03-16 11:17:56

IptablesICMP

2011-03-14 14:40:11

iptables编译

2021-03-02 14:02:19

网络安全系统安全iptables
点赞
收藏

51CTO技术栈公众号