fail2ban安装和使用
近来阿里云轻量服务器和飞牛nas上受到了入侵,虽然有惊无险,但还是要加强防范。本文记录了fail2ban的安装和使用。
fail2ban
能做什么:自动封禁攻击者
它就像一个24小时值班的保安,会实时盯着SSH登录日志(/var/log/secure)。一旦发现某个IP在短时间内(比如10分钟)连续失败登录超过设定的次数(比如5次),就会自动操作服务器防火墙(iptables或firewalld),把这个IP封禁一段时间。
这样一来,那些暴力破解的尝试就会大大减少,攻击者在被封禁期间根本无法再尝试连接,起到了主动防御的作用。根源上减少被盯上的概率做不到什么:
- 无法阻止端口扫描:攻击者的脚本在试探连接时,fail2ban 还未触发,所以扫描行为本身是挡不住的。
- 存在误封风险:如果自己在外部网络多次输错密码,也可能会被 fail2ban 封掉,导致暂时无法登录。虽然可以手动解封,但终归麻烦。
安装
阿里云轻量服务器上使用dnf install fail2ban安装。
配置fail2ban监控SSH:nano /etc/fail2ban/jail.local
内容如下:
1 | [DEFAULT] |
启动fail2ban:systemctl start fail2bansystemctl enable fail2ban
使用
查看封禁状态
fail2ban-client status sshd1
2
3
4
5
6
7
8
9
10[root@aliyun ~]# fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 0
| |- Total failed: 0
| `- Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
|- Currently banned: 0
|- Total banned: 0
`- Banned IP list:fail2ban-client status sshd | grep "Banned IP list"查看 fail2ban 日志(最后50行)
tail -50 /var/log/fail2ban.log检查配置文件
fail2ban-client -t
解除误封
进入阿里云控制台,找到轻量应用服务器,进入相应的服务器,找到命令助手,执行fail2ban-client unban --all。
在上述设置中5分钟后自动解除,这一步不是必要的。如果封禁时间较久,比如一天86400秒,可以用此方法解禁。
飞牛os上使用
监听sshd和5666端口的访问。apt install fail2bannano /etc/fail2ban/jail.local
内容:
1 | [DEFAULT] |
nano /etc/fail2ban/filter.d/trim_main.conf
内容:
1 | [Definition] |
检查状态:
1 | root@fn-j1900:~# fail2ban-client -t |
警告无法消除,不知道原因。




