我试图找出 IPTABLES 规则,以便将 ICMP (ping) 流量速率限制为每秒 5 个数据包。这是我到目前为止尝试过但没有成功的命令:
iptables -A OUTPUT -p icmp -m limit --limit 5/second -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
有没有人有任何想法如何写这个?
几年前,当smurf攻击很常见时,这曾经是相当标准的传说。我已经好几年没见过了,但无论如何,共同的防御是使用这三个规则:
iptables -A INPUT -p icmp -m icmp --icmp-type address-mask-request -j DROP
iptables -A INPUT -p icmp -m icmp --icmp-type timestamp-request -j DROP
iptables -A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 1/second -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
前两条规则是保护所必需的;如果这不是您的担心,那么只需转储它们,然后使用另一个。在大多数正常情况下,您可能比原先设想的更严格,每秒 1 ping 足以用于合法用途。
如您所见,仅声明要监视的协议icmp是不够的:您还必须加载icmp模块-m icmp.