服务器安装防火墙是保障系统安全的第一道防线,科学配置能有效拦截90%以上的常见网络攻击。
在云服务器、物理服务器或虚拟主机环境中,防火墙并非可选配置,而是安全体系的基石,本文基于实战经验,系统梳理服务器安装防火墙设置的关键步骤、核心参数与避坑指南,助您构建高可用、低风险的防护体系。
为何必须部署防火墙?数据说话
- 2026年CNVD数据显示:未启用防火墙的服务器遭遇攻击概率提升7.2倍;
- 85%的勒索软件通过未授权端口(如22、3389、445)横向渗透;
- 防火墙可拦截92%的已知漏洞利用攻击(Verizon《2026数据泄露调查报告》)。
防火墙不是“锦上添花”,而是“生死线”。
服务器安装防火墙设置的三大核心步骤
选择适配的防火墙类型
| 类型 | 适用场景 | 优势 |
|---|---|---|
| 主机防火墙(如iptables、firewalld、Windows Defender Firewall) | 单台服务器、轻量级防护 | 资源占用低、策略精细到进程级 |
| 网络防火墙(如pfSense、FortiGate) | 多服务器集群、出口统一防护 | 支持NAT、入侵检测(IDS)、带宽管理 |
| 云平台防火墙(如阿里云安全组、AWS Security Groups) | 云环境部署 | 与VPC无缝集成、策略秒级生效 |
优先推荐:云服务器首选安全组+主机防火墙双层策略;物理服务器部署iptables+fail2ban组合。
基础安装与启动(以CentOS 7/8为例)
# 安装firewalld(主流发行版默认支持) sudo yum install firewalld -y sudo systemctl enable --now firewalld # 替代方案:iptables(需关闭firewalld避免冲突) sudo yum install iptables-services -y sudo systemctl enable iptables
关键动作:安装后立即执行sudo firewall-cmd --state,确认状态为running。
精准策略配置(核心!)
遵循“默认拒绝+白名单放行”原则:
- 关闭所有非必要端口
sudo firewall-cmd --permanent --remove-service=dns sudo firewall-cmd --permanent --remove-service=dhcpv6
- 仅开放业务必需端口
# HTTP/HTTPS sudo firewall-cmd --permanent --add-port=80/tcp --add-port=443/tcp # SSH(限制IP更安全) sudo firewall-cmd --permanent --add-source=192.168.1.0/24 --add-port=22/tcp
- 启用日志审计
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" log prefix="FIREWALL: " level="info"'
⚠️ 高危操作:
- 禁用
--add-service=ssh(全网开放SSH是重大风险源); - 避免使用
--add-port=0-65535/tcp(等于无防护)。
进阶优化:让防火墙从“能用”到“好用”
动态防护:结合fail2ban防暴力破解
sudo yum install fail2ban -y sudo systemctl enable --now fail2ban
默认策略:SSH 3次失败即封禁IP 10分钟,有效阻断99%的撞库攻击。
策略分层:内外网差异化控制
- 公网接口:仅开放80/443,其他端口全部拒绝;
- 内网接口:开放数据库端口(如3306),但限制源IP为应用服务器IP段;
- 管理接口:通过跳板机(Jump Server)中转,禁止直连。
定期验证:用nmap自检漏洞
nmap -p- 127.0.0.1 | grep open
目标:确保输出中仅包含预期开放端口(如80,443),其余均为closed/filtered。
常见错误与解决方案
| 错误现象 | 根本原因 | 修复方案 |
|---|---|---|
| 服务无法访问 | 端口未放行或SELinux拦截 | sudo firewall-cmd --list-all检查端口;sudo setsebool -P httpd_can_network_connect 1 |
| 策略不生效 | 未执行--reload |
sudo firewall-cmd --reload |
| 日志无记录 | 未配置日志规则 | 添加--add-rich-rule并检查/var/log/messages |
相关问答
Q:服务器安装防火墙设置后,业务仍被攻击,是防火墙失效了吗?
A:防火墙仅拦截网络层攻击,若攻击利用应用层漏洞(如SQL注入),需配合WAF(Web应用防火墙)和代码审计,建议:防火墙+WAF+定期渗透测试,三位一体。
Q:能否同时启用iptables和firewalld?
A:禁止! 二者规则链会冲突,导致策略失效,CentOS 7+默认使用firewalld,若需iptables,请先执行sudo systemctl stop firewalld && sudo systemctl mask firewalld。
您在服务器安装防火墙设置中遇到过哪些典型问题?欢迎在评论区分享您的解决方案,帮助更多运维同仁避坑!
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/175212.html