发布于2026-07-13 阅读(0)
扫一扫,手机访问
firewalld的动态黑名单看似简单,但稍不留神就会掉坑里。比如临时规则不持久、批量封禁效率低下、规则写入后实际未生效——这些问题在线上环境里碰到哪个都够头疼的。先把几个核心判断摆出来:用rich rule做黑名单必须加--permanent并执行--reload,否则重载后规则直接蒸发;reject和drop各有用途,调试用reject、静默丢弃用drop;至于大批量封IP,别用循环调firewall-cmd,用--direct直写iptables性能更稳。

很多人测试时用--add-rich-rule不跟--permanent,看着规则生效了,结果firewall-cmd --reload一跑,规则全没了,还以为是脚本配置错了。临时规则根本扛不住重载,用它来做黑名单等于白忙活。
正确写法必须加上--permanent,然后一定记得执行firewall-cmd --reload,规则才能真正落地:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.44" reject'
sudo firewall-cmd --reload
reject会让客户端收到明确的拒绝响应(比如Connection refused),调试时特别方便;生产环境想静默丢弃,换成drop就行ERROR: timeout,要么静默忽略--remove-rich-rule时source address和reject的顺序不能搞反直接在shell循环里反复调firewall-cmd,每条规则都要走一遍D-Bus通信和规则链重编译——100个IP下来,卡住或超时几乎是必然的。线上环境必须合并操作。
推荐的思路是:先收集所有待封IP,生成临时规则文件,然后用--direct批量注入内核链:
sudo firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -s 203.0.113.44 -j REJECT
sudo firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -s 192.168.5.101 -j REJECT
--direct绕过firewalld的抽象层,直写iptables,性能高、没有额外延迟,适合高频封禁场景0)控制优先级,数字越小越靠前,确保黑名单在白名单之前生效firewall-cmd --runtime-to-permanent或者手动保存到/etc/firewalld/direct.xml不少自动化脚本只盯着“命令返回0”就算成功,结果规则压根没进链表。常见翻车原因包括:zone绑错了网卡、rich rule被其他规则覆盖、firewalld服务没跑起来。
校验不能只看firewall-cmd --list-all,得去查底层链:
firewall-cmd --get-active-zones,确保目标IP落在你操作的zone(比如public)里面firewall-cmd --zone=public --list-rich-rulessudo iptables -L INPUT -n -v | grep 203.0.113.44curl -v http://your-server:80,应该能看到Connection refused或直接超时CentOS 7.9已经在2024年6月停服了,但不少旧系统还在跑。它的firewalld默认开启,可有些镜像预装了iptables-services并设为开机启动,结果firewalld直接被屏蔽——你往firewalld里加的规则根本不起作用。
检查修复的步骤:
systemctl is-active firewalld和systemctl is-active iptables只能有一个是active (running)iptables在跑,把它停掉:sudo systemctl stop iptables && sudo systemctl disable iptablessudo systemctl enable --now firewalldfirewall-cmd --state必须输出running,而且iptables -L的输出里不应该出现你手动加的DROP规则规则持久化本身没什么问题,但旧系统里服务冲突比想象中更常见。不先检查清楚就写脚本,等于往空配置里填数据——白费力气。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9