1Panel 面板启用 fail2ban 防范SSH 暴力破解登录服务器
前言
Fail2Ban 是一种用于防范恶意登录尝试和保护计算机系统安全的开源软件。它通过监视系统日志文件,识别恶意行为(如密码破解、SSH登录失败、HTTP访问拒绝等),并自动采取预先定义的响应措施来阻止攻击者。这些响应措施可以包括暂时禁止IP地址、添加防火墙规则等,从而防止攻击者继续对系统进行恶意活动。
Fail2Ban 的工作原理如下:
- 监视日志文件: Fail2Ban 定期检查系统日志文件,以侦测恶意行为的迹象。
- 分析日志: 它分析日志中的内容,寻找与预定义规则匹配的恶意行为模式。
- 采取措施: 一旦发现恶意行为,Fail2Ban 会采取预先配置的响应措施,如暂时禁止相关 IP 地址访问系统。
- 自动解禁: 在一段时间后,Fail2Ban 可以自动解除对被禁止的 IP 地址的封锁,以允许合法用户再次访问系统。
Fail2Ban 可以用于多种网络服务,包括 SSH、FTP、HTTP 等,提供了一种简单而有效的方式来增强系统安全性,防范恶意攻击。
环境配置
本文环境配置如下,请根据你服务器系统使用对应的安装命令。
- 系统版本: Debian 11
- 1panel 版本:v.1.9.6
- 编写日期:2024-02-11
从1panel 版本 v.1.9.0 开始,「工具箱」增加 Fail2Ban 管理功能,建议大家开启这个功能,为服务器提供一份安全屏障。
安装教程
使用 SSH 登入服务器
1、安装 Fail2ban
sudo apt-get install fail2ban
Debian 12 及以上的版本需要手动安装 rsyslog
sudo apt-get install rsyslog
2、启动 Fail2ban 服务
sudo systemctl start fail2ban
3、开机自启动
sudo systemctl enable fail2ban
4、查看 Fail2ban 服务状态
sudo systemctl status fail2ban

5、设置 Fail2ban
打开 1panel 面板,在「工具箱」的 Fail2Ban 管理页面,「监听 SSH 端口」 设置你SSH所用的端口。
附上常见的恶意SSH黑名单IP清单(不定期更新)
https://github.com/firehol/blocklist-ipsets/blob/master/blocklist_de_ssh.ipset
故障排除
- 如果选择的禁用方式为 -muliport,则在封禁时,只会禁用配置中的端口,如默认配置中的 22;
- 如果需要修改禁用方式,需要先判读对应服务是否正常可用;
- RedHat/CentOS 使用的是 Firewall 防火墙。
- Debian/Ubuntu使用的是 UFW 防火墙。
- 日志路径需要根据操作系统修改。
- RedHat/CentOS 日志为 /var/log/secure。
- Debian/Ubuntu 日志为 /var/log/auth.log
- Debian 从 12 开始弃用了 rsyslog,使用时需要先自行安装;
自此,本教程完毕,如需更高级使用方法,自行搜索相关教程。