Debian防火墙集群部署方案
导读:架构与组件选型 拓扑建议:至少2台防火墙节点构成集群,前端通过VRRP/Keepalived提供VIP,后端业务网与内网分离,管理口独立。 转发与控制平面:内核nftables/iptables承载包过滤与NAT;管理面使用Corosyn...
架构与组件选型
- 拓扑建议:至少2台防火墙节点构成集群,前端通过VRRP/Keepalived提供VIP,后端业务网与内网分离,管理口独立。
- 转发与控制平面:内核nftables/iptables承载包过滤与NAT;管理面使用Corosync+Pacemaker做资源编排与故障切换;可选STONITH/fencing提升脑裂防护能力。
- 典型服务:南北向公网业务、端口转发、SNAT/DNAT、端口封锁、日志审计与告警联动。
基础环境准备
- 系统与内核:Debian 11/12,启用IP转发与桥接过滤(如部署K8s或容器网络,需设置 net.bridge.bridge-nf-call-iptables=1)。
- 网络与时间:节点间静态IP互通,配置**/etc/hosts或DNS解析;启用chrony/NTP**时间同步。
- 管理通道:配置SSH互信,便于批量执行与维护。
- 安全基线:SSH仅限跳板或内网网段,禁用不必要服务与端口,开启日志与审计(如rsyslog/auditd)。
防火墙与NAT规则模板
- 使用 nftables(推荐)或 iptables 均可。以下为最小可用模板(示例网卡:外网eth0,内网eth1,VIP:192.0.2.10)。
- 基本过滤与状态放行
- 放行回环与已建立连接
- 仅开放必要端口(示例:SSH 22/TCP、HTTP 80/TCP、HTTPS 443/TCP)
- 其余默认拒绝(INPUT/FORWARD)
- NAT 与端口转发
- 内网出网SNAT
- 公网到内网服务DNAT(示例:将公网 443 转发至内网 192.168.10.10:8443)
- 规则持久化
- nftables:保存到**/etc/nftables.conf**并启用服务
- iptables:使用iptables-persistent或netfilter-persistent保存/恢复
示例 nftables 规则片段(/etc/nftables.conf)
table inet filter {
chain input {
type filter hook input priority 0;
policy drop;
iif "lo" accept
ct state established,related accept
tcp dport {
22, 80, 443 }
accept
icmp type echo-request accept
counter drop
}
chain forward {
type filter hook forward priority 0;
policy drop;
ct state established,related accept
iif "eth0" oif "eth1" accept # 按需放通南北向转发
counter drop
}
}
table ip nat {
chain prerouting {
type nat hook prerouting priority -100;
policy accept;
tcp dport 443 dnat to 192.168.10.10:8443
}
chain postrouting {
type nat hook postrouting priority 100;
policy accept;
oif "eth0" masquerade
}
}
- 持久化与启用
- 保存:nft list ruleset > /etc/nftables.conf
- 启用:systemctl enable --now nftables
- 若使用 iptables,可用如下要点
- 保存:iptables-save > /etc/iptables/rules.v4
- 恢复:iptables-restore < /etc/iptables/rules.v4
- 持久化:apt install iptables-persistent 或 netfilter-persistent,安装时选择保存当前规则。
高可用集群部署
- 安装与初始化
- 安装组件:apt-get install pacemaker corosync pcs fence-agents
- 启动 pcsd:systemctl start pcsd & & systemctl enable pcsd
- 设置 hacluster 用户密码:passwd hacluster
- 认证并建集群:pcs host auth node1 node2 -u hacluster -p ;pcs cluster setup my-fw-cluster node1 node2
- 启动与开机自启:pcs cluster start --all;pcs cluster enable --all
- 资源与VIP
- 创建 VIP 资源(示例:192.0.2.10/24 绑定到eth0)
- 创建通用服务资源(如 dummy 资源或 systemd 服务包装的防火墙管理脚本),设置启动顺序与监控
- 可选:配置STONITH/fencing(生产环境强烈建议,测试环境可临时关闭:pcs property set stonith-enabled=false)
- 验证
- pcs status 查看资源、节点与健康状态
- 在外部持续 ping VIP,模拟故障(停掉主节点 pcs node standby node1),验证秒级切换与业务连续性。
运维与验证清单
- 规则一致性:将 nftables/iptables 规则纳入Git管理,变更通过“计划-评审-灰度-回滚”流程执行;变更前在备用节点验证,切换后复核。
- 连通性与性能:持续监测VIP可达性、会话保持、NAT会话表与链路利用率;必要时调整 conntrack 参数与连接老化时间。
- 日志与告警:集中采集内核日志、系统日志与防火墙日志,对 DROP/REJECT 与异常流量设置阈值告警。
- 安全加固:限制管理口访问、开启端口敲门或mTLS管理通道、定期更新系统与规则库、最小化暴露面。
- 备份与演练:定期备份规则与集群配置,每季度进行故障切换演练与回滚演练,验证 RTO/RPO 指标。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian防火墙集群部署方案
本文地址: https://pptw.com/jishu/753792.html
