TCP Keepalive技术可以用来防范DDOS吗?

TCP Keepalive技术可以用来防范DDOS吗?

我正在学习 DDOS 及其缓解技术。TCP Keepalive 用于检查另一台主机是否仍在运行,如果主机未确认 tcp keep alive 消息,则连接终止。

我想知道这些消息是否可用于缓解 DDOS 攻击。受到攻击的服务器可以减少与客户端联系的时间,无论它是否仍在运行。服务器可以使用单播反向路径转发来防止 IP 欺骗,如果攻击是使用僵尸网络从合法主机进行的,服务器是否可以使用 tcp 的 keepalive 消息技术来关闭死连接并防止自身受到 DDOS 攻击?有没有办法检测 TCP 半开连接并使用 tcp keep alive 关闭它们?

答案1

DDOS 是一个非常广泛的术语,包括各种攻击。TCP 保持活动仅与已建立的 TCP 连接相关,这通常首先排除使用 IP 欺骗的攻击。这意味着它与大多数使用高带宽的 DDOS 攻击(如使用欺骗 IP 地址的放大攻击)或 SYN 泛洪攻击无关。

这使得攻击慢蜂尝试通过保持许多连接打开来绑定服务器上的资源,或者通过用户空间应用程序进行正确的 TCP 握手,然后放弃连接而不关闭。TCP 保持活动对第一种情况不起作用,因为有一个正确的客户端可以按预期回复 TCP 保持活动。在第二种情况下,它可能有助于简单的实现,但可以对其进行修改以处理 TCP 保持活动,而无需使用更多内存。

简而言之:它可能对非常特殊和罕见的 DDOS 有帮助。但即使对于这种 DDOS,在连接上使用空闲超时并根据打开的连接数和连接的特定状态动态调整超时可能更有效。这可能会涵盖更多类型的攻击。

答案2

您的机器无法知道数据包的源 IP 地址是否被伪造。初步估计,RPF 仅适用于路由器。如果您有多个接口连接到多个上游提供商,它将使流量减少 N 倍,其中 N 是接口数;有多少上游你有?

TCP KEEPALIVE 与此无关。您可能正在考虑 tcp syn cookies,您可以使用适当的 sysctl 选项启用它。

无论如何,所有这些都无关紧要,除非您的威胁模型是几个无所事事的孩子。长期以来,DDOS 攻击只会堵塞您的传入管道。如果没有剩余的链接容量供它们接收任何有用的流量,您的机器是否能够保持运行并不重要!

如果您真的担心一个决心坚定的攻击者,那么您将需要上游提供商的保护,在更严重的情况下,还需要专门的反 DDoS 服务(很容易找到,我不想推广任何特定的服务)。

希望这可以帮助。

相关内容