本教程将详细介绍如何在 Debian 和 Ubuntu 系统中安装与配置 Fail2Ban,通过监控 /var/log/auth.log 自动识别 SSH 暴力破解行为,并实现自动封禁恶意 IP,从而保护你的服务器安全。支持 SSH 更换端口、封禁时长自定义等设置。适用于初学者与运维人员。
Fail2Ban 默认配置可能读不到日志,所以需要检查rsyslog是否在运行
ps -aux | grep [r]syslog
如果输出显示为空,那就表示没有安装rsyslog
sudo apt update
sudo apt install rsyslog -y
sudo systemctl start rsyslog
sudo systemctl enable rsyslog
sudo systemctl restart sshd
sudo systemctl status rsyslog
如果显示Active: active (running) ,则安装成功了,如果没在运行,输入sudo systemctl start rsyslog启动它
# Debian / Ubuntu:
ls /var/log/auth.log
# CentOS / Rocky / AlmaLinux:
ls /var/log/secure
如果无输出,则要确认是否正确安装rsyslog,因为rsyslog负责处理和转发系统日志
sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban
编辑配置文件:
sudo nano /etc/fail2ban/jail.local
输入以下内容:
[sshd]
enabled = true
port = 22 # <-你的 SSH 端口
filter = sshd
logpath = /var/log/auth.log # debain
maxretry = 5 # <-失败次数
findtime = 600 # <-10分钟(600秒)内失败5次
bantime = 3600 # 封锁1小时
按Ctrl+o,回车,再按Ctrl+x进行保存
systemctl restart fail2ban
sudo fail2ban-client status sshd
通过以上步骤,Fail2Ban 能够有效保护服务器免受 SSH 暴力破解攻击。结合修改默认 SSH 端口、禁用密码登录、启用防火墙等措施,可以大幅提升服务器整体安全性。