限制发往 Linux 机器的 UDP 数据包的速率

限制发往 Linux 机器的 UDP 数据包的速率

有没有办法限制发往我的 Linux 机器的 UDP 数据包的速率?我感觉到有些发往我的机器的 UDP 数据包被丢弃了。

Linux 中是否有任何默认的 udp 速率限制配置?我在 中看到了 icmp 速率限制配置 /proc/sys/net/ipv4/icmp_ratelimit

答案1

是的,使用 iptables 模块是可以的recent。对于这里

iptables -I INPUT -p udp -i eth0 -m state --state NEW -m recent \
    --update --seconds 60 --hitcount 10 -j DROP

或者,如果你想限制 ICMP 数据包,你可以这样做

iptables -I INPUT -p icmp -i eth0 -m state --state NEW -m recent \
    --update --seconds 60 --hitcount 10 -j DROP

数据包限制器(即recentiptables 模块)与需要对哪种类型的数据包进行处理的条件无关。

您可以指定时间间隔和数据包阈值。此示例将在 1 分钟内仅启用 10 个 udp 数据包。

您可能希望限制的不是一般的 UDP 通信,而是目标端口。例如,如果您想阻止不太难的 DNS DDOS 攻击,这会很有用。在这种情况下,您还应该使用标志给出端口号--dport 53

您提到的文件/proc是关于 icmp 数据包的。它与 udp 无关。

祝你好运!

相关内容