使用 Fail2ban 保护你的 SSH (基础)

大多数VPS开启SSH用于用户登陆操作系统,对于暴露在公网环境的Linux来说,公网环境 + 端口暴露 的情况下经常有大量的恶意爆破登陆

Fail2ban 是一款入侵防御软件,通过扫描常见的登陆日志文件,并向系统防火墙添加对异常ip的封禁,达到防止爆破的目的

虽然安装这个程序可以防范大多数 ssh 扫描风险,但是 非标准端口 + 密钥登陆 是最安全的手段

互联网上扫描我的ssh的机器

快速安装

对于 Debian 系列的 Linux 来说,只需要执行

1
apt install fail2ban

不过现在服务通常不会运行,目前它还没有依赖的配置文件。不过默认提供的日志文件足够满足我们的目的,只需要复用就行

1
2
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
systemctl restart fail2ban

一般情况下 fail2ban 就可以开始保护你的 ssh 登录

小部分进阶使用

使用文本编辑器编辑 etc/fail2ban/jail.local

其中,我们会看到

1
2
3
4
# ignoreip = 127.0.0.1/8 192.168.1.100/24   # 类似白名单ip 可能通常是注释或者不存在
bantime = 10m # 封禁时间,这是十分钟,可以改成 3600m 封一天
findtime = 10m
maxretry = 3 # 与 findtime 组合,目前是 十分钟之内尝试三次错误后封禁

附加:封禁 Telegram Bot 通知

使用项目 fail2_telegram ,不需要直接修改 jail.local ,独立程序,只读取 fail2ban 日志,与 fail2ban 互不影响

更多信息自行查看项目原页

快速安装

1
2
3
4
cd /etc/systemd/system/
wget https://raw.githubusercontent.com/Zhengyscla/fail2_telegram/refs/heads/master/fail2ban-notify.service
cd /usr/local/bin/
wget https://raw.githubusercontent.com/Zhengyscla/fail2_telegram/refs/heads/master/fail2ban-telegram-notify.sh

在你的 telegram 里打开 BotFather , 输入命令 /newbot 来创建机器人

第一次输入的名字是 机器人的名字 ,随意命名,能记住就行 第二次是 telegram 认的名字 , 后面要带 bot 创建好后,需要给你的机器人发送一条(任意)消息

然后复制你的 API TOKEN

然后打开 UserIDBot ,直接开始就可以看到你的 Chat ID ,手动复制ID后面的数字

打开 fail2ban-telegram-notify.sh 修改以下变量

1
2
TELEGRAM_TOKEN="你的Telegram Bot Token"
CHAT_ID="你的Telegram Chat ID"

退出并保存

启用服务

1
2
3
systemctl start fail2ban-notify.service
systemctl enable fail2ban-notify.service
systemctl staatus fail2ban-notify.service # 验证服务正常运行

使用 Fail2ban 保护你的 SSH (基础)
https://blog.clazys.qzz.io/2026/02/11/fail2ban/
作者
Clazys
发布于
2026年2月11日
许可协议