
第一次上手公司防火墙的时候我差点被一堆术语劝退。同事让我“把这条策略加到 trust 到 untrust 的方向再做个 NAT 映射”我当时脑子里全是trust 是什么untrust 又是什么为什么一会儿叫策略、一会儿叫 ACL、一会儿又叫规则后来断断续续折腾了好几年从 iptables 一路摸到华为、飞塔这些企业级设备才慢慢明白防火墙这一行术语不是拿来背的而是拿来“对表”的。你把一套术语体系捋顺了再去看任何品牌的产品思路都是通的。这篇文章就是一份面向企业级场景的防火墙与 iptables 专业术语整理适合刚入行的运维工程师、经常要跟防火墙打交道的网络管理员以及准备各类技术认证的朋友。我会把 iptables 里的核心概念、主流商业防火墙的通用行话以及厂商之间的术语差异放在一起讲尽量用大白话拆开揉碎保证你下次看到“安全域”“会话表”“透明模式”“HRP”这些词的时候能第一时间知道它们到底在说什么。1. 先理清概念防火墙到底在“防”什么1.1 防火墙不是一台设备而是一套“门禁逻辑”很多人把防火墙理解成一种具体的硬件设备其实更准确的说法是防火墙是一种在网络边界执行访问控制的安全机制。硬件防火墙只是它的载体iptables 这种软件防火墙同样是它的实现形态。一套完整的门禁逻辑至少包含三个环节你是谁身份/地址、你要去哪目的/区域、我让不让你过动作/策略。早期的包过滤防火墙只看每个数据包的头部字段比如源 IP、目的 IP、协议、端口这是最基础的门禁。后来出现了状态检测防火墙它会额外记录“这个包是不是某个已建立连接的一部分”这就是状态检测也就是我们常说的会话表机制。再往后出现了应用层识别防火墙不光看端口还能识别 HTTP、数据库协议、文件传输协议这些具体应用。理解了这条演进路线你就明白为什么术语总是一堆一堆地出现每一代能力都会带来一批新名词。iptables 在这个体系里非常特殊。它的表、链、规则结构几乎是所有商业防火墙概念的“最小化原型”。你在 iptables 里见过的匹配条件、目标动作、状态跟踪拿到华为、H3C、飞塔这些设备上都能找到一一对应的概念。这也是为什么我强烈建议新人先从 iptables 把底层的包处理逻辑吃透再上手商业防火墙。1.2 五个绕不开的基础术语无论你面对哪个品牌的防火墙只要掌握了下面五个词基本上就具备和同事正常交流的基础。安全域/区域Zone一个防火墙接口可以被划分到某个安全区域比如 trust内网、untrust外网、dmz服务器区。不同区域之间有默认的隔离关系策略就是要控制区域之间的访问。iptables 本身没有“区域”这个概念但企业里用多张网卡做内外网隔离时本质上就是在用接口模拟区域。接口Interface防火墙上的物理口或逻辑口比如 GE1/0/1、eth0。接口是策略的“入口”和“出口”几乎所有策略都必须指定从哪个接口来、到哪个接口去。策略Policy/ACL一条策略一般是“源区域 源地址 目的区域 目的地址 服务 动作”的组合。动作通常只有两个允许permit/accept和拒绝deny/drop。在 iptables 里策略就是一条带有匹配条件与动作的规则而在华为、H3C 里策略叫“安全策略”或“域间策略”。会话Session一次完整通信的状态记录包括源 IP、目的 IP、端口、协议、超时时间等。防火墙维护一张会话表数据包匹配到已有会话时就不需要重新查策略直接按会话记录放行这就是状态检测能够提高性能的原因。默认动作Default Action当数据包没有匹配到任何策略时防火墙默认怎么处理。安全基线通常是“默认拒绝”也就是在 iptables 里将链的默认策略设为 DROP或者在商业防火墙里把区域间策略的最后一条设置为拒绝。默认动作决定了整个设备的初始安全姿态先确认默认动作再去看具体放行规则这是我所有排障案例里最习惯用的切入顺序。2. iptables 术语体系从一条命令看全局2.1 表、链、规则的层级关系iptables 的术语体系核心是“四表五链”。很多人第一次学的时候觉得绕其实拆开看很简单。链Chain是数据包经过的检查点。一个数据包进入防火墙后会按照路径经过不同的链先到 PREROUTING然后系统判断目的地址是不是本机如果不是就转发经过 FORWARD 链再走 POSTROUTING 出去如果是本机则走 INPUT 链交给本地应用应用回应后再走 OUTPUT 链最后也经过 POSTROUTING 出去。表Table是规则的组织方式不同表负责不同的事情filter 表做过滤nat 表做地址转换mangle 表修改数据包头部字段raw 表决定是否跳过状态跟踪。你可以把链理解成“检查点”表理解成“检查事项分类”。在某个检查点上可能同时要过滤、要改地址那就把相应表里的规则串起来执行。规则Rule则是链里的具体条目。一条规则由匹配条件和目标动作组成比如“来自 192.168.1.0/24 且访问 80 端口的包执行 ACCEPT”。规则是有顺序的iptables 从上到下逐条匹配匹配到就执行目标不再往下看。这也是我踩过最多坑的地方把一条拒绝规则加在了放行规则前面结果服务直接断了。我用一个简单表格帮大家记住四张表和对应场景表名称作用常见链典型场景filter包过滤放行或拒绝INPUT、FORWARD、OUTPUT内网访问控制、端口封禁nat地址转换PREROUTING、POSTROUTING、OUTPUTSNAT 上网、DNAT 端口映射mangle修改报文 TOS、TTL、MSS 等字段全部链调整 MSS、标记流量raw跳过连接跟踪PREROUTING、OUTPUT对高并发 UDP 流量优化性能2.2 匹配条件五元组只是起点iptables 规则里最常见的匹配条件是“五元组”源 IP、目的 IP、源端口、目的端口、协议。对应到命令就是-s、-d、--sport、--dport、-p。但这只是起点实际运维中你会遇到大量扩展匹配条件它们才是真正体现专业度的地方。举个例子-i和-o指定入接口和出接口。很多策略需要区分流量从哪个网卡进来接口匹配往往比 IP 匹配更可靠。再比如-m multiport可以一次匹配多个端口-m state可以按连接状态匹配-m limit可以限速限频-m recent可以做临时性封禁。尤其要提的是--tcp-flags这个参数。它的作用是匹配 TCP 标志位比如 SYN、ACK、RST、FIN。企业防 SYN 洪水时经常用它构造规则比如对入方向的 TCP 包检查 SYN/RST 组合。热搜词里那条iptables -a input -j drop只是一个最简单的示例真实场景中你不会裸加一条无条件 DROP那样会把所有流量拒之门外而是会先放行已建立连接再对新建连接做精细匹配。2.3 目标与扩展动作规则匹配到之后怎么处理这些处理动作在 iptables 里叫“目标”Target。最常用的是 ACCEPT、DROP、REJECT、LOG、RETURN。ACCEPT 是放行DROP 是静默丢弃REJECT 是丢包并回一个错误信息。测试阶段我建议先用 REJECT因为你能立刻发现问题上线后策略收敛、不想暴露端口细节时再改成 DROP。LOG 只是记日志它会匹配并记下信息但还需要下一条规则真正执行动作所以很多人容易漏掉它。RETURN 则说明从当前自定义链返回调用链继续匹配。语法与语义之别。除这些内置目标外还有一整套扩展目标SNAT、DNAT、MASQUERADE、TCPMSS 等。SNAT 做源地址转换最典型的就是内网多个用户共享公网 IP 上网DNAT 做目的地址转换常用于把公网端口的流量映射给内网服务器MASQUERADE 可以看成动态版 SNAT适合拨号或 IP 不固定场景它会自动获取出口接口地址做转换。还有一个值得背下来的目标是 TCPMSS。当网络里出现 MTU 黑洞问题也就是 ICMP 相关错误被禁掉导致路径 MTU 发现失败时我们可以在 FORWARD 链上做 MSS 钳制例如iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu。这条命令的意思是转发的 TCP SYN 包自动把 MSS 值调整为不超过路径 MTU 能承载的大小。对于很多跨运营商传输慢、打不开网页的问题这招非常管用。2.4 状态跟踪与连接表很多人觉得 iptables 只是包过滤但真正让它好用的是连接跟踪机制。内核通过 conntrack 模块维护一张连接表每个数据包都会被判断属于哪条连接。-m state --state和-m conntrack --ctstate用来匹配连接状态。状态有四种NEW、ESTABLISHED、RELATED、INVALID。NEW 是新建连接的第一个包ESTABLISHED 是已有连接中的包RELATED 是已有连接关联的新连接比如 FTP 数据连接INVALID 是状态不合法、无法识别的包。我在配置防火墙时几乎永远会在合适的位置加一条iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT这就是“允许回流量”的经典写法。否则你只放行了出方向的 SYN 包回来的时候防火墙还得再查一次策略非常容易漏。商业防火墙里的“会话表”概念和这个完全一致只是它把表放在专门的硬件或内存区域里管理还会做老化时间控制。理解 conntrack你就理解了会话表。3. 企业防火墙术语跨厂商通用的“行话”3.1 安全域、策略与 ACL企业级防火墙里最容易让人困惑的就是“安全域”“策略”“ACL”这三个词的关系。简单说安全域是接口的组织单位策略是域与域之间的访问控制ACL 则是早期防火墙和路由器上的访问控制列表本质也是策略只是它的名字沿用了下来。配置策略时最常见的表述是“从 trust 区到 untrust 区放行某个服务”。这句话翻译成 iptables 思维就是在转发路径上放行某个源网段到目的网段的某个端口。在华为防火墙上安全域之间有默认的包过滤关系比如同域互访通常默认允许跨域互访默认拒绝再通过安全策略来按需放行。H3C 的域间策略概念类似只是它更强调“域间”这个方向性。策略的顺序非常关键。很多企业防火墙的策略列表是自上而下匹配的你把一条放行规则放到了拒绝规则之后那它永远不生效。华为 USG 系列和 H3C F1000 系列还支持会话关联策略命中计数排障时一定要会看策略命中数这是判断“流量到底有没有走到这条策略”的最有效方法。3.2 黑白名单与例外管理黑白名单是防火墙策略之外的一种更细粒度控制。黑名单通常用来封禁恶意的源 IP、MAC 地址或指纹特征白名单则用来只允许特定对象访问比如只允许办公网 IP 访问管理接口。这里的核心难点是名单的有效期和命中顺序。有些场景需要临时封禁某个 IP 两小时用动态黑名单模块比手工加策略更高效。华为防火墙的出方向、入方向都支持地址黑名单天融信和绿盟的设备也支持类似功能但入口往往藏在“对象管理”或“防护策略”里不细看容易找不到。White/black list 的运维建议定期清理失效条目。我见过有人把三年前的封禁 IP 还挂在上面后来发现那个 IP 已经被运营商重新分配导致正常客户访问不了排查了一整天才发现是黑名单过期了。企业的黑名单最好加上有效期限并和威胁情报平台联动而不是靠人工维护。3.3 会话、老化时间与长连接商业防火墙的对话不单指“建立连接”更在意“维护连接”。会话表是有限容量的当并发连接数达到上限新连接会被丢弃。很多企业的核心防火墙动辄要求几十万甚至上百万并发会话硬件性能不够就会丢包。老化时间也是重要概念。TCP 连接空闲超过一定时间后防火墙会删除会话记录下一包来时就要重新建立连接。普通 TCP 老化时间可能是几十秒到几分钟但数据库长连接、WebSocket 这类连接需要更长的空闲保持时间。如果你发现生产数据库的闲置连接经常掉线多半是防火墙的老化时间设置短了需要在服务或会话管理里调大超时时间。这里的典型场景是内网应用连接外网数据库查询量不大偶尔空闲几分钟再查询时就超时重连而应用层没做重连处理直接把数据库“打挂”。解决方法是针对这条策略开启长连接或者调大会话超时时间具体参数在华为防火墙上是“会话老化时间”在 iptables 上则是 conntrack 的超时参数。3.4 NAT、端口映射与一对一NAT 是企业运维每天都要打交道的术语。它分两大类源 NATSNAT和目的 NATDNAT。上网场景里内网私网地址访问互联网需要做源 NAT把私网地址转换成公网地址这是“出口地址转换”。端口映射则是典型的目的 NAT外部用户访问防火墙公网 IP 的某个端口防火墙把它转给内网某台服务器的某端口也就是“从外到内”。华为防火墙的端口映射一般通过“NAT 策略”或“目的 NAT”配置实现也就是我们常说的“发布服务器”。H3C 的配置在“NAT 策略”和“NAT server”里天融信的端口映射则常在“策略配置”模块下。虽然界面叫法不同但核心三要素不变外部端口、内部服务器 IP、内部端口。不能理解的地方在于源 NAT 和目的 NAT 可以同时存在。比如内网服务器主动访问外网出去时做源 NAT外网用户访问这台服务器发布端口进入时做目的 NAT。两条方向并不冲突它们走的是不同的流程。3.5 部署模式路由、透明、混合防火墙上线前一定要确定部署模式。路由模式是最常见的防火墙是三层设备每个接口配 IP数据包经过时按路由表转发NAT、策略、动态路由都能用。透明模式则把防火墙当一根“会过滤的网线”接口不配业务 IP直接桥接在二层网络中对现有网络拓扑影响最小适合不便于改变 IP 规划的场景。混合模式就是部分接口做三层路由部分接口做二层透明。很多企业内网核心、办公区和服务器区走透明模式边界出口走路由模式。这里有一个常见误区透明模式下防火墙虽然不参与路由但管理 IP 还是需要的只是管理 IP 通常配置在虚拟接口或管理接口上不承担业务转发。天融信防火墙的透明模式在这个品牌里也叫“透明桥”。你第一次用 console 口登录后通过命令行把接口加入桥组就能在不改交换机配置的情况下把防火墙串联到网络中。华为和 H3C 也有类似配置叫“二层安全域”或“透明转发”。挑选哪种模式取决于你对业务中断风险的容忍度透明模式通常最稳妥。3.6 高可用与双机热备HRP/VRRP/会话同步企业级场景里单台防火墙是危险的因为它一旦宕机整个网络就断了。高可用HA和双机热备就是解决这个问题的手段。华为防火墙的双机热备叫 HRPHuawei Redundancy Protocol它会把主设备的配置和会话实时同步到备设备。当主设备故障时备设备立刻接管因为会话已经同步已建立的连接通常不会中断。H3C 使用的是“双机热备 VRRP”的方式状态由 VRRP 管理会话由专用协议同步。飞塔 FortiGate 的 HA 机制也类似只是原厂叫 HA 集群。会话同步是 HA 的关键。如果两台防火墙之间只同步策略、不同步会话切换那一下子所有之前建立的 TCP 连接都会断掉用户体会就是“网络闪断几秒”。负责会话同步的链路一般要单独规划带宽要够。网线和心跳线都要冗余不然备机状态和主机不一致出问题时会话会自动切换到另一台但配置还是旧的照样会故障。4. 主流品牌术语对照与常见运维动作4.1 厂商术语对照速查表不同厂商喜欢发明自己的术语但其实底层概念是同一套。我整理了一张快速对照表方便你从 iptables 思维切换到商业防火墙核心概念iptables/Linux华为防火墙H3C 防火墙飞塔 FortiGate安全区域接口划分安全域安全域Zone策略规则/链安全策略域间策略防火墙策略地址对象IP/CIDR地址地址对象Address地址转换SNAT/DNAT/MASQUERADENAT 策略NAT 策略策略 NAT/VIP连接状态conntrack会话表会话表会话表高可用keepalivedHRP双机热备HA管理登录命令行Web/ConsoleWeb/ConsoleWeb/Console这个表格的核心价值不是让你背而是帮你建立“翻译”意识。在 iptables 里习惯说“规则”到华为界面里找“安全策略”到飞塔界面里找“Policy”这三者其实是同一个东西。4.2 几个高频品牌运维动作的“翻译”eNSP 实验环境配置防火墙 Web 登录是新手最长遇见的问题。华为 USG6000 系列的默认管理地址一般是192.168.0.1/24首次登录默认账号 admin、密码 Admin123浏览器访问https://192.168.0.1。打不开的时候先检查电脑 IP 是否在同一个网段再检查浏览器是否拦截了 HTTPS 证书。这个问题和 iptables 无关但和“防火墙管理通道”的概念强相关华为防火墙默认仅允许从管理口或 trust 区域访问管理界面其他接口第一次是没法直接 Web 登录的需要先通过 console 口配置。天融信防火墙的透明模式配之前建议先用 console 线连上把接口加入桥组。console 口登录是所有防火墙最先要掌握的技能因为设备没有 IP 时只有 console 能进去。H3C F1000 也是同理开机后按 CtrlB 可以进入 BootROM 菜单里面能做密码恢复、版本升级等操作。Windows 防火墙也是企业运维常碰的东西。Windows 2016 防火墙里入站规则和出站规则是分开的。入站规则控制外部对本机的访问出站规则控制本机对外访问。很多人会直接“永久关闭”防火墙来解决问题但生产服务器建议别这么做更合理的做法是新建允许规则或只禁用特定 profile比如只关闭公共网络的防火墙保持域网络的防火墙还是开启状态。Windows 防火墙底层和 iptables 差距很大但“入站/出站”这个方向概念是完全一致的。4.3 跨品牌排障的共同套路无论什么品牌我在现场排障的顺序几乎固定先看默认动作再查策略命中数再看会话表最后看日志。如果一台主机访问不通先确认防火墙策略是否命中如果策略命中为 0检查是不是方向错了。如果策略命中很高但业务仍然不通看会话表里的状态是不是正常是不是 NAT 转换后的 IP 有问题。如果 NAT 正常再看路由如果是跨区域访问中间设备有没有把回包路由回来。这一套流程走下来90% 的问题都能定位。5. 实战中高频出现的关键词解析5.1 “防火墙上网需要配置 NAT 吗”这是我在知乎和社区里被问得最多的问题之一。答案是看你的部署模式。如果你的防火墙工作在路由模式内网是私网地址那必须配置源 NAT否则内网机器拿着私网地址没法在公网路由。这里的私网地址指 10.x、172.16-31.x、192.168.x 这类地址公网不会路由它们。如果防火墙工作在透明模式且出口本身就是公网地址那可能不需要 NAT。还有一种情况你的防火墙虽然做三层转发但内网用的本身就是公网 IP理论上可以不配 NAT但出于安全和管理考虑很多企业仍然愿意配 NAT 来隐藏内网结构。所以不要一刀切说“上网必须配 NAT”要先看拓扑。5.2 出站规则禁用 ICMP type 0/11/3会有什么问题这题很有实战意义。ICMP 协议里有很多类型其中 type 0 是 Echo Replyping 回显type 11 是 Time Exceeded超时type 3 是 Destination Unreachable目的不可达。不少安全加固指南会建议在出站方向封掉这些类型理由是减少探测面、防止内网信息泄露。但封掉 type 11 和 type 3 会带来一个副作用traceroute 和路径 MTU 发现功能废了。type 11 是 traceroute 能显示每一跳的基础你封了它traceroute 就卡住不动。type 3 里有一个子类型叫“Fragmentation Needed but DF Set”这是路径 MTU 发现的关键信号如果封掉发大包时中间路由器不知道改怎么办数据包就会在某个环节静默丢失形成 MTU 黑洞。我的建议是可以限制 ICMP 的出站类型但至少放行 type 3 中的 fragmentation needed 和 type 11这样既能降低一部分探测风险又不会影响正常网络排障。iptables 里用-p icmp --icmp-type来控制具体类型企业防火墙里也是类似操作。5.3 “无法确定 iptables 版本”怎么排查在某些 Linux 发行版上执行iptables --version偶尔会报“无法确定 iptables 版本”或类似提示。这个问题通常有三种原因一是当前用户权限不够iptables 需要 root 权限sudo iptables --version大概率能解决。二是系统里的 iptables 实际上被包装成了 nftables 的兼容层版本信息读取路径有问题。三是内核模块缺失通常在精简安装的容器里常见需要先加载 ip_tables 和对应模块。遇到这个问题先不要急着重装防火墙软件先检查模块lsmod | grep ip_tables modprobe ip_tables如果内核连 ip_tables 模块都加载不了说明当前内核可能根本没有开启相关支持换发行版或换内核才能彻底解决。企业里跑容器和虚拟化环境比较多这个坑踩的人不少。5.4 “无线网被防火墙拦截了怎么办”这个问题的范围很广。可能被拦截的层面包括无线控制器上的访问策略、AP 上的黑名单、终端自带的 Windows 防火墙、公司统一下发的主机防火墙策略甚至路由器上的 MAC 过滤。排查顺序应该是先确认终端 IP 能不能 ping 通网关。能通网关但上不了网问题更多在 NAT 或上层防火墙。网关都不通先检查无线终端是否正常获取 IP再检查无线控制器有没有把该终端的 MAC 拉黑。终端上如果装了三方安全软件比如奇安信、360 这类带网络防护的也可能干扰网络访问。Windows 自带的防火墙也是高频元凶。你可以临时把 Windows 防火墙的某个 profile 关掉测试或者用命令行查看当前是否所有网络都被拦截netsh advfirewall show allprofiles当然测试完之后要恢复。如果你发现关掉就好了那再逐条检查入站规则和出站规则而不是永久关闭防火墙了事。5.5 请求被 Web 防火墙拦截WAF 和传统防火墙不同传统防火墙管四层以下的 IP/端口Web 防火墙WAF则是专门分析 HTTP/HTTPS 流量的应用层安全设备。热搜词里“请求被 web 防火墙拦截”通常就是 WAF 返回的报错页面包含拦截 ID 和原因。处理这类问题要先搞清楚拦截是不是误判。WAF 的规则库里有很多针对 SQL 注入、XSS 攻击的特征你的合法业务参数如果长得像攻击特征也会被拦。排查方法是查看 WAF 的日志找到拦截规则匹配了哪个特征然后在测试环境复现确认是误判就对相应规则加白名单但白名单要尽量缩小范围不要整个 URL 都加白避免真的攻击被放过去。这里的术语“白名单”和黑名单是同一套逻辑但在 WAF 场景里白名单往往精确到参数级别而不是 IP 级别。所以再强调一次白名单粒度一定要小越细越安全。6. 建立自己的防火墙术语库6.1 一套高效的“术语卡”方法我发现新人学防火墙最困难的地方不是理解单个词而是没法把前后概念串起来。我自己的经验是把术语按“输入-处理-输出”三个环节归类。输入环节的术语包括接口、区域、源地址、目的地址、入方向策略。处理环节的术语包括会话表、NAT、策略路由、安全策略、黑白名单、WAF 规则。输出环节的术语包括出接口、出方向策略、日志、会话同步、HA 状态。只要拿到一个新问题先判断它发生在哪个环节再去对应环节里找术语效率会高很多。你还可以自己建一张表左边写概念右边写“我手里这台设备的实现方式”。例如在 iptables 里默认动作怎么写在华为安全策略里默认动作怎么配在飞塔防火墙里默认策略又是怎么显示。等这张表填满了你对设备的熟悉程度也就不需要再背文档了。6.2 排障心法一次只改一条规则最后分享一个我自己的土办法排障时一次只改一条规则改完立刻看命中计数或日志。不要一上来就加三条规则、改两个 NAT那样出了问题根本不知道是哪一步导致的。iptables 查看规则时用带计数的方式iptables -L -v -n能看到每条规则的包数量和字节数这个信息比任何日志都直观。哪条规则一直在累计计数说明流量确实匹配到了它哪条规则计数永远是 0说明它后面的规则可能永远没机会执行或者方向错了。商业防火墙也一样华为的策略可以看命中次数飞塔的策略管理页面里也有 hits 字段。我在实际运维中有一个习惯每次接触新品牌先查三样东西——默认策略、会话表位置、日志位置。三样清楚了就基本能上手剩下的都是查文档的问题。这套思路送给所有正在跟防火墙术语较劲的同行希望对你有用。