🎯 这节课为什么重要?

作为工程师,您会遇到这些场景:

  • 🔧 “如何保护内网免受外网攻击?”
  • 🔧 “DMZ区应该放哪些服务器?”
  • 🔧 “为什么内网可以访问外网,但外网无法访问内网?”
  • 🔧 “防火墙策略配置顺序对吗?”
  • 🔧 “如何只允许特定端口通过防火墙?”

防火墙必修课,因为:

  • ✅ 网络边界安全的守护者
  • ✅ 隔离内外网的第一道防线
  • ✅ 保护核心服务器和数据
  • ✅ 合规要求(等保、HIPAA等)
  • ✅ 工作中必须掌握的安全技能

📦 核心概念:防火墙就像"智能安检门"

什么是防火墙?

定义:防火墙(Firewall)是网络安全设备,用于控制进出网络的流量,根据预定义规则允许或拒绝数据包通过。

类比:防火墙就像智能安检门

传统网络(无防火墙):
  内网 ←→ 外网完全开放
  → 任何人都可以进出
  → 极易被攻击

有防火墙的网络:
  内网 ←→ 防火墙 ←→ 外网
  → 检查每个数据包
  → 符合规则的通过
  → 不符合的拒绝
  → 安全可控

防火墙的位置

企业内网

外部流量

严格控制

严格保护

互联网
危险区域

防火墙
安全守护

DMZ区
对外服务器

内网
办公区/服务器区

防火墙的作用

  1. 访问控制:允许/拒绝特定流量
  2. 网络隔离:划分安全区域
  3. 攻击防护:阻断DoS、端口扫描等
  4. NAT转换:隐藏内网IP地址
  5. VPN支持:远程安全接入

📚 一、防火墙的基本原理

1.1 包过滤防火墙

工作原理:根据数据包的头部信息(IP、端口、协议)决定是否转发

数据包到达

检查规则

源IP允许?

丢弃

目标端口允许?

协议允许?

转发

特点

  • ✅ 速度快(只检查头部)
  • ✅ 配置简单
  • ❌ 不检查数据内容
  • ❌ 无状态跟踪

适用场景:简单的访问控制

1.2 状态检测防火墙⭐重点

工作原理:跟踪每个连接的状态,只允许符合当前状态的包通过

连接状态

第一次SYN包

SYN+ACK收到

数据传输

关联连接

FIN/RST

传输完成

NEW

ESTABLISHED

RELATED

CLOSED

状态说明

状态 说明 示例
NEW 新连接 TCP第一次握手(SYN包)
ESTABLISHED 已建立连接 TCP数据传输阶段
RELATED 关联连接 FTP数据连接(关联到控制连接)
INVALID 无效连接 不符合协议规则的包
CLOSED 已关闭 连接结束

工作流程

内网PC访问外网Web服务器:

1. PC → 防火墙 → Web服务器(SYN包,状态=NEW)
   防火墙检查:允许NEW连接?→ 记录状态表

2. Web服务器 → 防火墙 → PC(SYN+ACK包,状态=ESTABLISHED)
   防火墙检查:状态表中存在此连接?→ 允许通过

3. PC ↔ 防火墙 ↔ Web服务器(数据包,状态=ESTABLISHED)
   防火墙检查:状态表中存在此连接?→ 允许通过

4. PC → 防火墙 → Web服务器(FIN包,状态=CLOSED)
   防火墙检查:从状态表中删除此连接

优点

  • ✅ 安全性高(跟踪连接状态)
  • ✅ 防止伪造包
  • ✅ 支持动态协议(FTP、H.323等)

适用场景:企业网络安全(最常用)

1.3 应用层防火墙

工作原理:检查应用层数据内容,深度检测

特点

  • ✅ 可以检查HTTP内容(URL、文件类型)
  • ✅ 可以识别应用协议(QQ、迅雷等)
  • ✅ 防止应用层攻击(SQL注入、XSS等)
  • ❌ 性能开销大

适用场景:高安全要求的环境

📖 二、安全区域划分

2.1 安全区域的概念

定义:防火墙将网络划分为不同的安全级别区域,区域间默认隔离

安全级别划分

高安全级别 → 低安全级别

Trust区域(信任区域):
  安全级别:85-100
  示例:内网办公区、服务器区
  特点:最高信任度

DMZ区域(非军事化区域):
  安全级别:50-75
  示例:对外服务器(Web、FTP、Email)
  特点:中等信任度

Untrust区域(不信任区域):
  安全级别:5-50
  示例:互联网
  特点:最低信任度

2.2 安全区域拓扑

Trust 区域
安全级别:100

DMZ 区域
安全级别:50

Untrust 区域
安全级别:5

外网接口

DMZ接口

DMZ接口

DMZ接口

内网接口

内网接口

互联网

Web服务器
192.168.2.100

FTP服务器
192.168.2.101

邮件服务器
192.168.2.102

办公区
192.168.1.0/24

服务器区
192.168.3.0/24

防火墙

2.3 区域间访问规则

默认安全策略

高安全级别 → 低安全级别:默认允许
低安全级别 → 高安全级别:默认拒绝

示例:
Trust → Untrust:默认允许(内网可以访问互联网)
Untrust → Trust:默认拒绝(互联网无法访问内网)
Trust → DMZ:默认允许(内网可以访问DMZ服务器)
Untrust → DMZ:默认拒绝(互联网无法访问DMZ,除非配置策略)
DMZ → Trust:默认拒绝(DMZ无法访问内网)

华为防火墙默认策略

源区域 目标区域 默认策略 说明
Trust Untrust 允许 内网访问互联网
Untrust Trust 拒绝 互联网访问内网(需配置策略)
Trust DMZ 允许 内网访问DMZ
Untrust DMZ 拒绝 互联网访问DMZ(需配置策略)
DMZ Trust 拒绝 DMZ访问内网(需配置策略)
DMZ Untrust 允许 DMZ访问互联网

💼 三、防火墙配置

3.1 安全区域配置

华为USG防火墙配置

# 步骤1:创建安全区域
[Firewall] firewall zone trust
[Firewall-zone-trust] add interface GigabitEthernet 1/0/0
[Firewall-zone-trust] quit

[Firewall] firewall zone dmz
[Firewall-zone-dmz] add interface GigabitEthernet 1/0/1
[Firewall-zone-dmz] quit

[Firewall] firewall zone untrust
[Firewall-zone-untrust] add interface GigabitEthernet 1/0/2
[Firewall-zone-untrust] quit

# 步骤2:配置接口IP地址
[Firewall] interface GigabitEthernet 1/0/0
[Firewall-GigabitEthernet1/0/0] ip address 192.168.1.1 24
[Firewall-GigabitEthernet1/0/0] quit

[Firewall] interface GigabitEthernet 1/0/1
[Firewall-GigabitEthernet1/0/1] ip address 192.168.2.1 24
[Firewall-GigabitEthernet1/0/1] quit

[Firewall] interface GigabitEthernet 1/0/2
[Firewall-GigabitEthernet1/0/2] ip address 202.100.1.1 24
[Firewall-GigabitEthernet1/0/2] quit

# 步骤3:查看区域配置
<Firewall> display zone

3.2 安全策略配置

场景1:允许互联网访问DMZ的Web服务器

HTTPS访问

允许

拒绝

互联网
Untrust

防火墙

Web服务器
DMZ

其他服务器

配置

# 配置安全策略
[Firewall] security-policy

# 配置规则:允许Untrust访问DMZ的HTTPS
[Firewall-policy-security] rule name allow-web
[Firewall-policy-security-rule-allow-web] source-zone untrust
[Firewall-policy-security-rule-allow-web] destination-zone dmz
[Firewall-policy-security-rule-allow-web] destination-address 192.168.2.100 24
[Firewall-policy-security-rule-allow-web] action permit
[Firewall-policy-security-rule-allow-web] quit

# 查看策略
<Firewall> display security-policy rule

场景2:允许内网访问互联网

# 配置NAT(源NAT)
[Firewall] nat-policy
[Firewall-policy-nat] rule name nat-internet
[Firewall-policy-nat-rule-nat-internet] source-zone trust
[Firewall-policy-nat-rule-nat-internet] destination-zone untrust
[Firewall-policy-nat-rule-nat-internet] action source-nat easy-ip
[Firewall-policy-nat-rule-nat-internet] quit

场景3:禁止内网访问特定网站

# 配置URL过滤策略
[Firewall] profile url-filter
[Firewall-profile-url-filter] add condition domain-name suffix example.com
[Firewall-profile-url-filter] quit

# 应用到安全策略
[Firewall] security-policy
[Firewall-policy-security] rule name block-website
[Firewall-policy-security-rule-block-website] source-zone trust
[Firewall-policy-security-rule-block-website] destination-zone untrust
[Firewall-policy-security-rule-block-website] url-filter * url-filter-profile
[Firewall-policy-security-rule-block-website] action deny
[Firewall-policy-security-rule-block-website] quit

3.3 默认安全策略

华为防火墙默认策略

有匹配策略

无匹配策略

permit

deny

高→低

低→高

数据包到达

检查安全策略

动作

使用默认策略

允许通过

拒绝

方向

允许

拒绝

查看默认策略

<Firewall> display firewall packet-filter default-deny

# 查看所有安全策略
<Firewall> display security-policy rule all

⚙️ 四、防火墙与ACL的区别

4.1 功能对比

特性 ACL 防火墙
工作层 三层/四层 二层到七层
状态检测 无(静态) 有(动态)
安全区域 有(Trust/DMZ/Untrust)
应用层检测 有(URL过滤、IPS等)
NAT功能 部分支持 完整支持
VPN支持
性能 较快(现代防火墙ASIC加速)

4.2 使用建议

使用ACL的场景

  • 路由器上的简单访问控制
  • 交换机上的端口安全
  • 配合NAT、QoS使用

使用防火墙的场景

  • 网络边界安全
  • 内外网隔离
  • 服务器保护
  • 合规要求

⚠️ 五、常见误区与易错点

误区1:认为防火墙是万能的

错误认识

"有了防火墙就安全了"

正确理解

防火墙只能防护经过它的流量!

防火墙无法防护:
  ✗ 内部攻击(内部员工恶意行为)
  ✗ 应用层漏洞(SQL注入、XSS)
  ✗ 社会工程学攻击(钓鱼邮件)
  ✗ 直接物理连接(绕过防火墙)

建议:
  ✓ 防火墙 + IDS/IPS
  ✓ 防火墙 + WAF(Web应用防火墙)
  ✓ 防火墙 + 终端安全(杀毒软件)
  ✓ 安全意识培训

误区2:配置了策略就认为生效

错误认识

"配置了允许策略,应该可以访问了"

正确理解

防火墙策略匹配顺序很重要!

错误配置:
  策略1:允许所有(permit any)
  策略2:拒绝特定IP(deny 192.168.1.10)
  → 策略1已匹配,策略2不会执行

正确配置:
  策略1:拒绝特定IP(deny 192.168.1.10)
  策略2:允许所有(permit any)

原则:
  具体策略在前,通用策略在后

误区3:忽略默认策略

错误认识

"配置了允许策略,应该可以访问了"

正确理解

防火墙有隐式拒绝!

如果配置:
  Untrust → DMZ:只允许HTTPS(策略1)

结果:
  互联网可以通过HTTPS访问Web服务器 ✓
  互联网无法通过HTTP访问Web服务器 ✗
  互联网无法通过SSH访问Web服务器 ✗

原因:
  未匹配策略1的流量 → 使用默认策略 → 拒绝

建议:
  总是显式配置默认策略
  或:在策略最后添加"允许所有"(如果需要)

误区4:DMZ区可以完全信任

错误认识

"DMZ区在内网,可以完全信任"

正确理解

DMZ区是半信任区域!

DMZ服务器特点:
  ✓ 对外提供服务(容易被攻击)
  ✓ 位于内网边界(一旦被攻陷,威胁内网)

安全原则:
  ✓ DMZ不能访问内网(默认拒绝)
  ✓ 内网可以访问DMZ
  ✓ DMZ之间互相隔离

建议:
  ✓ DMZ服务器只开放必要端口
  ✓ DMZ服务器定期安全检查
  ✓ DMZ服务器不能存储敏感数据

误区5:忘记配置回程路由

错误认识

"配置了允许策略,应该可以通信了"

正确理解

防火墙是双向的!

场景:内网访问外网Web服务器

配置:
  Trust → Untrust:允许 ✓

问题:
  Untrust → Trust:没有配置 ✗
  → Web服务器的回复包无法返回

解决:
  方案1:配置状态检测(推荐)
    防火墙自动记录已建立的连接
    回程包自动允许

  方案2:配置双向策略
    Trust → Untrust:允许
    Untrust → Trust:允许ESTABLISHED状态

误区6:忽视性能影响

错误认识

"防火墙对性能影响不大"

正确理解

防火墙会影响网络性能!

性能影响因素:
  ✓ 检查规则数量(规则越多,越慢)
  ✓ 深度检测(应用层检测慢于包过滤)
  ✓ 加密解密(VPN、HTTPS)
  ✓ 日志记录(详细日志影响性能)

建议:
  ✓ 优化规则顺序(常用规则放前面)
  ✓ 使用硬件加速(ASIC芯片)
  ✓ 聚合规则(合并相似规则)
  ✓ 合理配置日志级别

📌 六、本节重点总结

核心要点

  1. 防火墙的作用

    • 网络边界安全
    • 访问控制
    • 状态检测
    • NAT转换
  2. 安全区域划分

    • Trust(内网):最高安全级别
    • DMZ(服务器区):中等安全级别
    • Untrust(互联网):最低安全级别
  3. 默认安全策略

    • 高→低:默认允许
    • 低→高:默认拒绝
  4. 状态检测

    • NEW(新连接)
    • ESTABLISHED(已建立)
    • RELATED(关联)
    • INVALID(无效)
  5. 配置原则

    • 具体策略在前,通用策略在后
    • 最小权限原则
    • 定期审计规则

配置公式速查

1. 配置安全区域:
   firewall zone trust
   add interface G1/0/0

2. 配置安全策略:
   security-policy
   rule name allow-web
   source-zone untrust
   destination-zone dmz
   action permit

3. 查看策略:
   display security-policy rule

4. 配置NAT:
   nat-policy
   rule name nat-internet
   action source-nat easy-ip
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐