对于网站被恶意扫描、暴力破解、CC 攻击这一系列攻击,都有相似的特征,即高频率发请求导致主机资源使用率飙高。对于这些问题,我们可以借助一些工具来阻止类似行为以保护服务器的安全。
本篇文章就介绍如何使用Fail2Ban来阻止一些常见的暴力攻击。
简介
fail2ban 是 Linux 上的一个著名的开源入侵保护服务框架,它可以监控多个系统的日志文件(例如:/var/log/auth.log 或者 /var/log/secure)并根据检测到的任何可疑的行为自动触发不同的防御动作。事实上,fail2ban 在防御对SSH服务器的暴力密码破解上非常有用,同时它也可以通过监控web服务器的日志(如Nginx、Apache)从而实现异常IP自动封禁。
安装Fail2Ban
安装命令如下
#CentOS
sudo yum install fail2ban
#Debian&Ubuntu
sudo apt install fail2ban
调整配置文件
现在你已经准备好了通过配置 fail2ban
来保护你的服务器了,你需要通过编辑配置文件 /etc/fail2ban/jail.conf
在里面添加监狱规则来实现。
在配置文件的“[DEFAULT]”区,你可以在此定义所有受监控的服务的默认参数,另外在特定服务的配置部分,你可以为每个服务(例如SSH,Apache等)设置特定的配置来覆盖默认的参数配置。
这三个是比较重要配置项,默认值如下
# 封禁时间
bantime = 10m
# 在多长时间内
findtime = 10m
# 最大失败次数
maxretry = 5
它的意思是:在10分钟内,如果失败超过5次,那么就将这个IP丢到小黑屋里10分钟。
理解了这三项参数就好办了,下面就让我们来进入实战操作吧
配置SSH登录保护
查看已封禁IP和解封方法
fail2ban-client status http-get-dos
fail2ban-client set http-get-dos unbanip 8.8.8.8
why