我有一台服务器,它不断尝试通过 wordpress 网站上的 xml-rpc 帖子进行暴力破解。我在 nginx.conf 中屏蔽了 IP 地址,并注意到日志文件中不断出现这些错误,由于它们是暴力破解,所以这只是一次非常非常缓慢的 DDOS(因为它们导致日志文件占用空间)。
[错误] 30912#0:*4600 规则禁止访问,客户端:
我在这里搜索了日志文件的更改,但看起来 403 错误全有或全无,这对我没有帮助(看不到任何其他错误)。
为了解决这个问题,我尝试通过防火墙进行阻止(使用 UFW 包装器包裹防火墙表)并添加了一个显示如下状态的条目:
任何地方 DENY XXX.XXX.X.XXX(已删除)
但是,即使启用了防火墙规则并检查以确保它们正在运行,在跟踪日志文件时,我仍然会一遍又一遍地写入相同的错误条目 403 错误。
有什么想法可以让这个黑客消失,而不会填满日志文件?这是一个虚拟的 14.04 LTS 服务器。
编辑:使用会limit_req
对此产生任何影响吗?编辑二:这是 UFW 状态,他正在强行向网站发送 POST。他被成功阻止了,但防火墙不应该首先阻止他进入 nginx 吗?
To Action From
-- ------ ----
22 ALLOW Anywhere
22/tcp ALLOW Anywhere
2222/tcp ALLOW Anywhere
80/tcp ALLOW Anywhere
21/tcp ALLOW Anywhere
Anywhere DENY XXX.XXX.X.XXX
22 (v6) ALLOW Anywhere (v6)
22/tcp (v6) ALLOW Anywhere (v6)
2222/tcp (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
21/tcp (v6) ALLOW Anywhere (v6)
答案1
将 DENY 规则移至端口 80 的 ALLOW 规则上方 - 它们按顺序运行。
SSH 可能不应该对任何地方开放,但如果您有一个动态 IP,请小心不要将自己锁定在外。
考虑类似云Flare,它提供免费和付费计划,提供针对多种威胁的保护、防火墙等。
答案2
使用该选项将规则置于所有内容之上 insert
。
步骤 1-获取规则编号:
sudo ufw status numbered
步骤 2- 将此规则放置在所需的数字处 - 在本例中为 1,以便它覆盖其他允许
sudo ufw insert 1 deny from xx.xxx.xx.xx