You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于fail2ban与firewalld的依赖、规则配置及封禁机制的技术咨询

关于fail2ban与firewalld的依赖、规则配置及封禁机制的技术咨询

嘿,我来帮你拆解这些问题,一步步解决你的困扰:

一、处理firewalld与需求冲突的最优方案

首先不建议直接卸载firewalld——现在很多主流发行版(比如CentOS/RHEL系)默认用它作为防火墙管理工具,而且fail2ban本身也能和它很好协作。优先推荐修改firewalld规则开放HTTP/HTTPS,而不是卸载或禁用,这样既能满足你的需求,又能保留防火墙的防护能力,还不影响fail2ban的正常工作。

具体操作步骤很简单:

  • 永久允许HTTP(80端口):sudo firewall-cmd --add-service=http --permanent
  • 永久允许HTTPS(443端口):sudo firewall-cmd --add-service=https --permanent
  • 重新加载规则让变更生效:sudo firewall-cmd --reload

如果真的完全不想用firewalld,再考虑禁用或卸载:

  • 停止当前运行的firewalld服务:sudo systemctl stop firewalld
  • 禁止firewalld开机自启:sudo systemctl disable firewalld
  • 如果你打算改用原生iptables,记得安装对应的持久化工具:
    • RHEL/CentOS系:sudo yum install iptables-services && sudo systemctl enable --now iptables
    • Debian/Ubuntu系:sudo apt install iptables-persistent

二、firewalld的规则来源解析

你看到的那些规则,都是firewalld默认public区域的配置结果:

  • 那条REJECT all -- anywhere anywhere reject-with icmp-host-prohibited是public区域的默认兜底规则——当没有匹配到任何允许规则时,就会触发这个拒绝动作。
  • Chain IN_public_allow是public区域专门存放允许规则的链,默认只开放了SSH端口,这就是为什么你重启后只有SSH能正常连接。

firewalld的规则主要存在三个地方:

  • 系统默认规则:/usr/lib/firewalld/ 目录下,包含预定义的服务、区域模板等;
  • 自定义永久规则:/etc/firewalld/ 目录下,你用--permanent参数添加的规则会存在这里,重启后不会丢失;
  • 临时运行时规则:不带--permanent添加的规则仅存于内存,重启后会消失。

三、fail2ban的封禁IP存储与生效机制

封禁IP的存储

fail2ban的封禁记录主要存在这些地方:

  • 日志文件:默认是/var/log/fail2ban.log,里面会详细记录哪个IP被封禁、封禁时间、对应的监控规则(也就是jail,比如sshd jail);
  • 实时封禁列表:可以通过命令查看特定jail的封禁IP,比如查看SSH相关的封禁:sudo fail2ban-client status sshd;
  • 可选数据库:如果你在配置里开启了数据库存储,封禁记录会存在SQLite或其他数据库中,但默认一般不会启用,主要靠日志和内存维护。

生效机制

fail2ban的工作逻辑很清晰:

  1. 它会监控你配置的日志文件(比如sshd的/var/log/auth.log);
  2. 当检测到某个IP触发了预设的失败次数阈值(比如5次错误登录);
  3. 就会调用对应的防火墙后端(默认是firewalld,也可以配置成iptables),添加规则封禁这个IP;
  4. 当封禁时间到期后,再自动移除对应的封禁规则,解除限制。

如果用firewalld作为后端,fail2ban会通过添加自定义富规则或修改区域规则实现封禁;如果是iptables后端,就会往iptables的专用链里添加DROP/REJECT规则。

备注:内容来源于stack exchange,提问作者Thomas Stokes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 09:33:02