1.目的:
因为最近从csdn迁移到了自己的云服务器搭建的自建博客,由于带宽较小性能较低,所以为了防止有人恶意网络攻击造成服务不可用,于是使用一些工具来防范;
2.用到的工具:
nginx模块->ngx_http_limit_req_module ; Failban2软件;
3.配置:
nginx:
#http配置下
limit_req_zone $binary_remote_addr zone=mylimit:20m rate=6r/s;
#location转发配置下
limit_req zone=mylimit;
#触发限流会返回503页面,这里可以自定义页面
error_page 503 /xx.html;
location = /xx.html {
#自定义html的位置
root /etc/nginx/vhost;
}
Failban2
1)先安装; 2)配置: 在/etc/fail2ban/filter.d目录下新建自己的配置,这里我配置了两个:
#nginx404.conf
[Definition]
failregex = ^<HOST>.*"(GET|POST).*" (404|444|403|400) .*$
ignoreregex =
#nginx503.conf
[Definition]
failregex = ^<HOST>.*"(GET|POST).*" (503) .*$
ignoreregex =
在/etc/fail2ban/jail.d目录下新建配置jail.local:
[nginx404]
#处理 nginx 下的恶意 404 结果扫描
enabled = true
port = http,https
filter = nginx404
action = iptables[name=nginx404, port=https, protocol=tcp]
#Fail2Ban 要监控的站点日志文件,大家可以根据自己站点来灵活调整。
logpath = /var/log/nginx/access.log
bantime = 86400 #屏蔽时间
findtime = 300 #触发机制300秒10次
maxretry = 10
[nginx503]
#处理 nginx 下的恶意 503结果扫描以及触发限流
enabled = true
port = http,https
filter = nginx503
action = iptables[name=nginx503, port=https, protocol=tcp]
#Fail2Ban 要监控的站点日志文件,大家可以根据自己站点来灵活调整。
logpath = /var/log/nginx/access.log
bantime = 86400 #屏蔽时间
findtime = 120 #触发机制
maxretry = 10
#注意此处的port是https,因为访问域名后都被强制重定向了https,博主之前手误写了http,
出现的现象是配置生效了,iptables也能查到ban的ip,但是依然能访问:
action = iptables[name=nginx503, port=https, protocol=tcp]
配置完成重启systemctl restart fail2ban.service,我这里的服务器是ubuntu;
去除被ban的ip:
fail2ban-client set nginx404 unbanip ip xx.xx.xx.xx
这不,截至目前...就成功ban了几个~
本文由 GY 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为:
2021/12/08 10:08