在 DoS 攻击下,如何修改 MediaWiki 以快速拒绝匿名用户的任何编辑和历史记录请求

在 DoS 攻击下,如何修改 MediaWiki 以快速拒绝匿名用户的任何编辑和历史记录请求

我们的一个基于 MediaWiki 的项目似乎遭受了 DoS 攻击 - 大量匿名用户试图编辑页面并查看或编辑历史记录请求。虽然该项目禁用了匿名编辑,这些匿名用户(我猜是机器人)实际上无法更改页面,但负载严重到足以显著降低服务器速度。

我们只有一个服务器机箱,大约有 8 Gb RAM 专用于这个项目。它在 Linux 下的 Apache 服务器上运行最新版本的 MediaWiki。

其中一个想法是修改(可能是暂时的)一些 MediaWiki 代码,禁止匿名用户编辑、查看源代码和编辑历史请求 - 尽早完成这一流程,确保使用最少的资源拒绝这些尝试。

或者,也许这不是一个好主意,可以做其他事情。我们目前正在使用 IPTables 阻止流量,这对我们有用(网站保持运行)。但是,这种阻止需要太多关注 - 攻击者似乎控制着来自世界各地的一些相当大的 IP 地址池。

假设我们对 Linux 服务器拥有完全控制权(root 访问权限),我们能做些什么来更妥善地保护它吗?

我们已经应用了终端用户级方法,例如通过 Web 界面禁用匿名编辑。这仍然会产生足够的负载,因此不是一个完整的解决方案。此外,仅仅隐藏控件是不够的 - 即使“编辑”选项卡已经不可见,编辑请求也会出现。

答案1

如果这是关于垃圾邮件机器人试图编辑,您可以尝试一些网络服务器级的反垃圾邮件解决方案:https://www.mediawiki.org/wiki/Manual:Combating_spam#Hardcore_measures 或者可能是您的反垃圾邮件措施导致网站瘫痪,这并不罕见;请检查您的解决方案是否有效,因为有些治疗方法比疾病更糟糕。

如果您无法从日志中确定这些是垃圾邮件机器人,那么也许它们只是搜索引擎。请确保您设置了一个 robots.txt,将 ScriptPath 排除在抓取范围之外,这样只有规范页面 URL 会被编入索引,而不会索引任何带有 api.php 或 index.php 参数的 URL。如果需要,还可以设置抓取延迟。

相关内容