防火墙是一道关卡,只能管住"从这道门过的流量"。它管不住的、和它自己烂掉的部分,才是现场最常出事的地方。
验收会开到一半,甲方信息中心的领导把笔记本一合,说了句:防火墙都上了,还查什么?
会议室安静了两秒。
这种场面见得多。项目验收、等保测评、安全检查,只要机柜里有台防火墙亮着灯,很多人心里的安全感就自动加一档。设备在、策略在、日志在,好像也就安全了。
但做过几年现场的人都知道,那台设备能回答的问题,比大多数人以为的要窄得多。
01 /防火墙到底在管什么
话得说公道,不然容易变成唱衰设备。
防火墙的本质是一道关卡。它的全部本事,是决定"某个包能不能从这道门过去"。
具体到技术上:
五元组过滤——源 IP、目的 IP、源端口、目的端口、协议,五个要素组成规则,命中就放行或丢弃。这是最基础的一层,也是所有策略的地基。
状态检测(Stateful Inspection)——它记得住连接。你从里面发起一条出去的会话,回来的包它认得,放行;外面没头没脑砸进来的包,它不认,丢掉。正是这一条,让"只放内到外"的策略真正可用。
NAT 与 VPN——地址转换让内网结构不直接暴露在外部,VPN 给远程接入开一条受控通道。
NGFW 叠加的能力——IPS 特征匹配、应用识别、URL 分类过滤、反病毒、威胁情报。这些确实把"只看五元组"提升到了"看内容特征"。
它是一道关卡,能管住"从这道门过的流量"。
注意这句话里的限定词——从这道门过的。所有的坑,都长在这五个字上。
02 /那它管不住什么
1. 东西向:横向移动根本不走这道门
防火墙最常见的位置是网络边界,守着南北向——内网到互联网、外网到 DMZ。站在这个位置上,它对内网内部的流量基本是瞎的。
而实战里,一台机器失陷之后的第一件事,从来不是往外冲,是往里走。扫同网段、抓凭据、找共享、试 445、试 3389、试数据库默认口令,一跳一跳往核心区摸。这些流量从服务器到服务器、从办公终端到文件服务器,压根不经过边界防火墙。
见过最典型的场面:边界那台设备策略写得很讲究,日志干干净净;可内网一台测试机被当成跳板之后,三天之内摸到了数据库。防火墙全程没报一条。
2. 加密流量:看得见路,看不见车上装了什么
HTTPS 一封,防火墙能看到的只剩"某 IP 的 443 通着、字节量大概多少"。里面是正常业务还是 C2 心跳,它不知道。
所以 DNS 隧道、走 443 的加密回连、藏在正常 CDN 域名后面的通信,都能大摇大摆出去。
有人会说,不是有 SSL 解密吗?有,但要付代价:证书要下发、终端要装信任根、性能会掉、加密业务可能直接被解坏,还有数据敏感性和合规上的顾虑。多数单位评估完的选择是:不开,或者只对极少数流量开。 这就是现实。
3. 合法凭据:防火墙鉴的是流量,不是人
这一条最值得琢磨。
攻击者拿到一组真实账号密码,从一台真实的内网机器,用真实的协议、真实的端口,连上真实的服务。在防火墙眼里,这条连接和业务部门每天干的活完全一样——五元组对得上,状态正常,应用识别结果是"数据库访问"。
防火墙鉴权的是流量,不是人。 它没有"这个人今天该不该在这个时间访问这张表"的概念。凭据一旦泄露,边界策略再严,也只是给一个合法身份让路。
4. 终端失陷与社会工程:事情发生在门的内侧
钓鱼邮件、U 盘摆渡、供应链投毒、员工点了个"工资条调整通知.zip"。
这些事发生的位置,全在防火墙背后。等它起作用的时候,木马已经在机器里了,甚至已经在域里了。防火墙这时能做的,只剩尽量拦住后续外连——而这一步拦不拦得住,取决于上面第 3 条和下面第四节。
5. 应用层的事:它看见的是"HTTP 通着",不是"这个请求合不合法"
这一条常被忽略,因为它长得不像"边界"问题。
越权访问、未授权接口、业务逻辑漏洞、把 id 改一位就能看别人的单子——这些流量从防火墙角度看,是一条完全正常的 80 或 443 会话。五元组对、状态对、应用识别结果是"Web 访问"。它没有任何理由拦。
加密之后更彻底:内容都看不见,还谈什么判断请求合不合法。
所以"业务被越权刷了数据"这种事,防护点从来不在防火墙上,在应用自己身上。边界设备做得再好,也补不了代码里的洞。
6. 设备自己:守门的人也可能是破口
管理口开在公网上、口令是 admin 加 123、固件三年没升、Web 管理界面还是那个出过历史问题的老版本、默认策略全放通。
防火墙是一台跑着操作系统的服务器,它自己就有攻击面。这台设备被打穿,它守的那道门就失去了意义——而且它通常还攥着最全的路由信息和策略配置。
03 /比攻击更常见的,是策略自己烂掉了
这一段跟技术无关,跟人有关系,但它是现场最普遍的现实。
临时放通变永久。 当年为某个项目、某次联调、某个厂商远程支持开的口子,工单写着"临时",工单关了,规则留下了。三年后翻配置,那条 any 还挂在那儿。
兜底规则。 策略表最后一条 any-any permit,或者干脆默认放通。理由通常是"先保证业务通,回头再收紧"。回头是哪天,没人知道。
影子规则。 上面一条写得宽,下面一条写得细。你以为精细那条在生效,实际上所有流量都被上面那条先匹配走了。写了等于没写,但配置界面上它明明在那儿,看起来还很规范。
上千条策略,没人敢动。 谁写的不知道,为什么写不知道,删了会怎样更不知道。于是换一任接手的人就往上加几条。加到最后,策略表成了考古现场。
配置和文档是两份东西。 文档说只有 22 端口对某段开放,实际配置里还有一条 3389。哪份对?没人敢答。等到出事要查的时候,才发现自己一直在看一份过期的图纸。
这些事不需要攻击者参与,自己就在给攻击者铺路。一道门配了一千把钥匙,其中三百把不知道开哪儿,那这道门就不算锁着。
04 /出向流量
很多单位的策略思路是单向的:外面进来,层层设防;里面出去,any 放通。理由是业务太杂,谁也不知道员工明天要访问什么。
结果就是,机器中了木马之后,回连 C2 一路绿灯;数据被打包压缩之后,往外传也一路绿灯。防火墙在最该拦住的那一步上,什么都没做。
"防进来"和"防出去"是两件事。 后者往往更有效,因为出向流量的正常形态是收敛的、可枚举的。一个财务岗的电脑,不需要在凌晨三点去连一个从没出现过的境外 IP 的 8443。
默认拒绝出向、按需放通,这件事的收益比大多数人以为的高得多,成本主要是梳理业务,不是买设备。
不喊"纵深防御"四个字就完事,说几条明天上班能动手的。
分段。 内网横向也要有控制:VLAN 隔离,核心区、办公区、服务器区、测试区分开,关键业务做微隔离。目标只有一句——别让一台失陷等于全网沦陷。
出向也管起来。 做法上给个顺序:先记录一周,看清内网到底在往外连什么;再定基线;然后逐段收紧。别一上来就硬切,切出事没人担。
日志必须有人看。 防火墙日志不是给检查看的,是给排障和发现异常用的。有日志没人看,等于没日志。至少把拒绝记录和异常出向接进一个日常会看的地方。
策略审计常态化。 定期清过期规则、查影子规则、把命中计数长期为 0 的策略翻出来问一句"这条还留着干什么"。这件事要写进变更流程,不能等想起来才做。
补边界之外的短板。 补丁、EDR、最小权限、多因素认证。这些和防火墙无关,但它们决定了攻击者进来之后能走多远。
换一个默认值。 零信任那句 never trust, always verify,落到运维上其实就一句话:不因为"它在内网"就默认可信。 内网不是安全区,只是延迟更低的攻击面。
回到最开始那个问题。一个网络环境里,上了防火墙就一定安全吗?
不一定。防火墙回答的是"这个包能不能过",它回答不了"这个行为该不该发生"。 它是一道静态的、基于规则的边界,而攻击是动态的、专门找缝隙的。规则是人写的,人就会漏。
防火墙是必要的,但它只是"一层"。把安全等同于一台设备,本身就是最大的风险。
你们机房那台防火墙,上一次有人认真翻开它的策略表,是什么时候?

