我们的一个基于MediaWiki的项目似乎受到了DoS攻击 – 一些匿名用户试图编辑页面并查看或编辑历史请求。 虽然匿名编辑被禁用该项目,这些匿名用户(我假设,机器人)实际上不能改变页面,负载严重到足以显着减慢服务器。
我们只有一个服务器机箱,大约有8Gb的RAM专用于这个项目。 它在Linux下的Apache服务器上运行最近的MediaWiki版本。
其中一个想法是改变(也许是暂时的)一些MediaWiki代码,以禁止匿名用户进行编辑,查看源代码和编辑历史请求 – 这样做的早期是stream程,确保尝试被最less的资源拒绝。
或者,也许这不是一个好主意,可以做其他事情。 我们目前使用IPTables阻止stream量,这对我们来说是有效的(网站保持运营)。 然而,这种阻塞需要太多的关注 – 攻击者似乎控制着来自世界各个angular落的一大堆IP地址。
假设我们对Linux服务器有完全的控制权限(root权限),那么可以这样做来更好地屏蔽它?
我们已经在应用最终用户级别的方法,如通过Web界面禁用匿名编辑。 这仍然产生足够的负载不是一个完整的解决scheme。 另外,仅仅隐藏控件是不够的 – 即使“编辑”选项卡已经不可见,编辑请求也会出现。
如果这是关于垃圾邮件试图编辑,你可以尝试一些networking服务器级别的反垃圾邮件解决scheme: https ://www.mediawiki.org/wiki/Manual:Combating_spam#Hardcore_measures或者它可能是你的反垃圾邮件措施带来的网站下来,这并不罕见; 检查你的解决scheme是高性能的,一些治疗比疾病更糟糕。
如果你真的不确定那些是垃圾邮件的日志,也许这只是search引擎。 确保设置了一个不包含ScriptPath的robots.txt,以便只search标准页面的URL,但不包含任何带有api.php或index.php参数的URL。 如果需要也设置爬行延迟。