Debian 与 Ubuntu 安装 Fail2Ban 实现 SSH 自动封禁 IP 防暴力破解教程(保姆级教程)

简介

本教程将详细介绍如何在 Debian 和 Ubuntu 系统中安装与配置 Fail2Ban,通过监控 /var/log/auth.log 自动识别 SSH 暴力破解行为,并实现自动封禁恶意 IP,从而保护你的服务器安全。支持 SSH 更换端口、封禁时长自定义等设置。适用于初学者与运维人员。

1.检查rsyslog是否正常运行

Fail2Ban 默认配置可能读不到日志,所以需要检查rsyslog是否在运行

ps -aux | grep [r]syslog

如果输出显示为空,那就表示没有安装rsyslog

如果未安装,需要先安装他

sudo apt update
sudo apt install rsyslog -y
sudo systemctl start rsyslog
sudo systemctl enable rsyslog

重启ssh服务

sudo systemctl restart sshd

查看rsyslog服务状态

sudo systemctl status rsyslog

如果显示Active: active (running) ,则安装成功了,如果没在运行,输入sudo systemctl start rsyslog启动它

2.查看是否有日志文件

# Debian / Ubuntu: 
ls /var/log/auth.log
# CentOS / Rocky / AlmaLinux: 
ls /var/log/secure

如果无输出,则要确认是否正确安装rsyslog,因为rsyslog负责处理和转发系统日志

3.安装并启动 Fail2Ban

sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban

4.编辑配置文件,开始配置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进行保存

5. 重启相关服务

systemctl restart fail2ban

6.验证是否成功配置

sudo fail2ban-client status sshd

通过以上步骤,Fail2Ban 能够有效保护服务器免受 SSH 暴力破解攻击。结合修改默认 SSH 端口、禁用密码登录、启用防火墙等措施,可以大幅提升服务器整体安全性。