我托管游戏服务器已有很长时间了,并且我不断更新我的 iptables 防火墙以阻止大多数攻击。我的一个游戏服务器端口被“SSDP”请求淹没,而我的游戏服务器用“断开连接”数据包回复该请求。
以下是从源端口 1900 开始建立流的方式,而目标是我的游戏服务器端口,
http://paste.ubuntu.com/8099734/
我有以下 iptables 配置,它应该阻止传出的“断开连接”数据包,但它不再起作用,我不知道原因。
http://paste.ubuntu.com/8099779/
我暂时阻止了来自 UDP 源端口 1900 的输入,但这不是一个好的解决方案,因为我的游戏服务器容易受到许多其他数据包的攻击,因此必须阻止传出的“断开连接”数据包。
我不确定是否需要 -m 多端口匹配来阻止这种情况?
答案1
我注意到您收到的看起来像是一个回复包,而不是请求。
因此,这很可能是一种放大型攻击,他们会向网络上启用 SSDP 的设备发送一个小请求,但会将您的 IP 伪装成发起者。因此,当所有这些设备都发送回复时,您就会收到回复。
作为额外的副作用,您的服务不知道他们在谈论什么,并且别无选择,只能“断开”他们的连接(游戏服务器显然通过发送文本断开连接来做到这一点)。
我不明白你为什么要针对这个来回复。我会尝试针对收到的包裹,例如:
iptables -I INPUT -p udp --dport 16000:29000 -m 字符串 --to 75 --algo bm --string 'HTTP/1.1 200 OK' -j DROP