在 IPTables 中处理 NTP 反射攻击

在 IPTables 中处理 NTP 反射攻击

我们正在处理NTP 反射/放大攻击在我们的共置服务器上。这个问题专门针对如何应对 NTP 反射攻击,而不是针对一般的 DDoS。

以下是交通情况:

路由器网络流量图

它正在搅动我们路由器上的一些 CPU:

路由器 CPU 使用率图表

不幸的是,它还不足以导致我们的上游提供商将流量黑洞,这意味着它正在传递给我们。

我们使用以下规则来阻止源自端口 123 的 NTP 流量:

-p udp --sport 123 -j DROP

这是第一的IPTables 中的规则。

我搜索了很多,但找不到太多关于如何使用 IPTables 缓解 NTP 反射攻击的信息。而且有些信息似乎完全不正确。这个 IPTables 规则正确吗?除了联系我们的上游网络提供商之外,我们还能添加或做些什么来缓解 NTP 反射/放大攻击?

另外:由于这些攻击者必须使用网络

  • 允许数据包中的 IP 地址欺骗
  • 有未打补丁的 2010 年左右的 NTP 代码

是否有任何全球信息交换中心可以让我们向其报告这些 IP 地址,以便修复它们以停止允许欺骗数据包,并修补其 NTP 服务器?

答案1

从本质上讲,如果 DDoS 攻击成功填满了您与互联网之间的所有管道(这是任何 UDP 反射攻击的目的——填满管道),那么您就倒霉了。如果您的上游链路可以承载 1Gbps 的流量,并且总共有 2Gbps 的流量要通过该链路,那么将数据包通过该链路的路由器或交换机将丢弃其中的一半。攻击者并不关心他们的攻击流量有一半被丢弃,但您的客户却在乎:TCP 连接中 50% 的数据包丢失将造成可怕的后果,糟糕的这些连接的性能和可靠性。

阻止容量耗尽 DDoS 攻击只有两三种方法:

  1. 拥有足够大的管道以避免攻击流量填满它。
  2. 在攻击数据包进入管道之前将其阻止。
  3. 转移到未受到 NTP 反射攻击的其他 IP 地址。

在 iptables 中阻止它们不会有任何作用,因为到那时攻击流量已经挤占了合法流量并导致其被丢弃,因此攻击者获胜了。由于您(大概)无法控制转发攻击流量的上游路由器或交换机,所以您必须联系上游网络提供商并让他们这样做某物阻止攻击流量到达你的网络链接,无论是

  • 阻止攻击端口上的所有流量(大多数 ISP 都不愿意在其托管客户接入路由器上执行此操作$REASONS

  • 过滤掉攻击的源 IP 地址(使用 S/RTBH 更合理,但不是每个提供商都已经具备的功能)

  • 最坏的情况是,将目标 IP 地址设为黑洞

请注意,仅当您拥有其他可继续运行的 IP 地址时,将 IP 列入黑洞才会有效 —— 如果您的提供商将您的唯一 IP 地址列入黑洞,则攻击者已经成功,因为您已脱离互联网,而这正是他们最初想要实现的目标。

答案2

我假设您有一条通往 ISP 的管道,该管道终止于您自己的路由器/防火墙。然后在该路由器/防火墙后面,您有自己的机器。ISP 不会阻止流量,因此您必须自己处理。您希望在路由器/防火墙处阻止流量,以阻止其击中其后面的机器,同时最大限度地减少路由器/防火墙的负载。

您的规则看起来适合删除来自标准端口上的 ntp 服务器的所有内容。请记住,如果您实际使用 ntp,则可能需要在防火墙规则中找出漏洞

如果您的防火墙使用连接跟踪(大多数都使用),那么您可能需要使用“原始”表在数据包到达连接跟踪机制之前丢弃它们。

iptables -t raw -A PREROUTING -p udp --sport 123 -j DROP

答案3

看来我们可以将滥用 NTP(以及希望是 NTP 修补)的 IP 报告给

http://openntpproject.org/

至于举报允许欺骗 IP 的网络,我找不到太多

我们的测量结果表明,在我们调查的约 25% 的自治系统和网络块中,欺骗行为仍然普遍存在。更重要的是,欺骗流量的单一入口点为攻击者提供了一种向整个互联网发送欺骗流量的手段。ISP 可以采用过滤 [RFC2827] 来确保其出站流量不被欺骗。

也许唯一的方法是直接联系 ISP?

相关内容