这不是一个问题,但我得到了大量的漏洞扫描器和脚本小子不断打击我的网站。
我的网站不运行WordPress,但它不断地扫描WordPress的漏洞,并尝试点击/admin /wp-admin.php等不/wp-admin.php 。
一旦他们击中黑名单中的任何URL,我想要做的是限制特定IP。 我知道我不能完全阻止脚本小子,但是我想慢下来,以阻止它。 例如:
/wp-admin.php的漏洞扫描程序。 有没有一种方法可以完全通过Nginx的configuration? 我知道使用OpenResty / Lua是可以实现的,但据我所知这是一个相当高效的任务。
Fail2ban也不是一个选项,因为我运行在负载均衡器后面,因此需要依赖显然iptables无法匹配的X-Forwarded-For头。
根据这篇文章,你可以对Nginx进行限制,如下所示:
location /account/login/ { # apply rate limiting limit_req zone=login burst=5; # boilerplate copied from location / proxy_pass http://myapp; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; }
并在重新启动后进行如下testing:
for i in {0..20}; do (curl -Is https://example.com/accounts/login/ | head -n1 &) 2>/dev/null; done