linux防火墙可通过标准化监控指标、统一规则分发和轻量协调逻辑实现多节点协同防御:统一攻击识别标准(如ssh暴力破解阈值)、拉取式黑名单同步、本地即时响应+中心日志聚合、以及带ttl的封禁生命周期管理。

Linux 防火墙本身不支持原生的“多节点联动”,但可通过标准化监控指标、统一规则分发机制和轻量级协调逻辑,在多个服务器节点间构建事实上的协同防御能力。关键不是让防火墙自己通信,而是让各节点基于相同策略感知攻击、执行一致响应、并反馈结果到中心视图。
统一攻击识别标准
联动的前提是“认出同一个攻击”。各节点需用相同阈值和维度判定异常,避免各自为政:
- 对 SSH 暴力破解:统一按 5 分钟内单 IP 失败登录 ≥10 次 触发(基于 /var/log/auth.log)
- 对 HTTP 扫描或 Flood:统一按 每秒新建连接 ≥15 个且持续 30 秒 判定(用 netstat -tn | awk '$NF=="ESTABLISHED" {print $5}' 统计源 IP)
- 对 ICMP 异常:统一按 单 IP 每秒 echo-request ≥5 个 并持续 20 秒封禁
规则同步与快速下发
不依赖实时网络通信,改用“拉取式”或“广播式”同步,降低耦合与延迟:
- 将封禁 IP 列表存于共享位置(如 NFS 目录、Git 仓库或 Redis),各节点定时(如每 60 秒)curl 或 git pull 获取最新黑名单
- 使用 firewalld 的 --add-source=IP --zone=block 批量导入,命令可封装为脚本:
while read ip; do firewall-cmd --permanent --add-source="$ip" --zone=block; done - 所有节点执行 firewall-cmd --reload 生效,无需重启服务
本地响应 + 中心聚合
每个节点独立决策、立即阻断,同时把动作日志推送到中心汇总分析:
- 本地脚本检测到恶意 IP 后,先执行 firewall-cmd --add-rich-rule='rule source address="X.X.X.X" reject' 即时生效
- 再将该 IP、时间、触发规则写入本地日志,并由 rsyslog 或简单 curl 推送到中心日志服务(如 Logstash 或轻量 HTTP API)
- 中心端聚合多节点上报,若发现同一 IP 在 ≥3 个节点触发,自动升级为全局高危 IP,加入长期黑名单并通知运维
解封与状态一致性
避免误封堆积、规则过期,需统一生命周期管理:
- 所有临时封禁设置 30 分钟自动过期:用 cron 每 5 分钟运行脚本,检查
firewall-cmd --list-sources --zone=block中 IP 的加入时间,超时即移除 - 中心黑名单支持 TTL 字段,下发时附带过期时间戳,节点加载时只保留未过期条目
- 定期(如每小时)各节点向中心报告自身 block zone 的当前条目数和最近 10 条封禁记录,用于交叉校验与故障发现











