用于通过 UDP 进行块同步洪水攻击的 IPTABLES

用于通过 UDP 进行块同步洪水攻击的 IPTABLES

我是 UDP 端口同步洪水攻击的受害者。攻击来自许多不同的 IP。这台机器是一台专用服务器,是一台 hlds 游戏服务器,攻击者使 UDP 端口超载,这给游戏带来了很大的麻烦,游戏中每个用户的数据包都丢失了,ping 值也很高。

该服务器采用Linux,激活了iptables,目前,有一些规则可以阻止这种攻击,但幸运的是什么也没有发生。

TCPDUMP LOG(非全部)

No.     Time        Source                Destination           Protocol Length Info    1012 6.134039    111.90.151.22         MYIP      UDP      60     Source port: ezmeeting-2  Destination port: 27024

Src: 111.90.151.22 (111.90.151.22), Dst: x.x.x.x (x.x.x.x)
    Version: 4
    Header length: 20 bytes
    Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00: Not-ECT (Not ECN-Capable Transport))
    Total Length: 33
    Identification: 0x117f (4479)
    Flags: 0x00
    Fragment offset: 0
    Time to live: 242
    Protocol: UDP (17)
    Header checksum: 0x4154 [correct]
    Source: 111.90.151.22 (111.90.151.22)
    Destination: x.x.x.x (x.x.x.x)
    [Source GeoIP: Unknown]
    [Destination GeoIP: Unknown] User Datagram Protocol, Src Port: ezmeeting-2 (10101), Dst Port: 27024  (27024) Data (5 bytes)


    Data: ffffffff56
    [Length: 5]

IP表

iptables -A INPUT -p udp -d X.X.X.X --dport 27024 -m length --length 60 -m recent --set --name GameSynF
iptables -A INPUT -p udp -d X.X.X.X --dport 27024 -m string --algo kmp --hex-string "|ff ff ff ff 56|" -m recent --set --name GameSynF -j DROP 

如何执行 iptable 以删除任何具有十六进制字符串“ffffffff56”且长度为 60 的数据包。

答案1

如果你的防火墙尚未这样配置,默认拒绝是更安全的操作方式。这意味着任何未明确允许的内容都会被拒绝。对于 iptables,这意味着:

 iptables -P INPUT DROP

您也可以对 OUTPUT 和 FORWARD 链执行此操作,但 OUTPUT 特别需要更多的规则来管理您的服务器允许连接的内容。

在禁止所有内容后,您可以允许您想要的内容。您的游戏是否在端口 27015 和 27018 上监听 UDP 流量?如果是,请添加允许该流量进入的规则。客户端是否始终使用一小段源端口甚至单个源端口?如果是,请将允许的数据包限制为仅这些源端口。您给出的第一个示例(源端口为 80)在这种情况下将被自动阻止。另一个可能取决于您的客户端使用的源端口。

您如何确定防火墙规则不起作用? tcpdump附加在防火墙之外,因此将看到注定要被丢弃的数据包(或在出站方向,已经通过防火墙的数据包)。您可以使用规则-j LOG来监视链的特定部分或使用应用程序内日志记录。

我不太清楚您所说的“UDP 端口过载”是什么意思。您的应用程序是否需要为每个连接的 IP 地址使用单独的 UDP 端口?是否有一些共享资源成为瓶颈?所有这些 UDP 流量是否只是填满了网络硬件的缓冲区,从而导致与缓冲区膨胀相关的延迟?如果最后一个是真的,那么使用 iptables 进行阻止甚至无法解决您的问题。

答案2

您需要弄清楚为什么这个 UDP 洪水会减慢您的速度。

如果攻击导致更高的 ping,那么我猜测洪水不会对您的服务器造成问题,但洪水会占用您互联网连接上的所有带宽。如果是这种情况,服务器上的防火墙规则将无法解决此问题。您需要与上游互联网提供商联系,让他们阻止该流量。

相关内容