使用 Debian 这么久,影响最深的小软件莫过于 fail2ban 了。对多数服务器而已,对外开放的服务中,风险相对较高的莫过于 SSH 服务了, fail2ban 是一个轻量、有效、便捷的保护服务器免受暴力攻击的工具。 Fail2ban 使用 iptables 来阻止攻击者。
Fail2ban 的安装非常简单。Debian 及衍生版,可以直接从软件源安装:
apt-get install fail2ban
安装结束后便进入可用状态,默认的设置就足够使用了。这就是 Debian 的风格,不需要不必要的人工干预,在不知不觉中就提升了你的效率。我们还是来看一下 fail2ban 的配置文件 /etc/fail2ban/jail.conf ,
默认区段如下:
[DEFAULT]
ignoreip = 127.0.0.1/8 #IP白名单
bantime = 600 #封禁时间秒,默认是10分钟
maxretry = 3 #最大重试次数,子项未设置时以此为准
SSH 区段如下:
[ssh]
enabled = true #启用开关
port = ssh #保护端口,默认SSH为22
filter = sshd #默认即可
logpath = /var/log/auth.log #日志位置,默认即可
maxretry = 6 #最大重试次数
如果调整了 fail2ban 的配置,需要重启服务生效,通用的方法都支持,
/etc/init.d/fail2ban restart
#或者用 systemctl
systemctl restart fail2ban
fail2ban 的管理维护,可以通过以下命令操作,
fail2ban-client status
需要查看 sshd 封禁情况可以运行:
fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 0
| |- Total failed: 0
|- File list: /var/log/auth.log
- Actions
|- Currently banned: 0
|- Total banned: 0
`- Banned IP list:
一般针对 OpenSSH 的加固,还可以修改默认的 22 号端口,并且禁止使用 root 帐号远程登录;有了 fail2ban,系统安全系数会明显提高。