1. iptable [-t 表] 命令选项 [连名] 匹配条件 [-j 动作]
2.常用命令选项如下:
-A 【append】 在指定的连的结尾添加规则--line-number 查看规则连是,显示列表号
-Z 清空计数器值二.举例
# iptable -t filter -F【清空filter表中所有规则】# iptable -A FORWARD -p udp -j ACCEPT 【允许转发udp的所有数据包】
2. 地址匹配:用于检查数据包的地址是否符合规则,包括源地址和目的地址。【-s 源地址, -d 目的地址】
# iptable -A FORWARD -s 10.0.0.0/8 -j DROP 【拒绝转发来自10.0.0.0/8 网段的数据包】# iptable -A FORWARD -d 80.0.0.0/8 -j DROP 【 拒绝转发目的是80.0.0.0/8 网段的数据包】
3.端口匹配:用于检查数据包的tcp或udp端口,需要和 “-p 协议类型” 一起使用【-sport 源端口,-dport 目的端口】
# iptables -A FORWARD -s 10.0.0.0/8 -p tcp --dport 80 -j ACCEPT 【允许转发来自10.0.0.0/8网段,目的端口是80的数据包】# iptables -I FORWARD -s 10.0.0.0/8 -p tcp --sport 21 -j ACCEPT【允许转发来自10.0.0.0/8网段,源端口是21的数据包】
4.接口匹配:用于检查数据包从防火墙那个接口进入或出去,来判断是否允许。
# iptables -A FORWARD -i eth0 -s 10.0.0.0/8 -p tcp --dport 80 -j ACCEPT# iptables -A INPUT -i eth0 -s 80.0.0.0/8 -j DORP 【拒绝从eth0进入,来自80.0.0.0/8的数据包】
5.SNAT转换:一般linux充当网关服务器时使用
SNAT只能用在nat表的POSTROUTING连,用于对源地址进行转换。要结合 --to 使用。# iptables -t nat -A POSTROUTING -i eth0 -s 80.0.0.0/8 -p tcp --dport 25 -j SNAT --to 202.106.1.1
6.DNAT转换:只能用在nat表中的PREROUTING连,用于对目的地址或端口进行转换。
# iptables -t nat -A PREROUTING -i eth1 -d 202.106.1.1 -p tcp --dport 80 -j DNAT --to 10.0.0.10【将从eth1 进入,目的地址是202.106.1.1,使用tcp 协议,目的端口是80的数据包的目的地址转为10.0.0.1】
7.MASQUERADE:伪装,是SNAT的特例。
# iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -o eth1 -j MASQUERADE【拒绝转发来自该MAC地址的数据包】
2.按多端口或连续端口匹配
20: 表示20以后的所有端口# iptables -A INPUT -p tcp -sport :80 -j ACCEPT
3.还可以按数据包速率和状态匹配
-m limit --limit 匹配速率 如: -m limit --limit 50/s -j ACCEPT新闻热点
疑难解答