前提条件:安装fail2ban,使用Ubuntu的ufw防火墙。
1、过滤规则:
新建文件:
/etc/fail2ban/filter.d/nginx-cc.conf
填入:
[Definition]
ignoreregex =.*(robots.txt|favicon.ico|jpg|png)
failregex = ^<HOST> .* "(GET|POST|HEAD).*HTTP.*" (404|503) .*$
2、禁用规则:
在 /etc/fail2ban/jail.local 后面添加:
[nginx-cc]
enabled = true
#port不填写默认所有端口
#port = http,https
filter = nginx-cc
banaction = ufw
action = %(action_mwl)s
logpath = /opt/1panel/apps/openresty/openresty/www/sites/101.132.172.82/log/access.log
bantime = 300
findtime = 60
maxretry = 5
或者把上述内容单独新建一个nginx-cc-jail.conf放在/etc/fail2ban/jail.d/目录
3、测试规则:
在终端输入:
fail2ban-regex /opt/1panel/apps/openresty/openresty/www/sites/www.ewing.top/log/access.log /etc/fail2ban/filter.d/nginx-cc.conf
可测试上述规则是否可用,其中第一个地址为网站log地址,第二个地址为过滤规则地址。
4、重启nginx
5、测试,查看禁用状态:
(1)查看fail2ban目前生效的规则:
fail2ban-client status
(2)查看具体的禁用规则详情:
fail2ban-client status nginx-cc
(3)解禁ip
fail2ban-client set nginx-cc unbanip 192.168.32.35