Iptables 阻止未来的连接

Iptables 阻止未来的连接

我的游戏服务器遭受了 DDoS 攻击。这不是直接攻击机器的常规 DDoS 攻击,而是攻击具有多个 IP 地址(UDP 协议)的端口。因此,我用 Python 开发了一个函数来识别传入的 DDoS 攻击,但我无法单独阻止每个传入 IP。

所以我的问题是......我如何才能阻止所有传入特定端口(例如 27022)的请求并且不阻止连接的请求?

答案1

如果你的 Python 函数针对某个特定的日志文件来识别这些 DDOS 攻击,那么值得查看一下失败禁止动态删除“坏”的 UDP 连接。它会根据您定义的匹配条件更新 iptables。

几乎任何标识您可能想要丢弃的 IP 的日志都可以用作来源。您可以创建复杂的规则,例如(用简单的语言):“5 分钟内来自 [IP] 的三个‘短数据包 UDP’连接 = 丢弃 15 分钟”

以下是一个例子有人用它kern.log来识别 UDP“短数据包”。排名最高的答案显示了一个示例正则表达式以及如何使用 Fail2Ban 测试丢弃规则的指导。

Fail2Ban 可能会完全取代您的 Python 函数。或者,如果该函数执行的操作比您通过正则表达式和 Fail2Ban 规则集可以组合的操作更复杂,如果该函数输出到文件,则该文件又可以用作源。

答案2

您可以创建一个临时白名单,它是您的 python 应用程序的字典,其中包含已连接的客户端。

相关内容