Hugo博客公告弹窗

Debian 12 安装配置 Fail2Ban 完整指南

推荐使用密钥登录 SSH,因其更加安全。如果必须使用密码登录,请务必设置复杂密码,并更改默认的 SSH 端口以减少暴力破解的风险。此外,建议启用 Fail2Ban 来防范暴力破解攻击

更改ssh端口

sudo nano /etc/ssh/sshd_config

找到 #Port 22,更改为其他端口(例如123):

Port 123 UFW防火墙开放对应端口

sudo ufw allow 123/tcp

重启SSH服务

sudo systemctl restart sshd

⚠️ 重要: 不要关闭当前连接!用新开终端测试 123 端口能否连接,确认成功后再关闭原会话。

安装Fail2Ban

更新系统

sudo apt update
sudo apt install fail2ban rsyslog -y

安装 rsyslog,以确保日志文件能够正常生成并供 Fail2Ban 使用

1.3 启动服务

sudo systemctl enable --now fail2ban
sudo systemctl enable --now rsyslog

检查服务状态

sudo systemctl status fail2ban
sudo systemctl status rsyslog

配置 Fail2Ban

sudo nano /etc/fail2ban/jail.local

粘贴以下内容,记得把5522改成你的端口

[sshd]
ignoreip = 127.0.0.1/8
enabled = true
filter = sshd
port = 5522
maxretry = 3
findtime = 600
bantime = 3600
banaction = ufw
logpath = /var/log/auth.log

配置说明:

  • enabled = true: 启用 SSH 防护
  • port = 5522: 指定 SSH 端口(默认22)
  • maxretry = 3: 3次失败后封禁
  • bantime = 3600: 封禁1小时
  • findtime = 600: 10分钟内达到失败次数则封禁

测试,打开本地cmd指定一个不存在的用户名,例如lao

ssh lao@1.2.3.4 -p 5522

新开一个ssh终端,然后查看日志

sudo tail -f /var/log/fail2ban.log

有本地ip输出即可

管理和监控

3.1 重启服务使配置生效

sudo systemctl restart fail2ban

3.2 查看运行状态

sudo systemctl status fail2ban

3.3 查看日志

sudo tail -f /var/log/fail2ban.log

3.4 管理封禁IP

sudo fail2ban-client status sshd

手动解封IP:

sudo fail2ban-client unban IP地址

4.2 使用 ufw 查看规则(如果使用 ufw)

sudo ufw status numbered

常见问题处理

5.1 如果服务启动失败 检查配置文件语法:

sudo fail2ban-client -t

5.2 如果日志不更新 重启 rsyslog 服务:

sudo systemctl restart rsyslog

卸载

sudo systemctl stop fail2ban
sudo systemctl disable fail2ban
sudo apt-get remove --purge fail2ban
sudo apt-get autoremove
sudo apt-get clean
sudo rm -rf /var/log/fail2ban.log
sudo rm -rf /var/lib/fail2ban
CC BY-NC-SA 4.0 转载请注明
最后更新于 2025-04-25 09:34
clarity统计