![用于通过 UDP 进行块同步洪水攻击的 IPTABLES](https://linux22.com/image/592083/%E7%94%A8%E4%BA%8E%E9%80%9A%E8%BF%87%20UDP%20%E8%BF%9B%E8%A1%8C%E5%9D%97%E5%90%8C%E6%AD%A5%E6%B4%AA%E6%B0%B4%E6%94%BB%E5%87%BB%E7%9A%84%20IPTABLES.png)
我是 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,那么我猜测洪水不会对您的服务器造成问题,但洪水会占用您互联网连接上的所有带宽。如果是这种情况,服务器上的防火墙规则将无法解决此问题。您需要与上游互联网提供商联系,让他们阻止该流量。