一、防火墙的基本概念
1.定义
2.安全区域和接口
✅ 关键特性:
一个物理接口只能属于一个安全区域
区域间流量必须通过策略显式允许(默认拒绝所有)
3.多安全区域
4.默认安全规则-ACL与安全级别
4.1 ACL(访问控制列表)
类型 | 工作层级 | 特点 |
---|---|---|
标准ACL | 网络层(L3) | 仅基于源IP过滤(如access-list 1 deny 192.168.1.0 0.0.0.255 ) |
扩展ACL | 传输层(L4) | 基于五元组(源/目标IP、端口、协议)过滤 |
⚠️ 局限:
传统ACL无状态检测(无法跟踪TCP连接状态)
策略复杂度随规则数量指数级增长
4.2 安全级别(Security Level)
数值化信任等级:每个安全区域被赋予1-100的整数值,值越大越可信越重要
区域 | 典型安全级别 | 说明 |
---|---|---|
Management | 100 | 最高权限(设备配置入口) |
Trust | 85 | 内网用户区域 |
DMZ | 50 | 服务器隔离区 |
Untrust | 5 | 互联网(最低信任) |
4.3安全级别核心作用
自动化策略生成:
-
高→低安全级别:默认允许出站(如Trust→Untrust)
-
低→高安全级别:默认拒绝入站(如Untrust→Trust)
❓路由器和防火墙的区别
路由器和防火墙的根本区别在于设计目标:路由器解决网络连通问题,防火墙解决网络安全问题。 具体表现在: 路由器通过路由表决策转发路径,核心指标是吞吐量和低延迟; 防火墙通过安全策略过滤流量,核心能力是深度包检测和威胁防御。
二、防火墙的发展历史
三、防火墙工作层次
四、防火墙的类型
1.包过滤防火墙
1.1工作层级
网络层(Layer 3)和传输层(Layer 4)
1.2原理
检查每个数据包的源IP、目标IP、端口号(如TCP/UDP)、协议类型(如ICMP/TCP) 等头部信息,根据预设规则(ACL)决定允许或丢弃数据包。(跟交换机包过滤功能相似)
1.3优点和缺点:
✅ 高效低延迟:仅检查包头,处理速度快,性能高,可以用硬件实现原理。
缺点 | 技术原理说明 | 实际风险案例 |
---|---|---|
不能根据状态信息控制 | 无状态表记录会话,无法识别非法数据包(如未经三次握手的ACK包) | 攻击者可发送伪造ACK包绕过防火墙 |
前后报文无关 | 每个包独立检测,不关联上下文(如FTP需动态开放端口,包过滤无法自动跟踪) | FTP被动模式需手动开放大范围端口→安全漏洞 |
不能处理网络层以上信息 | 仅解析到L4头部,无法检查应用层载荷(如HTTP内容) | 放行携带SQL注入的HTTP流量 |
ACL配置复杂 | 大型网络需数百条规则,易出现规则冲突或遗漏 | 规则顺序错误导致策略失效 |
不能防应用层攻击 | 无法识别恶意内容(如病毒、跨站脚本) | 电子邮件附件病毒穿透防火墙 |
不支持连接认证 | 无法绑定用户身份(如AD账号)到访问策略 | 内部员工滥用权限访问敏感服务 |
仅对某些攻击敏感 | 对IP欺骗、端口扫描等基础攻击有效,但对高级威胁(如APT)无效 | 高级持续性威胁(APT)长期潜伏 |
典型设备:传统路由器、基础防火墙。
包过滤的缺陷直接推动了技术演进:
-
状态防火墙 → 解决“无状态控制”问题(跟踪TCP会话)
-
应用网关 → 解决“应用层攻击”问题(解析HTTP/SMTP内容)
-
NGFW → 整合状态检测+应用识别+用户认证+威胁情报
💡 例如:
包过滤:可阻止
外部访问内网TCP 3389(RDP端口)
NGFW:进一步做到 →
“仅允许认证用户Alice从公司VPN IP访问内网TCP 3389,且检测RDP协议中的暴力破解行为”
2. 状态检测防火墙
状态检测防火墙通过维护会话状态表解决了包过滤防火墙"无状态"的根本缺陷。
2.1 概述
“根据通信和应用程序状态确定是否允许包的通行”
本质区别:
-
包过滤防火墙 → 只检查单个数据包的IP/端口
-
状态检测防火墙 → 分析历史通信上下文(如TCP握手是否完成)
2. 流量方向智能识别
“识别返回数据流还是首发数据流”
动态放行策略:
-
内网PC访问服务器 → 主动发起连接(创建会话)
-
服务器返回响应 → 匹配已有会话直接放行(无需重复检查规则)
3. 性能优化机制
“根据状态表识别判断,无需重复查找规则”
会话表 vs 规则表:
项目 | 规则表(ACL) | 会话表(State Table) |
---|---|---|
检查方式 | 逐条匹配(可能上百条) | 哈希快速查询(微秒级) |
生效阶段 | 仅新连接首包 | 后续所有报文 |
存储内容 | 静态策略(如允许192.168.1.0访问) | 动态连接状态(如TCP ESTABLISHED) |
4. 状态跟踪技术细节
“保持连接状态的跟踪,通过TCP头的SYN/RST/ACK/FIN确定状态”
2.2 工作层级:
网络层、传输层、会话层
2.3 流和会话
1. 流—— 单向的数据管道
📌 技术定义
-
本质:一组同方向、同特征的数据包集合
-
标识依据(防火墙如何识别一个流?):
协议类型 唯一标识流的参数 示例(五元组) TCP/UDP 五元组 源IP:源端口 → 目标IP:目标端口+协议
ICMP 三元组+Type+Code 源IP → 目标IP + ICMP Type 8(请求)
RAW IP 三元组 源IP → 目标IP + 协议号(如OSPF)
✅ 关键:流是单向的!例如:
客户端发往服务器的HTTP请求 → 一个TCP流
服务器返回客户端的HTTP响应 → 另一个独立TCP流
2. 会话 —— 双向的通信关联
📌 技术定义
-
本质:将两个反向流逻辑关联为一个完整通信过程
-
创建时机:当防火墙检测到合法连接建立(如TCP三次握手成功)
-
会话ID生成:取任一方向 流的特征 均可反向定位整个会话
✅ 关键区别:包过滤是“看单个包裹的寄件人信息”,状态检测是“全程跟踪快递物流状态”。
2.4 核心工作原理
动态跟踪连接状态(如TCP三次握手、UDP会话),建立"状态表"记录会话信息。只允许符合已建立会话或预定义规则的数据包通过。
1.会话表—— 防火墙的“记忆中枢”
五大元素(五元组)
-
会话表本质:
防火墙内存中的动态数据库,记录所有活跃连接的状态(如TCP握手阶段、数据传输中)。 -
五元组组合必须在整个管理范围内保持唯一,可以允许某个源ip一样,不可以五元组完全一致。
2.会话创建逻辑--不同协议,会话创建不一样
协议类型 | 会话创建时机 | 技术原理说明 |
---|---|---|
TCP | 完成三次握手后 | 需验证SYN→SYN-ACK→ACK 序列 |
UDP | 首包通过时立即创建 | 模拟会话(如DNS请求) |
ICMP | 首包通过时立即创建 | 匹配请求与响应(如Ping) |
多通道协议 | 需ALG(应用层网关)辅助创建 | 如FTP需解析PORT/PASV 命令动态建会话 |
📌 注:
ALG 是解决FTP等协议多端口问题的关键组件,它解析应用层协议内容,动态开放端口。
3. 会话表示例
2.5 报文到达防火墙时的决策逻辑
2.6 优缺点
类别 | 具体内容 | 补充说明 |
---|---|---|
优点 | 知晓连接状态,更加安全 | 基于状态表动态跟踪连接会话,可识别合法连接上下文,抵御非法连接渗透,相比静态包过滤防火墙,对网络访问控制更精准 |
缺点 | 不能检测应用层协议内容,如 URL 过滤 | 缺乏应用层深度解析能力,无法识别 HTTP 请求中 URL 含有的恶意指令、非法内容,难以阻断应用层违规访问 |
不能阻止应用层攻击,不能连接认证 | 对 SQL 注入、XSS 跨站脚本等应用层攻击无检测拦截能力;未集成身份认证机制,无法验证连接发起者真实身份,存在身份冒充风险 | |
不是所有的协议都有状态:UDP、ICMP | UDP 为无连接协议、ICMP 以控制消息为主,状态检测难以完整维护其会话状态,处理这类协议流量时,安全策略应用效果受限 | |
不能支持多连接或多通道连接如 FTP 等 | FTP 存在控制连接、数据连接分离的多通道场景,状态检测难以协同管控多通道交互,易出现连接混乱、安全策略失效问题 |
❓TCP访问Web服务器全流程
假设防火墙初始会话表为空,域间规则:允许内网(192.168.1.0/24)访问外网HTTP
步骤 | 事件 | 五元组 | 匹配会话表? | 域间规则检查 | 防火墙动作 |
---|---|---|---|---|---|
1 | 内网PC发送SYN包 | 源:192.168.1.100:54321 目标:203.0.113.5:80 协议:TCP | ❌ 无会话 | ✅ 允许内→外HTTP | 创建会话临时条目 状态: SYN_SENT 转发SYN包 |
2 | 服务器回复SYN-ACK | 源:203.0.113.5:80 目标:192.168.1.100:54321 协议:TCP | ❌ 无会话(反向流) | ✅ 允许返回流量 | 升级会话状态 状态: SYN_RECEIVED 转发SYN-ACK |
3 | PC发送ACK | 源:192.168.1.100:54321 目标:203.0.113.5:80 协议:TCP | ✅ 匹配会话 | - | 更新会话为ESTABLISHED 直接转发ACK |
4 | PC发送HTTP请求 | 同步骤3五元组 | ✅ 匹配会话 | - | 直接转发 |
5 | 服务器返回HTTP响应 | 同步骤2五元组 | ✅ 匹配会话 | - | 直接转发 |
💡 关键洞察:
仅步骤1需要检查域间规则!后续所有报文(步骤2-5)均通过会话表高速转发,性能提升10倍以上!
❓如果 低级别区域想要访问高级别区域 怎么办?
低级别区域访问高级别区域的唯一途径:管理员手动配置安全策略,明确指定:
源区域 + 目的区域 + 放行的 IP / 端口
并遵循 最小特权原则 和 纵深防御架构。
3. 应用层网关防火墙
3.1 概述
3.2工作层级:
应用层(主要)、网络层、传输层、会话层
3.3原理
作为客户端与服务器的"中间人",完全解析应用层协议(如HTTP、FTP)。客户端先连接代理,代理再代表客户端与服务器通信。
典型应用:Web应用防火墙(WAF)、邮件网关。
❓FTP 在 NAT 环境下出现“能登录但不能传文件”的问题
FTP 使用 两个独立的 TCP 连接:
-
控制连接: 用于发送命令和接收命令响应。这个连接始终由客户端主动发起,连接到服务器的端口 21(默认)。
-
数据连接: 专门用于传输实际的文件列表和文件内容(
RETR
下载,STOR
上传)。
“登录”使用的控制连接是客户端发起的(
C-Ctrl
->Server:21
)。这种由内向外的连接 NAT 能够完美处理。“不能下载”:如果你使用的是 主动模式,
客户端在 NAT 后面,它的真实 IP (
Client_IP
) 是一个私有 IP(如 192.168.1.100)。它把这个私有 IP 和端口C-Data
告诉了服务器。服务器(在公网上)收到这个命令,它尝试连接
192.168.1.100:C-Data
。但这个地址在公网上是无效的,公网上的路由器根本不知道这个地址在哪里!服务器无法找到位于 NAT 路由器后面的客户端。结果:数据连接无法建立。客户端登录成功(控制连接由客户端发起,NAT 能处理),但
LIST
(列目录)或RETR
(下载文件)等需要数据连接的命令就会挂起或超时报错。
3.5 引入ALG解决上述问题
ALG(Application Layer Gateway,应用层网关)是防火墙中解决多通道协议通信障碍的核心技术。
1.概述
2.工作过程
步骤1:客户端发起控制连接(ALG监听)
步骤2:ALG截获并处理(关键!)
步骤3:服务器响应
步骤4:服务器发起数据连接(ALG放行)
3.6 优缺点
类别 | 详情 | 解释 |
---|---|---|
优点 | 支持连接身份认证,能检测应用层数据;如上网认证,URL 过滤,关键字等行为管理 | 应用层网关可深入到应用层数据,对用户身份(像员工上网认证)、访问的网址(URL 过滤)、传输内容里的关键字等进行检查管控,精准规范网络行为,保障网络访问符合安全策略 |
缺点 | 用软件来处理,消耗系统资源 | 依靠软件解析、处理应用层数据,需占用 CPU 运算、内存存储等系统资源,数据量大或多任务时,易使设备性能下降 |
缺点 | 仅支持 TCP 应用(如 http telnet https ftp ) | 受设计和实现限制,主要适配基于 TCP 协议的应用,像常见的网页浏览(http/https )、远程登录(telnet )、文件传输(ftp )等,对 UDP 等其他协议应用(如 DNS udp 、实时音视频常用 UDP ),无法有效作为应用层网关工作 |
缺点 | 可能需要额外的客户端软件 | 为实现身份认证、数据检测等功能,有时要在用户终端安装配套客户端程序,增加用户部署成本与操作复杂度,还可能因客户端与系统不兼容引发问题 |
4. 电路级网关
-
工作层级:会话层(Layer 5)
-
原理
在传输层建立"虚拟电路",转发流量时不深入检查应用层内容,仅验证会话合法性(如TCP握手是否完成)。 -
特点
-
✅ 隐藏内部网络拓扑:外部仅看到网关IP。
-
⚠️ 不检查数据内容:无法防御应用层威胁。
-
🔄 常与其他防火墙组合使用(如SOCKS代理)。
-
-
典型场景:VPN网关、SOCKS代理服务器。
5. 下一代防火墙(NGFW, Next-Generation Firewall)
-
工作层级:多层融合(L3-L7)
-
原理
整合传统状态检测、深度包检测(DPI)、应用识别(如识别微信/抖音)、入侵防御(IPS)、用户身份管理等功能。 -
核心能力
-
应用识别与控制:基于应用类型(非端口)制定策略。
-
威胁情报集成:实时拦截已知恶意IP/域名。
-
可视化与策略联动:结合用户身份、设备类型动态调整规则。
-
-
典型设备:Palo Alto PA-Series、Check Point NGFW。