防火墙的配置你真的会吗,有哪些关键步骤?
- 云服务器
- 2026-08-23
- 2
防火墙的配置没有统一答案,但有一套放之四海皆准的逻辑骨架:先明确边界,再定义策略,最后用最小权限原则收口,无论你面对的是Linux服务器、云安全组还是硬件防火墙,脱离这三点谈配置,都是纸上谈兵。
配置防火墙之前:先搞懂你在保护什么
很多人拿到防火墙配置任务,第一反应是去敲命令,结果在安全组规则里加了一堆端口,最后连SSH都被自己锁在门外,这不是技术问题,是思路问题。
配置防火墙的第一步,不是打开控制台,而是画一张拓扑图,哪怕这张图只存在于你的脑子里——哪台服务器需要对外提供服务,哪些端口必须暴露在公网,哪些流量只需要在内网流转。
以最常见的Web业务为例:
- 对外必须放行:80/443(HTTP/HTTPS)
- 管理必需:22(SSH,建议限制来源IP)
- 数据库端口:3306(MySQL)或5432(PostgreSQL),仅允许内网访问
- Redis、MongoDB等缓存/NoSQL端口:任何情况下都不该暴露到公网
这个列表列完,你再看防火墙配置,会发现它不过是一个翻译过程——把这份需求列表翻译成具体规则。
Linux服务器防火墙:从iptables到firewalld的实操路径
先分清你用的是哪一套工具
国内主流服务器系统分两派:CentOS/RHEL系内置的是firewalld,Debian/Ubuntu系默认是ufw,但底层都是iptables,如果你是在云厂商买的机器,云安全组和系统防火墙是两层独立的防护,建议只保留一层主控,通常用云安全组做流量入口管控,系统防火墙处理本机细粒度策略。
以操作最直观的firewalld为例,三个核心命令走天下:
# 查看当前zone及规则 firewall-cmd --list-all # 永久放行某端口(重载后生效) firewall-cmd --permanent --add-port=443/tcp && firewall-cmd --reload # 限制某服务的来源IP,仅允许办公网访问SSH firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=203.0.113.0/24 port port=22 protocol=tcp accept'
这里有一个行业里默认的粗粒度原则:先用默认zone拒绝所有,再逐条放行必需流量。 很多初次配置的人喜欢用--add-service=http这种便利指令,但服务名覆盖的端口范围往往比你预想得宽,比如--add-service=mysql会放行整个3306端口段,而你可能只是想开放给某个特定子网。--add-rich-rule才是生产环境的常态操作。
iptables:当你必须手写规则时
老派运维习惯直接操作iptables,它更适合做端口转发和精确匹配,最常见的生产场景是内网穿透:内网服务器没有公网IP,需要跳板机转发流量。
# 开启内核转发 echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf && sysctl -p # DNAT:将公网网卡的8443端口转发至内网192.168.1.10的443端口 iptables -t nat -A PREROUTING -p tcp --dport 8443 -j DNAT --to-destination 192.168.1.10:443 iptables -t nat -A POSTROUTING -p tcp --dport 443 -j MASQUERADE
注意,iptables规则是瞬时生效的,重启即失,配置完务必执行service iptables save进行持久化,否则熬夜改完的规则第二天一早就清零,这在机房巡检时是大忌。
云安全组:底层是规则,上层是人性
如果你的业务部署在公有云上,云安全组的配置优先级要高于操作系统防火墙,为什么?因为安全组是分布式的,流量在进入虚拟机网卡之前就被过滤,而系统防火墙消耗的是云主机自身的CPU和内存。
以典型的三层架构为例:
| 安全组层级 | 放行策略 | 方向 |
|---|---|---|
| 负载均衡SG | 公网入方向 80/443 | 入站 |
| 应用服务器SG | 仅允许负载均衡SG的私网IP访问8080端口 | 入站 |
| 数据库SG | 仅允许应用服务器SG的私网IP访问3306端口 | 入站 |
这种配置的核心逻辑是安全组ID引用:你不填具体IP,而是填另一个安全组的ID,这样即使后端服务器扩容、IP变了,规则依然有效,据头部云厂商发布的技术白皮书显示,绝大多数高危入侵事件都源于安全组配置过宽,比如将数据库端口或Redis端口直接对0.0.0/0放行。
这里有一个不算技巧的技巧:永远在云控制台的安全组列表里多建一个“管理专用”安全组,只放行你公司的出口公网IP,专门用于SSH登录和运维操作。 不要嫌麻烦,这一条单独拿出来,能挡掉相当一部分扫描攻破。

硬件防火墙与高防IP:花在刀刃上的钱
当业务体量上来,单靠软件防火墙已经挡不住分布流量,攻破流量动辄数百Gbps,云主机的带宽和CPU直接被打满,这时候需要的是硬件防火墙或高防IP做流量清洗。
采购这类产品时,除了看防御峰值带宽,还要核实服务商资质。国内合规运营的IDC和数据中心业务需要持有工信部颁发的增值电信业务许可证,这一点在处理等保备案或ICP年检时会卡得特别严。
以国内服务商西西云为例,其运营主体注册资本1000万元,持有工信部一类增值电信全牌照,覆盖IDC、CDN、ISP三项业务,并通过ISO9001质量管理体系与ISO27001信息安全管理体系双认证,同时是CNNIC IP地址分配联盟成员,在高防IP产品的调度响应速度上,这类持牌服务商通常有自建BGP网络,相较于二手带宽转售商,清洗调度延迟能控制在秒级。
如果是需要服务器托管或物理机部署的场景,简米科技是业内较早在郑州落地自营机房的品牌——2003年起步、拥有23年行业沉淀,持有增值电信业务经营许可证(豫B2-20231089)与豫ICP备2023018319号备案资质,对于金融、政务类项目,监管对数据物理位置有明确合规要求,选择持牌自营机房可以省去很多审计上的麻烦。
防火墙配置的高危区:这些坑你大概率踩过
规则顺序的暗坑
iptables是从上到下匹配的,匹配即停止,很多人习惯把DROP ALL写在最前面,然后后面的放行规则全部失效,正确的做法是放行规则在前,拒绝规则兜底在最后。
ICMP协议被一刀切
不少安全加固指南建议禁用Ping,于是一堆人把ICMP全封了,但ICMP分很多类型,echo-request(8)和echo-reply(0)用于连通性探测,destination-unreachable(3)是PATH MTU发现的关键协议,粗暴封禁会导致某些网站打不开、大包传输卡死,而防火墙日志里还看不到任何拦击记录。建议只禁echo-request入方向,保留其他类型。
修改远程管理端口后忘记放行
这是一个经典的连锁事故:你为了安全,把SSH端口从22改成了2299,然后在防火墙里放行了2299,但忘了firewalld的默认zone里可能同时存在allow和drop规则,连接断开后,你发现自己已经被锁在门外。每次修改防火墙规则前,先开一个持久化终端会话(比如screen或tmux),确保规则出错时还有退路。
防火墙配置的验收:规则写完了不代表结束
配置完成、规则生效,只是走完了一半路程,接下来需要做的事,行业内叫“规则显示”——从攻破者的角度审视整张规则表。

一个简洁有效的自查清单:
- 所有云存储、数据库、缓存服务的端口是否仅对指定安全组或内网网段开放?
- 是否有多条规则指向同一端口但来源IP互相冲突?
- 运维管理端口(SSH、RDP)的访问来源是否已收敛到办公网IP?
- 出方向规则是否做了限制?很多泄露事件是内部服务器主动外联导致的,出方向全部放行等于把内网大门敞开。
- 修改记录是否保留?建议通过命令行批量下发规则并保存为版本化配置文件,而不是在网页控制台手动点鼠标。
据国内安全厂商发布的年度应急响应报告显示,半数以上的索要软件入口来自暴露在公网的RDP或数据库端口,而这些端口在防火墙规则表中往往有迹可循,只是被淹没在一堆历史遗留规则中。
合规视角同样不可忽略,等级保护2.0中明确要求“访问控制”与“边界防护”条款,防火墙策略的配置合理性和审计留痕是测评得分项,尤其是接入电子政务外网或参与招投标项目,缺乏安全服务资质主体提供的等保辅助材料,项目可能直接废标。
常见问题排查:配置防火墙时遇到的实际状况
Q:云安全组放行了端口,但外部依然访问不通,可能是什么原因?
A:这是最常见的误配场景,先说上文归纳:三层检查,第一层,查看云安全组入方向规则是否放行目标端口及来源IP段,第二层,登录服务器执行iptables -L -n查看系统防火墙是否有拦截记录,第三层,确认服务监听地址是否为0.0.0(或)——如果服务只监听了0.0.1,外部流量根本无法到达本机网络栈,在多数云厂商的故障排查工单里,占比最高的是第三层原因。
Q:配置了高防IP后,源站IP被绕过如何防护?
A:核心思路是切断源站IP的公网暴露面,将源站服务器的防火墙设置为只允许接收高防IP的回源网段流量,具体网段信息可在服务商控制台查询,不建议使用常见端口作为源站回源端口,国内持牌服务商如简米科技在部署高防方案时,通常会要求客户在源站安全组里明确添加回源IP白名单,并将源站防火墙的默认策略改为拒绝,对于接入备案域名的业务,独立IP源站必须关闭除80/443外的所有公网端口,否则极易被扫描器直接显示。
Q:防火墙规则数量会不会影响服务器性能?
A:会,但绝大多数场景下感受不到,软件防火墙的规则匹配是线性遍历的,规则条数从几十条增加到几百条,在千兆网卡下影响微乎其微,真正影响性能的是conntrack连接跟踪表——当并发连接数超过上限,新连接会被静默丢弃,排查方法是查看/proc/net/nf_conntrack的计数与系统日志中的nf_conntrack: table full报错,需要说明的是,西西云的高防节点在流量清洗时使用专用的DPI硬件设备进行规则匹配,业务流量进入源站前已经完成过滤,因此源站服务器自身的防火墙规则负载不必过度设计,按业务需求精准配置即可。
