2 [root@node1 ~]# iptables -A INPUT -p tcp --dport 22 -j DROP
[root@node1 ~]# iptables -A OUTPUT -p tcp --sport 20:1024 -j ACCEPT 1 2
eg: 作为网关使用时,允许转发来自192.168.0.0/24局域网段的DNS解析请求数据包。 1 [root@node1 ~]# iptables -A FORWARD -s 192.168.0.0/24 -p udp --dport 53 -j ACCEPT
2 [root@node1 ~]# iptables -A FORWARD -d 192.168.0.0/24 -p udp --sport 53 -j ACCEPT
>>>、TCP标记匹配。用于检查数据包的TCP标记位(--tcp-flags),需要以“-p tcp”匹配为前提。在iptables命令中使用“--tcp-flags检查范围被设置的标记”的形式,两个参数“检查范围”和“被设置的标记”均为TCP标记的列表,各标记之间用逗号分割。“检查范围”告诉iptables需要检查数据包的哪几个标记,“被设置的标记”则明确匹配对应值为1的标记。
eg: 拒绝从接口(eth0)直接访问防火墙本机的数据包,但是允许响应防火墙TCP请求的数据包进入。
[root@node1 ~]# iptables -P INPUT DROP //此命令执行小心,不1 提前设置通过ssh的话,你的远程直接就断开了
2 [root@node1 ~]# iptables -I INPUT -i eth0 -p tcp --tcp-flags SYN,RST,ACK SYN -j REJECT >>>、ICMP类型匹配。用于检查ICMP数据包的类型(--icmp-type),有选择的过滤数据包,需要以“-p icmp”匹配为前提。在iptables命令中使用“--icmp-type ICMP类型”的形式。ICMP类型可以使用字符串或数字代码,例如“Echo-Request”(数字代码为8)、
“Echo-Reply”(数字代码为0)、“Destination-Unreachable”(数字代码为3),分别对应ICMP协议的请求、回显、目标不可达数据。
eg: 禁止其他主机ping防火墙主机,但是允许从防火墙上ping其他主机(允许接受ICMP回应数据)。
1 iptables -A INPUT -p icmp --icmp-type Echo-Request -j DROP
2 iptables -A INPUT -p icmp --icmp-type Echo-Reply -j ACCEPT
3 iptables -A INPUT -p icmp --icmp-type destination-Unreachable -j ACCEPT
C、 显式(Explicit)条件匹配
这种匹配的功能需要由额外的内核模块提供,因此需要手工指定匹配方式。在iptables命令中使用“-m 模块关键字”的形式调用显式匹配,当然,还的指定对应的匹配内容。在使用过显式匹配以后,可以执行“lsmod |grep xt_”命令查看到扩展防火墙功能的相关内核模块(如:xt_mac,xt_state,xt_multiport等)。常见的显式匹配包括以下几种。