是否在执行PHP之前限制登录尝试?

时间:2016-04-20 作者:bhamrick

我管理多个WordPress安装(所有相关/交叉链接),在过去的几周里,我一直受到暴力攻击,足以在多个场合使我的服务器崩溃。我继续安装了WP Limit登录尝试,但我想要更好的东西。我仍然看到资源利用率的峰值,我想这是因为即使跳过了对DB的用户/密码检查,WordPress登录代码仍然在为每个请求执行。

我的堆栈是Apache/PHP-FPM前面的Nginx。有没有一个工具可以让Nginx进行阻塞?

谢谢

4 个回复
SO网友:Mark Kaplun

如果“攻击”是分布式的,那么您唯一能做的就是更改登录端点的url。使用web服务器配置(block/login和friends,将其他一些“slug”映射到wp login.php)应该很容易做到这一点。这也将中断从/wp admin到/login的自动重定向,在这种情况下这是一件好事。

不要忘记以同样的方式处理xml rpc。

当然,如果你有很多用户,这个答案不是很好,但是如果用户数量少,这个答案也可以。

SO网友:Dave Ross

如果可以将fail2ban添加到服务器,请尝试the wpfail2ban plugin.

SO网友:alonisser

详细介绍了dExit和dave ross对fail2ban的回答。与使用wordpress插件阻止攻击相比,粗暴地使用自定义fail2ban“jail”是更好的做法。问题是fail2ban过滤器使用的是日志模式,而AFAIK vanillar wordpress的安装并没有通过日志或标头向我们提供任何关于身份验证出错的线索。

所以一个插件wpfail2ban 可能会有帮助。在我看来,更好的解决方案是强制wordpress返回401 http状态码(参见我的问题here ) 它符合现代网络标准和例外情况,并允许其他工具阻止重复犯罪。在这种情况下,我们不仅限于使用fail2ban阻塞on the server (虽然我们可以轻松配置自定义监狱和过滤器以在web服务器日志中搜索401响应),但我们可以使用WAF服务,使用响应代码监控此类攻击,并在外围阻止它们。

为什么wordpress的默认值仍然是对失败的登录返回200个“OK”响应,我真的猜不出来。

SO网友:dExIT

如果在您自己的服务器上使用它,我不建议使用WP插件作为基础,请尝试配置fail2ban(简短教程-https://easyengine.io/tutorials/nginx/fail2ban/ ) , 它会很有魅力的。

相关推荐

WordPress security

我通过wordpress为我的客户创建了一个网站,并将其上传到他们的服务器上。。我们假设用户可以访问整个服务器。。是否可以通过在数据库中编辑管理员密码或添加需要我权限的脚本来保护此网站不被其他服务器使用。