防火墙工作原理
High Contrast
Dark Mode
Light Mode
Sepia
Forest
1 min read296 words

防火墙工作原理

防火墙是网络安全的第一道门——决定哪些流量能进、能出、能通过。理解状态防火墙和包过滤的区别,是写出正确防火墙规则的基础。


防火墙类型对比

类型                    工作层      特点                    适用场景
────────────────────────────────────────────────────────────────────────
包过滤(Packet Filter)  L3/L4    无状态,只看IP/端口/协议   路由器 ACL
状态防火墙(Stateful)   L4       追踪连接状态,自动放回程   iptables/nftables
应用层防火墙(L7/WAF)   L7       理解应用协议,过滤内容     WAF, Nginx ModSec
代理防火墙(Proxy)      L7       代理所有连接               Squid, 企业级
下一代防火墙(NGFW)     L7+      DPI + IPS + 应用识别       Palo Alto, Fortinet

状态防火墙:连接跟踪

状态防火墙维护一张连接状态表——知道哪些连接是合法建立的,自动放行回程流量:

连接状态表(Conntrack Table):
源IP:端口          目标IP:端口        协议  状态        超时
──────────────────────────────────────────────────────────────────
192.168.1.100:54321  8.8.8.8:53      UDP   ESTABLISHED  30s
192.168.1.100:50000  93.184.216.34:443 TCP  ESTABLISHED  300s
192.168.1.101:60000  10.0.50.10:3306  TCP  ESTABLISHED  300s
规则逻辑:
1. 检查规则表(从上到下,第一条匹配就执行)
2. 如果是已建立连接的回程 → 直接放行(不需要规则)
3. 新连接 → 按规则决定 ACCEPT / DROP / REJECT
# 查看 Linux 连接跟踪表
conntrack -L
cat /proc/net/nf_conntrack
# 连接跟踪统计
conntrack -S

防火墙规则处理流程

flowchart TD A[收到数据包] --> B{是否已建立\n连接状态?} B -->|是 ESTABLISHED/RELATED| C[直接放行] B -->|否 新连接/无状态| D[从第一条规则开始匹配] D --> E{匹配规则?} E -->|ACCEPT| F[放行] E -->|DROP| G[静默丢弃\n发送方超时] E -->|REJECT| H[丢弃+返回 ICMP 错误\n发送方立即知道被拒绝] E -->|无匹配| I{默认策略} I -->|ACCEPT| F I -->|DROP| G

网络区域模型(Zone-Based)

现代企业防火墙通常按安全区域设计规则:
高安全 ←──────────────────────────────────────────→ 低安全
┌────────┐    ┌───────────┐    ┌──────┐    ┌────────────┐
│Internal│    │    DMZ    │    │ OA   │    │  Internet  │
│ 服务器区│◄──►│  Web/API  │◄──►│办公网│◄──►│  外网      │
│  L4    │    │    L3     │    │  L2  │    │    L1      │
└────────┘    └───────────┘    └──────┘    └────────────┘
区域间规则:
Internet → DMZ:允许 TCP 80/443
DMZ → Internal:允许 TCP 3306/5432/6379(按需)
OA → Internal:允许部分内网服务
Internal → Internet:允许出站(通过 NAT)
任何 → Internal:默认拒绝(除非有显式规则)

DROP vs REJECT:选哪个?

DROP(静默丢弃):
对方没有任何响应 → 等待直到超时(TCP 通常 60-120 秒)
优点:不暴露防火墙存在,扫描者需要更长时间
缺点:合法用户等待时间长(超时才知道不通)
用途:对外网/不信任区域
REJECT(拒绝+通知):
立即返回 ICMP Port Unreachable 或 TCP RST
优点:合法用户立即知道服务不可用
缺点:暴露防火墙存在
用途:内网之间,方便排障

云安全组 vs 传统防火墙

特性              云安全组(AWS SG/阿里云SG)    传统防火墙(iptables)
──────────────────────────────────────────────────────────────────────────
状态              有状态(自动放行回程)          有/无状态(取决于配置)
默认策略          入方向全拒绝,出方向全允许      可自定义
规则数量          较少(100-200条)               可以很多
方向              分入/出站规则                   可按链(FORWARD/INPUT/OUTPUT)
作用对象          绑定到实例或子网                绑定到主机/网络设备
管理界面          Web 控制台/API                  命令行/API
常见错误          忘记配出站规则(某些云默认限制) 规则顺序错误

CCNA 对应考点

考纲位置:Domain 5.1 — Define key security concepts Domain 5.4 — Configure and verify access control lists

高频考题: - 状态防火墙与包过滤的区别(有无连接状态追踪) - DROP vs REJECT 的行为差异 - 防火墙区域模型(Inside / Outside / DMZ) - 隐式拒绝(Implicit Deny):ACL/防火墙末尾默认拒绝所有


下一节iptables/nftables 规则设计——理解了原理,动手用 Linux 内置的防火墙工具写规则——这是服务器安全的基础操作。