在 CentOS 上启用 Fail2Ban 的完整步骤如下:
一、安装 Fail2Ban
- 安装 EPEL 源(如已安装可跳过):
sudo yum install epel-release -y
- 安装 Fail2Ban:
sudo yum install fail2ban -y
二、配置 Fail2Ban(推荐方式)
Fail2Ban 默认配置文件为 /etc/fail2ban/jail.conf
,不建议直接修改,应使用 jail.local
或 jail.d/*.local
进行覆盖配置。
方法一:创建 jail.local
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo vi /etc/fail2ban/jail.local
添加或修改以下内容(以 SSH 为例):
[DEFAULT]
ignoreip = 127.0.0.1/8 ::1
bantime = 3600
findtime = 600
maxretry = 3
banaction = firewallcmd-ipset
action = %(action_mwl)s
[sshd]
enabled = true port = ssh filter = sshd logpath = /var/log/secure
说明:
bantime
:封禁时间(秒)findtime
:检测时间段(秒)maxretry
:最大失败次数banaction
:使用 firewalld 封禁 IP
三、启动并启用服务
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
检查状态:
sudo systemctl status fail2ban
四、验证配置
查看 SSH 防护状态:
sudo fail2ban-client status sshd
手动测试封禁/解封:
sudo fail2ban-client set sshd banip 192.168.1.100
sudo fail2ban-client set sshd unbanip 192.168.1.100
五、与 Firewalld 集成(CentOS 7+ 默认)
Fail2Ban 会自动使用 firewallcmd-ipset
与 Firewalld 集成。你可以查看封禁规则:
sudo firewall-cmd --list-rich-rules
如需进一步自定义规则(如 Nginx、WordPress 等),可在 /etc/fail2ban/filter.d/
和 /etc/fail2ban/jail.d/
中添加配置文件。