UDP 数据包 iptables(可能存在 DDoS)

UDP 数据包 iptables(可能存在 DDoS)

Debian 8 — 我一直在应用一些规则来避免 UDP 洪水,但我不确定它们是否有效,我有来自我的反 DDoS 的日志,这是一次非常大的攻击(大约 70gbs)

这是我在操作系统上应用的规则。

iptables -A INPUT -i eth0 -p udp --sport 123 -m limit --limit 1/s --limit-burst 1000 -j ACCEPT
iptables -A INPUT -i eth0 -p udp -m limit --limit 1/s --limit-burst 1000 -j ACCEPT

反 DDoS 日志(大约有 200-300 个 IP 具有相同的数据包/长度)

2019-01-21 02:01:21 UTC IP 24.103.40.174:123 > myhost:3866 UDP, length 1835036, packets 4096
2019-01-21 02:01:21 UTC IP 206.54.223.145:123 > myhost:59733 UDP, length 1835036, packets 4096
2019-01-21 02:01:21 UTC IP 58.186.102.236:123 > myhost:56048 UDP, length 1835036, packets 4096
2019-01-21 02:01:21 UTC IP 202.125.157.74:123 > myhost:59733 UDP, length 1835036, packets 4096
2019-01-21 02:01:21 UTC IP 87.241.143.27:123 > myhost:3866 UDP, length 1835036, packets 4096
2019-01-21 02:01:21 UTC IP 80.11.26.127:123 > myhost:59733 UDP, length 1835036, packets 4096
2019-01-21 02:01:21 UTC IP 190.67.183.22:123 > myhost:21180 UDP, length 1835036, packets 4096
2019-01-21 02:01:21 UTC IP 175.18.90.38:123 > myhost:59733 UDP, length 1835036, packets 4096

有什么建议可以避免/阻止这种特定的 UDP 洪水攻击?我还阻止了除我正在使用的端口之外的所有端口,但攻击仍然可以通过。

答案1

当您在 Netfilter 表中阻止 UDP 数据包时filter,这些数据包仍会触发框中的连接跟踪条目创建。

这会导致服务器的额外资源消耗。

为了避免创建连接跟踪条目,您需要使用该raw表来过滤您的数据包。

iptables -t raw -A PREROUTING -i eth0 -p udp --sport 123 -m limit --limit 1/s --limit-burst 1000 -j ACCEPT
iptables -t raw -A PREROUTING -i eth0 -p udp -m limit --limit 1/s --limit-burst 1000 -j ACCEPT

然而,只有当您的服务器的处理能力成为瓶颈时,这才有帮助。

如果 DDoS 填满了您服务器的网络连接容量,那么您在实际服务器上就无法采取任何措施来保护自己免受洪灾。

这是因为上游路由器仍通过连接将所有这些数据包发送到您的服务器,从而限制了链路的容量。

在这种情况下,唯一的解决方案是咨询上游网络提供商,以获取帮助减轻 DDoS。

答案2

您应该始终尝试将规则移至更高的链以最大程度地提高性能。为此,您可以在数据包进入原始表和 PREROUTING 链中的连接跟踪之前将其丢弃。INPUT 没有任何原始链。

相关内容