iptables的基础知识-iptables中的ICMP:
在iptables看来,只有四种ICMP分组,以下分组类型可以被归为NEW、ESTABLISHED
ECHO请求(ping,8)和ECHO应答(ping,0)
时间戳请求(13)和应答(14)
信息请求(15)和应答(16)
地址掩码请求(17)和应答(18)
这些ICMP分组类型中,请求分组属于NEW,应答分组属于ESTABLISHED。而其它类型的ICMP分组不基于请求/应答方式,一律被归入RELATED。
我们先看一个简单的iptables例子:
- iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED, RELATED -j ACCEPT
- iptables -A INPUT -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT
这链条规则进行如下的iptables过滤:
一个ICMP echo请求是一个NEW连接。因此,允许ICMP echo请求通过OUTPUT链。
当请求的应答返回,由于iptables两个方向上都发包了,此时连接的状态是ESTABLISED,因此允许通过INPUT链。而INPUT链没有NEW状态,因此不允许echo请求通过INPUT链。也就是说,这两条规则允许内部主机ping外部主机,而不允许外部主机ping内部主机。
一个重定向ICMP(5)分组不是基于请求/应答方式的,因此属于RELATED。INPUT和OUTPUT链都允许RELATED状态的连接,因此重定向(5)分组可以通过INPUT和OUTPUT链。
上一节:iptables中TCP三次握手 下一节:iptables中包的转发过程。
【编辑推荐】