SSH暴力破解攻击防线 - Fail2ban
安装
ubutun
sudo apt update
sudo apt install fail2ban
centOS:
# CentOS 7:
sudo yum install epel-release
# CentOS 8:
sudo dnf install epel-release
# CentOS 7:
sudo yum install fail2ban
# CentOS 8:
sudo dnf install fail2ban
配置
Fail2ban 的主要配置文件是 /etc/fail2ban/jail.conf。不建议直接修改这个文件,因为未来软件包更新可能会覆盖你的更改。
正确的做法是创建一个名为 jail.local的本地配置文件,它会自动覆盖 jail.conf中的相同设置。
sudo nano /etc/fail2ban/jail.local
写入一下基本配置
[DEFAULT]
# 禁止一个IP地址的持续时间(秒)
bantime = 3600
# 时间窗口(在此时间内达到最大尝试次数则触发禁止)
findtime = 600
# 在时间窗口内允许的最大失败次数
maxretry = 5
# 忽略的IP地址范围(例如本地网络或你信任的IP)
ignoreip = 127.0.0.1/8 ::1 192.168.1.0/24
[sshd]
# 启用SSH保护
enabled = true
# 使用系统的UFW防火墙进行封禁(如果你用的是UFW)
banaction = ufw
# 日志路径(Ubuntu默认SSH日志路径)
port = ssh
logpath = %(sshd_log)s
maxretry = 3
参数解释:
bantime = 3600: IP 被禁止 1 小时(3600 秒)。可以设置为 -1来永久封禁,但需谨慎。
findtime = 600: 在 10 分钟(600 秒)内。
maxretry = 5: 如果失败 5 次,则触发封禁。在上面 [sshd]章节里,我覆盖为了更严格的 3次。
ignoreip: 非常重要!确保将你的本地局域网IP段(如 192.168.1.0/24)和你自己的公网IP地址加进去,以防自己不小心把自己锁在外面。
启动并启用 Fail2ban
配置完成后,启动服务并设置它开机自启:
sudo systemctl enable fail2ban --now
检查状态
使用以下命令检查 Fail2ban 的运行状态和当前被封禁的IP列表:
#查看服务状态
sudo systemctl status fail2ban
# 查看sshd监狱的详细状态,包括当前被禁止的IP数量
sudo fail2ban-client status sshd
输出会类似于:
Status for the jail: sshd
|- Filter
| |- Currently failed: 0
| |- Total failed: 15
| `- Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
|- Currently banned: 1
|- Total banned: 5
`- Banned IP list: 123.456.789.123
进阶用法和提示
邮件通知:你可以在 jail.local的 [DEFAULT]部分配置 mta = sendmail和 destemail = your-email@example.com以及 sender = fail2ban@yourserver.com,这样当有IP被封禁时,你会收到邮件通知。
更严格的保护:对于 SSH,Fail2ban 还有一个 [sshd-ddos]监狱,用于防御更密集的攻击,你可以同样启用它 enabled = true。
查看日志:Fail2ban 自己的日志在 /var/log/fail2ban.log,你可以用 sudo tail -f /var/log/fail2ban.log来实时查看动态。
解封IP:如果你误封了一个IP,可以使用以下命令解封:
sudo fail2ban-client set sshd unbanip IP_ADDRESS
重要提醒:Fail2ban 是“最后一道防线”
虽然 Fail2ban 非常有效,但它是一种反应式的防御措施。最佳实践是首先配置好SSH本身,使其更难被破解:
使用密钥认证,彻底禁用密码认证:这是最根本、最有效的方法。
更改默认的22端口:虽然这属于“安全通过隐蔽性”,但能有效减少被自动化脚本扫描到的概率。
禁止root用户直接登录。
总结:Fail2ban + 密钥认证 + 非标准端口 是一个极其强大且轻量级的SSH安全组合拳,被全球无数系统管理员所采用。请立即安装并配置它,你的服务器安全级别会立刻得到大幅提升。
更多推荐
所有评论(0)