处理IPTables中的NTPreflection攻击

我们正在处理在同一台服务器上的NTPreflection/放大攻击 。 这个问题是专门针对NTPreflection攻击的,而不是针对DDoS的。

这是交通:

路由器网络流量图

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

路由器CPU使用情况图

不幸的是,它不足以导致我们的上游供应商堵​​塞交通,这意味着它传递给我们。

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

-p udp --sport 123 -j DROP

这是IPTables中的第一条规则。

我search了很多,我找不到很多有关如何使用IPTables来缓解NTPreflection攻击的信息。 而那里的一些信息似乎是不正确的。 这个IPTables规则是否正确? 除了联系我们的上游networking提供商之外,还有什么可以补充或减轻NTPreflection/放大攻击?

另外:因为这些攻击者必须使用networking

  • 允许欺骗分组中的IP地址
  • 没有打补丁,大约在2010年的NTP代码

有没有我们可以报告这些IP地址的全球票据交换所,以便他们得到修复,停止允许欺骗的数据包,并修补他们的NTP服务器?

    从本质上讲,如果DDoS攻击设法填充任何pipe道连接到互联网(这是任何UDPreflection攻击的目的 – 填充pipe道),那么你就不幸运了。 如果您的上行链路可能会占用1Gbps的stream量,并且有2Gbps的stream量总量下降,那么其中一半将由路由器或将数据包放在链路上的交换机丢弃。 攻击者并不关心他们攻击stream量的一半是否被丢弃,但是你的客户是这样做的:在TCP连接中50%的数据包丢失会对这些连接的性能和可靠性做出糟糕的, 可怕的事情。

    阻止容量DDoS攻击的方法只有两种

    1. 有一个足够大的pipe道,攻击stream量不会填满它。
    2. 在进入pipe道之前停止攻击数据包。
    3. 切换到不在NTPreflection攻击下的不同IP地址。

    阻止他们在iptables中不会蹲下,因为到那时攻击stream量已经挤掉了合法的stream量,并导致它掉在地板上,所以攻击者赢了。 由于您(大概)不控制上游路由器或转发攻击stream量的交换机,是的,您必须与上游networking提供商取得联系,让他们采取措施阻止攻击stream量到达您的networking链接,是否是

    • 阻止攻击端口上的所有stream量(不是大多数ISP愿意在其colo客户访问路由器上执行的操作,因为$REASONS

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

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

    请注意,如果您的其他IP地址可以继续运行,则拒绝IP只能起作用 – 如果您的提供商阻止您唯一的IP地址,则攻击者成功了,因为您不在Internet上,这正是他们试图实现的目标首先。

    我会假设你有一个pipe道到你的ISP,终止于你自己的路由器/防火墙。 然后在那个路由器/防火墙后面你有你自己的机器。 ISP不会阻止stream量,所以你必须自己处理。 您希望阻止路由器/防火墙的stream量,阻止stream量冲击后面的设备,同时最大限度地减less路由器/防火墙的负载。

    您的规则看起来是正确的,从标准端口上的ntp服务器丢弃任何东西。 请记住,如果您实际使用ntp,则可能需要在防火墙规则中join漏洞

    如果你的防火墙使用连接跟踪(大多数情况下),那么你可能需要使用“原始”表来丢弃数据包,然后到达连接跟踪机器。

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

    看起来我们可以报告NTP滥用的IP(希望NTP补丁)

    http://openntpproject.org/

    至于报告允许伪造IP的networking, 我找不到 :

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

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