使用FAIL2BAN防CC屏蔽高频防问

本文讲述了作者如何在Debian系统中安装并配置FAIL2BAN以防止SSH暴力破解和CC攻击,包括解决启动问题、设置http-flood规则以及自定义filter以监测和限制异常HTTP请求。
摘要由CSDN通过智能技术生成

之前换服务器至DEBIAN系统折腾了半天终于安装好了FAIL2BAN,见:debian12安装fail2ban折腾-CSDN博客a文章浏览阅读354次,点赞9次,收藏4次。启动发现fail2ban启动失败,原因是找不到日志文件,发现默认情况下,debian不再有/var/log/auth.log文件,解决办法是安装rsyslog,安装后就有auth.log文件了。|- Currently banned: 1 # 当前禁止访问的IP数量。| `- File list: /var/log/auth.log # 日志文件路径列表。发现不加SUDO不行,很奇怪。#查看当前被禁止登陆的ip。#取消ban某个ip。https://blog.csdn.net/Solmyr_biti/article/details/135050650?spm=1001.2014.3001.5501

其实之前用FAIL2BAN只是为了防SSH被暴力破解,但其实我一般都是关闭22端口的。今天发现原来FAIL2BAN还可以防CC!

经常会有那么几次网站被疯狂扫描以及攻击导致接近宕机状态,其实可以用FAIL2BAN封杀之。

以下备用:

在DEBIAN系统下同样是编辑 /etc/fail2ban/jail.d/defaults-debian.conf:

[http-flood]
enabled = true
port = http,https
filter = http-flood
logpath = /var/log/nginx/access.log
maxretry = 100
findtime = 60
bantime = 600

这个规则使用了名为 http-flood 的filter,监控Nginx的访问日志 /var/log/nginx/access.log(具体根据实际路径修改)。它设置了在60秒内超过100次访问的IP将被封锁,封锁时间为600秒。

然后创建一个自定义的Fail2Ban filter规则,以匹配CC攻击的特征。在 /etc/fail2ban/filter.d/ 目录下创建一个名为 http-flood.conf 的文件,内容如下:

[Definition]
failregex = ^<HOST> -.*"(GET|POST).*
ignoreregex =

这个规则用于匹配HTTP请求的日志条目,你可能需要根据你的Web服务器日志格式进行调整。

这个过滤器的目的是在日志中查找包含某个IP地址和包含 "GET" 或 "POST" 请求的行。这有助于检测到针对网站的某些攻击或滥用行为,例如频繁的HTTP请求。如果在 findtime 时间窗口内有超过 maxretry 次的这种行为,Fail2Ban 将采取相应的封禁动作。

最后重启

sudo systemctl restart fail2ban 

或者

sudo service fail2ban restart

这样,Fail2Ban将监控HTTP请求日志,如果检测到某个IP在短时间内发起过多请求,将自动封锁该IP一段时间,从而防范CC攻击。确保根据你的实际情况调整maxretryfindtimebantime等参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值