|
-m 选项后接一个匹配项,比如:iptables -A INPUT -m state --state INVALID -j DROP 上面,-m 后接 state 表示匹配 一个状态,然后由 --state 来说明具体是什么状态,多个状态可用逗号分隔,这些状态有下面几种:INVALID ESTABLISHED, RELATED, NEW
INVALID 状态针对的是不能被识别为属于一个已有连接的数据包 --- 比如一个突然到达的 TCP FIN 数据包 (即它不属于任何 TCP 会话)就将匹配 INVALID 状态。
数据包触发 ESTABLISHED 状态的条件是 Netfilter 连接跟踪子系统在一个连接的方向上都已看到了数据包(如在一个数据已经经过交换的 TCP 连接中的确认数据包)。
RELATED 状态描述了在 Netfilter 连接跟踪子系统中打开一个新连接的数据包,而且这个连接和现有的连接相关 ---- 例如,当数据包发送给一个服务器没有绑定的 UDP 套接字时,服务器将返回 ICMP 端口不可到达消息。
NEW 状态表示数据包已经发起了一个新的连接,或者是在连接方向两边都还没看到数据包。
下面是几个实例:iptables -A INPUT -m state --state INVALID -j LOG --log-prefix "DROP INVALID" --log-ip-options --log-tcp-options
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables-A INPUT -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "New not syn:"
iptables-A INPUT -p tcp ! --syn -m state --state NEW -j DROP |
|