其实之前用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攻击。确保根据你的实际情况调整maxretry、findtime和bantime等参数。
本文讲述了作者如何在Debian系统中安装并配置FAIL2BAN以防止SSH暴力破解和CC攻击,包括解决启动问题、设置http-flood规则以及自定义filter以监测和限制异常HTTP请求。
https://blog.youkuaiyun.com/Solmyr_biti/article/details/135050650?spm=1001.2014.3001.5501
1万+

被折叠的 条评论
为什么被折叠?



