由于有不少 VPS 均采用了默认的 SSH 端口以及 root 账户,使得 SSH 爆破在黑客圈中流行开来。然而即便有强壮口令的保护,持续不断的 SSH 爆破仍然会导致一定的性能问题。虽然更改 SSH 端口或是禁用密码登录能够有效避免爆破攻击,但在 VPS 较多的情况下管理起来还是有些麻烦,相比之下安装 Fail2ban 进行防护更为简单。除了对于 SSH 进行防爆破保护之外,Fail2ban 还支持对 vsftpd postfix 等服务进行爆破保护。
Fail2ban 的保护策略是按 ip 统计失败次数,达到保护阈值时触发 ip 封禁。
既然是简单解决方案,Fail2ban 本身安装也非常简单。Debian 直接从软件源安装即可:
apt-get install fail2ban
等他跑完之后就算是装好了,其实默认设置就可以了,不过我们还是来看一下他的配置文件:
nano /etc/fail2ban/jail.conf
默认区段如下:
[DEFAULT]
ignoreip = 127.0.0.1/8 #白名单ip
bantime = 600 #封禁时间,单位秒
maxretry = 3 #最大重试次数,子项未设置时以此为准
SSH 区段如下:
[ssh]
enabled = true #启用开关
port = ssh #保护端口,默认SSH为22
filter = sshd #默认即可
logpath = /var/log/auth.log #日志位置,默认即可
maxretry = 6 #最大重试次数
修改配置之后需要重启服务:
/etc/init.d/fail2ban restart
另外可以通过以下命令查看启用的保护项:
fail2ban-client status
需要查看 ssh 封禁情况可以运行:
fail2ban-client status ssh
相比于更改端口或是禁止 root 帐号,Fail2ban 会使用极少量的系统资源,不过对于普通的 VPS 而言可以说是微不足道了。