CentOS 防火墙性能优化实战
一 规则与策略优化
sudo firewall-cmd --set-default-zone=drop。-m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT;对 firewalld 启用 conntrack 并使用富规则优先放行已建立连接。sudo firewall-cmd --set-log-denied=all(或按需要设为 unicast/broadcast/multicast/xml)。二 连接跟踪与内核参数优化
net.netfilter.nf_conntrack_max,并缩短已建立连接与 TIME_WAIT 等超时,避免在高并发下出现丢包或性能劣化。示例(需结合业务压测微调):
net.netfilter.nf_conntrack_max = 25000000net.netfilter.nf_conntrack_tcp_timeout_established = 180net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120ip_conntrack_*),修改前请确认模块与当前内核支持。net.core.somaxconn = 16384、net.core.netdev_max_backlog = 16384net.ipv4.tcp_max_syn_backlog = 16384net.ipv4.tcp_fin_timeout = 2、net.ipv4.tcp_keepalive_time = 600net.ipv4.ip_local_port_range = 40000 65000三 日志与监控
--set-log-denied=all/xml),或在关键链路上做定向日志,避免日志风暴。journalctl -u firewalld -f、tail -f /var/log/messages | grep firewalld。watch 'iptables -L -n -v' 观察命中计数与规则效率,定位性能瓶颈。四 高并发与资源限制优化
/etc/security/limits.conf 增加如 * - nofile 65536,并验证 ulimit -n。sudo systemctl enable --now firewalld。五 快速检查清单与示例
sudo firewall-cmd --set-default-zone=dropsudo firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPTsudo firewall-cmd --permanent --add-service=ssh --permanent、sudo firewall-cmd --permanent --add-service=http --permanent、sudo firewall-cmd --permanent --add-service=https --permanentsudo firewall-cmd --set-log-denied=allsudo firewall-cmd --reloadsudo ipset create whitelist hash:netsudo ipset add whitelist 203.0.113.0/24sudo iptables -I INPUT -m set --match-set whitelist src -j ACCEPTfirewall-cmd --state、firewall-cmd --list-allwatch 'iptables -L -n -v'、journalctl -u firewalld -fconntrack -L | head、cat /proc/sys/net/netfilter/nf_conntrack_countulimit -niptables-save > /root/iptables-$(date +%F).bak)。