fail2ban 配合 firewalld 自动封禁暴力破解 IP
本帖最后由 傲来云 于 2025-5-15 14:03 编辑网站频繁被扫端口、SSH 爆破?只靠防火墙规则太麻烦?那你一定要了解一下这个神器:
fail2ban + firewalld,自动检测日志、封禁恶意 IP,省心又高效!
什么是 fail2ban?fail2ban 是一个开源安全工具,能通过分析日志文件(如 SSH 登录日志)来发现异常行为,并自动调用防火墙(如 firewalld)将对应 IP 封禁。
环境准备
[*]系统:CentOS 7/8 或兼容发行版(如 Rocky、AlmaLinux)
[*]防火墙:firewalld
[*]SSH 日志默认路径:/var/log/secure
[*]宝塔面板用户也适用(需安装 fail2ban)
一、安装 fail2ban# 安装 EPEL 源(如未安装)
yum install epel-release -y
# 安装 fail2ban
yum install fail2ban -y安装完成后,服务位置:
/usr/bin/fail2ban-client
二、配置 fail2ban
默认配置文件路径:/etc/fail2ban/我们需要做两个修改:1. 编辑主配置文件:复制默认配置,避免升级时被覆盖:cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local然后编辑:
nano /etc/fail2ban/jail.local找到 部分,修改如下:
enabled = true
port = ssh
logpath = /var/log/secure
maxretry = 5
bantime = 3600
findtime = 600
backend = systemd含义解释:maxretry:最多失败次数(5次)findtime:在 600 秒内失败 5 次触发封禁bantime:封禁时间(秒)
三、设置使用 firewalld 作为封禁后端
编辑 jail.local 中最上方 区域,加上这行:banaction = firewallcmd-ipset
确保 firewalld 已启动并运行:systemctl start firewalld
systemctl enable firewalld
四、启动并启用 fail2bansystemctl start fail2ban
systemctl enable fail2ban查看运行状态:systemctl status fail2ban
五、常用查看命令# 查看 fail2ban 是否生效
fail2ban-client status
# 查看 sshd 的保护情况
fail2ban-client status sshd
# 手动封禁一个 IP(例如 1.2.3.4)
fail2ban-client set sshd banip 1.2.3.4
# 手动解封
fail2ban-client set sshd unbanip 1.2.3.4
六、结合宝塔面板使用
宝塔自带防火墙偏静态,而 fail2ban 属于动态实时检测,可以作为补充使用:
防 SSH 爆破 → 启用 fail2ban 的 sshd 规则防 FTP 爆破 → 还可配置 模块(需开启日志)
总结
fail2ban + firewalld 是一个非常轻量但有效的自动防御方案,基本配置一次,自动保护服务器,特别适合:
VPS、小型网站服务器没有硬件防火墙的场景频繁遇到 SSH 爆破、FTP 登录异常的用户
页:
[1]