centos9如何部署 Fail2ban 自动拦截 SSH 爆破?
美国、香港服务器
centos9如何部署 Fail2ban 自动拦截 SSH 爆破?
07-21 来源:
## 一、安装 Fail2ban
CentOS9 默认软件源包含 fail2ban,直接 dnf 安装
# 安装软件包
dnf install fail2ban -y
## 二、配置核心规则(重点)
fail2ban 不建议直接修改`jail.conf`,新建本地自定义配置`jail.local`,升级不会覆盖你的规则
# 复制配置模板
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# 编辑自定义配置
vi /etc/fail2ban/jail.local
### 1. 全局基础参数(文件顶部修改)
找到`[DEFAULT]`区块,修改以下内容:
[DEFAULT]
# 拉黑时长 单位秒 1800=30分钟
bantime = 1800
# 检测窗口:1小时内多次失败触发拉黑
findtime = 3600
# 最大失败尝试次数
maxretry = 3
# 封禁工具,centos9使用firewalld
banaction = firewallcmd-ipset
# 忽略本机、内网、你的固定公网IP(白名单永不封禁)
ignoreip = 127.0.0.1/8 192.168.0.0/16 你的家用公网IP
### 2. 开启 SSH 防护规则(文件末尾找到 \[sshd\])
[sshd]
# 开启SSH拦截
enabled = true
# 和全局保持一致,也可单独自定义
maxretry = 3
# ssh日志路径(CentOS9固定)
logpath = /var/log/secure
# 匹配SSH密码登录失败、密钥错误
filter = sshd
> 如果你之前修改过 SSH 端口(非 22),无需额外配置,日志匹配不受端口影响。
## 三、启动 & 开机自启服务
# 开机自启+立即运行
systemctl enable --now fail2ban
# 查看运行状态
systemctl status fail2ban
出现 `active (running)` 代表启动成功。
## 四、常用管理命令(运维必备)
### 1. 查看 sshd 防护状态、已拉黑 IP
fail2ban-client status sshd
### 2. 手动解封某个拉黑 IP
fail2ban-client set sshd unbanip 1.2.3.4
### 3. 手动拉黑攻击 IP(应急)
fail2ban-client set sshd banip 1.2.3.4
### 4. 修改配置后重载规则
fail2ban-client reload
### 5. 查看拦截日志
tail -f /var/log/fail2ban.log
## 五、配套防火墙适配(CentOS9 firewalld)
fail2ban 依赖 firewalld 封禁 IP,确保防火墙开启:
systemctl enable --now firewalld
# 放行SSH端口(示例22333,替换为你的SSH端口)
firewall-cmd --permanent --add-port=22333/tcp
firewall-cmd --reload
> 如果你使用**安全狗防火墙**:不要关闭 firewalld,fail2ban 依靠 firewalld 做 IP 封禁,二者不冲突,形成双层防爆破。
三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快