1. Web集群防火墙主机初始化配置概述
在构建高可用Web集群时,防火墙主机的初始化配置是保障整个系统安全的第一道防线。不同于单机环境,集群架构中的防火墙需要同时兼顾南北向流量管控和东西向流量隔离,这对配置策略提出了更高要求。根据我在金融行业集群运维的经验,一套合理的防火墙初始化配置可以阻断80%以上的网络层攻击。
传统防火墙配置往往存在两个误区:要么策略过于宽松导致形同虚设,要么规则过于严格影响正常业务通信。特别是在Web集群场景下,需要针对HTTP/HTTPS流量特征进行精细化控制,同时确保后端服务器间的安全通信。下面我将结合Nginx+Tomcat的典型集群架构,详解防火墙主机的初始化配置要点。
2. 基础环境准备
2.1 硬件选型建议
对于日均PV百万级的Web集群,建议选择至少4核CPU、8GB内存的专用防火墙主机。网卡配置需注意:
- 管理口:千兆网卡(用于SSH管理等)
- 业务口:建议双万兆网卡做bonding(处理业务流量)
- 心跳口:独立千兆网卡(集群节点间通信)
关键提示:务必禁用防火墙主机的IPv6功能,避免因协议栈漏洞导致的安全风险。可通过在/etc/sysctl.conf中添加以下参数实现:
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 12.2 操作系统加固
推荐使用CentOS 7/8或Rocky Linux作为基础系统,初始化时需完成:
- 最小化安装:仅选择"Minimal Install"模式
- 分区方案:
- /boot 1GB
- swap 物理内存的1.5倍
- / 剩余空间的70%
- /var/log 独立分区(20GB以上)
- 关键安全配置:
# 禁用不必要的服务 systemctl disable avahi-daemon cups bluetooth # 设置密码复杂度策略 sed -i 's/minlen = 8/minlen = 12/g' /etc/security/pwquality.conf echo "password requisite pam_pwquality.so retry=3" >> /etc/pam.d/system-auth # 配置历史命令审计 echo 'export HISTTIMEFORMAT="%F %T "' >> /etc/profile echo 'export PROMPT_COMMAND="history -a"' >> /etc/profile3. 防火墙策略配置
3.1 网络区域划分
采用分层防御架构:
[Internet] │ ▼ [DMZ区] ← 允许HTTP/HTTPS │ ▼ [应用区] ← 仅允许DMZ访问指定端口 │ ▼ [数据区] ← 仅允许应用区访问数据库端口3.2 firewalld基础配置
# 启用firewalld systemctl enable --now firewalld # 创建业务专用zone firewall-cmd --permanent --new-zone=webcluster firewall-cmd --reload # 设置默认策略 firewall-cmd --set-default-zone=drop firewall-cmd --permanent --zone=webcluster --set-target=DROP3.3 精细化规则配置
典型Web集群需开放以下端口:
# 允许SSH管理(限制源IP) firewall-cmd --permanent --zone=webcluster \ --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="22" protocol="tcp" accept' # HTTP/HTTPS流量 firewall-cmd --permanent --zone=webcluster --add-service=http firewall-cmd --permanent --zone=webcluster --add-service=https # 健康检查端口 firewall-cmd --permanent --zone=webcluster --add-port=8000-9000/tcp # 允许ICMP有限访问 firewall-cmd --permanent --zone=webcluster \ --add-rich-rule='rule protocol value="icmp" limit value="5/m" accept'4. 高可用集群特殊配置
4.1 VRRP协议支持
对于Keepalived集群,需放行VRRP协议:
firewall-cmd --permanent --zone=webcluster \ --add-rich-rule='rule protocol value="vrrp" accept'4.2 集群节点间通信
配置节点间互信策略:
# 允许集群内部全通信(需严格限制源地址) firewall-cmd --permanent --zone=webcluster \ --add-rich-rule='rule family="ipv4" source address="10.0.1.0/24" accept'5. 安全加固与监控
5.1 防扫描策略
# 防止端口扫描 firewall-cmd --permanent --zone=webcluster \ --add-rich-rule='rule protocol value="tcp" recent name="portscan" set count="1"' # 限制新建连接数 firewall-cmd --permanent --zone=webcluster \ --add-rich-rule='rule family="ipv4" source address="0.0.0.0/0" port protocol="tcp" port="80" limit value="50/m" accept'5.2 日志审计配置
# 启用详细日志记录 firewall-cmd --set-log-denied=all # 日志轮转配置 cat > /etc/logrotate.d/firewall <<EOF /var/log/firewalld { daily rotate 30 compress delaycompress missingok notifempty postrotate systemctl kill -s HUP firewalld.service endscript } EOF6. 配置验证与测试
6.1 规则有效性检查
# 查看生效规则 firewall-cmd --list-all --zone=webcluster # 测试端口连通性 nc -zv 防火墙IP 80 telnet 防火墙IP 443 # 模拟攻击测试 hping3 -S -p 80 --flood 防火墙IP6.2 性能基准测试
使用iperf3进行吞吐量测试:
# 服务端 iperf3 -s -p 5201 # 客户端 iperf3 -c 防火墙IP -p 5201 -t 60 -P 107. 运维管理实践
7.1 变更管理流程
- 测试环境验证新规则
- 通过firewall-cmd --permanent添加规则
- 使用--timeout参数临时生效(如firewall-cmd --add-port=8080/tcp --timeout=300)
- 观察业务监控5分钟
- 确认无异常后执行firewall-cmd --reload
7.2 日常维护命令
# 查看被拒绝的连接 journalctl -u firewalld --since "1 hour ago" | grep DENIED # 动态添加临时规则 firewall-cmd --add-port=3306/tcp --timeout=60 # 规则备份与恢复 firewall-cmd --runtime-to-permanent cp /etc/firewalld/zones/webcluster.xml /backup/8. 典型问题排查
8.1 连接超时问题
检查流程:
- 确认物理链路状态(ethtool eth0)
- 检查防火墙规则匹配顺序(firewall-cmd --list-all --zone=webcluster)
- 验证会话跟踪表(conntrack -L)
- 检查系统连接数限制(sysctl net.netfilter.nf_conntrack_max)
8.2 性能瓶颈分析
常见优化点:
# 调整连接跟踪表大小 echo "net.netfilter.nf_conntrack_max = 1000000" >> /etc/sysctl.conf # 优化firewalld处理模式 firewall-cmd --set-log-denied=unicast # 启用SYN代理 firewall-cmd --permanent --zone=webcluster \ --add-rich-rule='rule protocol value="tcp" tcp-flags="SYN" limit value="100/s" accept'在实际生产环境中,我建议每周对防火墙日志进行安全分析,重点关注异常连接模式和重复被拒的源IP地址。对于电商类Web集群,在618/双11等大促前,还需要提前进行压力测试并适当调整连接数限制参数。