处理IPTables中的NTP反射攻击

Jef*_*ood 16 ntp ddos

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

这是交通:

路由器网络流量图

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

路由器 CPU 使用率图

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

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

-p udp --sport 123 -j DROP

这是IPTables 中的第一条规则。

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

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

  • 允许在数据包中欺骗 IP 地址
  • 未打补丁,大约 2010 年的 NTP 代码

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

wom*_*ble 21

从本质上讲,如果 DDoS 攻击设法填充您拥有的任何连接到 Internet 的管道(这是任何 UDP 反射攻击的目的 - 填充管道),那么您就不走运了。如果您的上游链路可以接受 1Gbps 的流量,并且(比如说)总共有 2Gbps 的流量通过该链路,那么其中的一半将被路由器或交换机丢弃,将数据包放到链路上。攻击者不在乎他们的攻击流量的一半是否会被丢弃,但您的客户会关心:TCP 连接中 50% 的数据包丢失会对这些连接的性能和可靠性造成非常可怕的影响

只有两种三种方法可以阻止容量 DDoS 攻击:

  1. 有一个足够大的管道,攻击流量不会填满它。
  2. 在它们进入管道之前停止攻击数据包。
  3. 转移到一个不受 NTP 反射攻击的不同 IP 地址。

在 iptables 中阻止它们不会做蹲伏,因为到那时攻击流量已经挤出了合法流量并导致它被丢弃在地板上,所以攻击者赢了。既然你(可能)不控制上游路由器或交换机被转发攻击流量,是的,你必须取得联系,与您的上游网络提供商,让他们做什么,以到达您的网络停止了攻击流量链接,无论是

  • 阻止攻击端口上的所有流量(这不是大多数 ISP 愿意在他们的 colo 客户访问路由器上做的事情,因为$REASONS

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

  • 最坏的情况,黑洞目标IP地址

请注意,仅当您有其他可以继续运行的 IP 地址时,对 IP 进行黑洞处理才有效——如果您的提供商对您唯一的 IP 地址进行了黑洞处理,则攻击者已成功,因为您已断开 Internet,这正是他们试图实现的目标首先。

  • 有很多原因。1. ISP 获得报酬是为了提供流量,而不是阻止流量。2. 只有更高端的网络设备才能对大(100G+)流量进行线速检测,成本高昂。3. 从客户请求到核心路由器中的配置线路并非易事。 (4认同)

Pet*_*een 5

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

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

如果您的防火墙使用连接跟踪(大多数情况下),那么您可能希望使用“原始”表在数据包到达连接跟踪机器之前将其丢弃。

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