Vamev 才搭建一段时间,结果查看 nginx 日志发现已经有好多 IP 想爆破我的网站,一直在请求 wlwmanifest.xml
页面
因此尝试使用 Fail2ban 封禁这些恶意扫描 IP
安装 Fail2ban
以 Debian 10 为例:
apt install fail2ban -y
安装完成后,查看运行状态:
systemctl status fail2ban
看到 Active: active (running)
就是正常运行了
配置 Fail2ban
首先进入目录:
cd /etc/fail2ban/filter.d
新建过滤规则:
nano nginx-cc.conf
写入以下内容:
[Definition]
failregex = <HOST> -.*- .*HTTP/1.* .* .*$
ignoreregex =.*(robots.txt|favicon.ico|jpg|png)
接着在 /etc/fail2ban
新建 jail.local
:
nano /etc/fail2ban/jail.local
写入如下内容:
[nginx-cc]
enabled = true
port = http,https
filter = nginx-cc
action = iptables-allports[name=nginx-cc]
logpath = /var/wwwlogs/vamev.com.log
bantime = 12h
findtime = 60
maxretry = 5
以上参数说明:
port
:需要封禁的端口,这里设置的是一般做站的 80 和 443 端口filter
:过滤规则,使用前面自定义的 nginx-cclogpath
:监控的网站日志文件路径bantime
:封禁时间,单位为秒,-1 表示永久findtime
:查找时间段,单位为秒maxretry
:允许的最大失败次数,结合前面的 findtime,比如这里配置的是每 60 秒内触发 5 次规则,那么就封禁掉该 IP 12 小时action
:表示使用 iptables 进行封禁
保存退出,重启 fail2ban:
systemctl restart fail2ban
查看效果
过了一段时间,查看封禁效果:
fail2ban-client status nginx-cc
输出:
Status for the jail: nginx-cc
|- Filter
| |- Currently failed: 0
| |- Total failed: 138
| `- File list: /var/wwwlogs/vamev.com.log
`- Actions
|- Currently banned: 9
|- Total banned: 12
`- Banned IP list: 139.162.168.39 161.35.235.11 34.124.205.167 95.91.110.186 144.76.71.176 34.124.207.56 5.9.155.37 192.99.9.25 148.251.8.250
可以根据需要再调整 bantime、findtime、maxretry
Comments | NOTHING