1988年11月2日,互联网遭遇了第一次大规模"生物"入侵。康奈尔大学的研究生罗伯特·莫里斯为了"测量互联网的规模",编写了一个小程序。这个程序本意是无害的,但由于其代码中的一个关键错误,导致它在网络上以惊人的速度进行自我复制和传播。
技术原理与影响:
"莫里斯蠕虫"的程序利用了当时Unix系统中普遍存在的几个漏洞,在短短几小时内感染了当时互联网上约10%的主机(约6000台计算机)。被感染的计算机因资源耗尽而陷入瘫痪,整个网络的核心骨干出现了前所未有的拥堵和中断。
深远影响与启示:
- 信任与边界的缺失 :该事件暴露出网络早期"无差别信任"的问题,以及各个机构的内部网络与广阔的互联网之间没有任何屏障------边界缺失。
- 防御方式的颠覆:传统被动、手动式的防御方式在此类自动化攻击面前束手无策。
- 催生专业安全机构 :1988年11月3日,即事件次日,美国军方的DARPA组建了CERT,标志着Internet保护开始成为一项严肃的工作,也促使了美国总统里根签署了《计算机安全法令》。
- 核心安全理念的诞生 :这次事件让学术界和工业界第一次深刻认识到:网络需要一道"边界 ",一个可以检查、过滤和控制进出流量的"看门人"。不能再允许任何数据包都自由地在内部网络和外部世界之间穿行。
01 防火墙的本质
-
防火墙是部署在网络边界 (如内网与外网之间、内网不同安全域之间)的访问控制设备 ,基于预设的安全规则,对进出网络的流量进行允许或阻断的判断。
-
本质 :网络边界的访问控制列表。
-
核心特性:
- 边界性:它只守卫"关口",不干涉"境内"的合法通信。
- 规则性:其行为完全遵循管理员制定的、像法律条文一样的规则列表。
- 透明性:对合法的通信流而言,它应该如空气般存在,不增加感知延迟。
02 防火墙的类型
1. 包过滤防火墙
原理
基本思想:
对于每个进出的数据包,使用一组预设的规则,决定转发或者丢弃该包。通常配置成双向过滤。
工作原理(如何过滤):
-
过滤规则基于IP和传输层头部的字段,主要包括:源和目标IP地址、IP协议域、源和目标端口号
-
防火墙建立一组规则,将数据包与规则进行匹配:
- 如果匹配到一条规则,则根据此规则决定转发(允许)或者丢弃(阻断)。
- 如果所有规则都不匹配,则根据缺省策略(通常是"全部拒绝")处理。
常见规则示例:
- 规则1 :允许内网所有主机 (
192.168.1.0/24) 访问外网的80端口、443端口------满足员工正常办公需求。 - 规则2:阻断所有外部IP访问内网的3389端口、3306端口------防止外部攻击者暴力破解远程桌面和数据库。
- 规则3 :阻断源IP为
202.112.14.90的所有流量------封禁已知的攻击源。
规则表示(示例):
| 动作 | 源地址 | 源端口 | 目的地址 | 目的端口 | 方向 |
|---|---|---|---|---|---|
| 允许 | 192.168.1.0/24 |
* | *.*.*.* |
80, 443 | 出 |
| 阻断 | *.*.*.* |
* | 192.168.1.0/24 |
3389, 3306 | 入 |
安全缺省策略
两种基本策略,或缺省策略
- 没有被拒绝的流量都可以通过 管理员必须针对每一种新出现的攻击,制定新的规则
- 没有被允许的流量都要拒绝 比较保守 根据需要,逐渐开放
一个简化的SMTP流量规则实例
目标:允许入站和出站的邮件流量通过,阻止其他流量通过
规则A+B允许入站访问内网的SMTP,C+D允许出站访问外网的SMTP;以上规则从上至下应用于每个包
| 规则 | 方向 | 源地址 | 目标地址 | 协议 | 目标端口 | 行为 |
|---|---|---|---|---|---|---|
| A | 流入 | 外部 | 内部 | TCP | 25 | 允许 |
| B | 流出 | 内部 | 外部 | TCP | >1023 | 允许 |
| C | 流出 | 内部 | 外部 | TCP | 25 | 允许 |
| D | 流入 | 外部 | 内部 | TCP | >1023 | 允许 |
| E | 流入或流出 | 任意 | 任意 | 任意 | 任意 | 拒绝 |
问题:规则D允许外部流量访问任意>1023的内部端口,若内部主机被种植了木马,无法防止木马的回连
解决方法:对于规则B和D,增加源端口号25字段,对于规则A和C,源端口字段设为>1023
无法抵抗的攻击
IP碎片攻击
方式:将IP报文化整为零,利用防火墙不检测首个无端口信息分片IP的特点
对策:丢弃分片太小的分片
场景设定:
- 攻击者IP:203.0.113.10
- 目标服务器IP:192.168.1.100 (位于防火墙后)
- 防火墙规则:禁止外部IP访问内部网络的UDP端口53 (DNS服务)。这是一条常见的安全规则,旨在防止外部利用内部DNS服务器进行DNS放大攻击等。
- 攻击目标:绕过防火墙,向内部服务器192.168.1.100的UDP 53端口发送一个恶意数据包。
攻击者将一个本应被拦截的UDP数据包(目标端口为53)进行恶意分片。
原始的恶意UDP包(本应被拦截):
- IP头:源IP=203.0.113.10,目的IP=192.168.1.100
- UDP头:源端口=12345,目的端口=53
- Data: 恶意载荷...
攻击者将其拆分成两个精心设计的分片。
防火墙特性:
- 无状态:它独立地处理每一个数据包,不记忆、不关联。它不知道分片#1和分片#2是"一家人"。
- 不重组:它没有能力缓存所有分片并进行虚拟重组来检查完整的传输层头部。
IP地址欺骗攻击
- 方式:修改IP包头目的IP地址为信任IP,如假冒内部的IP地址
- 对策:在外部接口上禁止内部地址
源路由攻击,即由源指定路由
- 方式:在IP包头设置源路由项,绕过不信任主机从而进入网络
- 对策 :禁止源路由选项
根据您提供的6张图片内容,以下是完整、准确的原文复述,已按图片逻辑顺序(从包过滤防火墙的局限到状态检测防火墙的原理与优势)进行组织。
2. 状态检测防火墙
工作原理
- 状态检测防火墙是一种基于会话状态跟踪的防火墙技术,它是对传统包过滤防火墙的核心升级,通过维护网络连接的会话状态表,实现对网络流量的动态、智能访问控制,解决了包过滤防火墙"无状态、仅浅层检测"的缺陷。
- 本质:无状态包过滤 + 会话状态跟踪。
- 一个完整的TCP会话会经历
SYN → SYN/ACK → ACK → ESTABLISHED → FIN的状态变化。
三个核心步骤:
-
建立会话状态表 :
当防火墙首次接收到一个数据包(如客户端发起的TCP SYN包)时,会解析其网络层(源IP、目的IP)和传输层(源端口、目的端口、协议类型)字段,然后在内存中创建一个会话状态条目,记录该连接的关键信息。
-
动态跟踪会话状态 :
防火墙会根据后续数据包的交互,实时更新会话状态。
-
基于状态的规则匹配 :
防火墙对数据包的放行逻辑分为两种情况:
- 已建立会话的数据包:只要数据包匹配会话状态表中的条目(如源/目的IP和端口一致、状态为ESTABLISHED),直接放行,无需重复匹配复杂规则,提升转发效率。
- 新会话的数据包:必须严格匹配预设的访问控制规则(如允许内网访问外网80端口),规则匹配通过后才会创建会话条目。
能够抵抗的攻击
伪造原IP地址
- 攻击方式:攻击者从外部发送一个伪造源IP地址的数据包(例如,伪装成内部信任主机的IP),试图直接访问内部服务器。或者,攻击者直接发送一个TCP ACK包,伪装成一个已建立连接的一部分。
- 抵御原理(基于状态表匹配) :
- 当这个伪造的ACK包到达防火墙时,防火墙会查询其连接状态表。
- 尝试寻找一个与该数据包五元组(源IP、目的IP、源端口、目的端口、协议)相匹配的、并且状态为ESTABLISHED(已建立)的连接记录。
- 由于这个连接从未通过正常的TCP三次握手(SYN, SYN/ACK, ACK)建立,状态表中根本不存在这样一条记录。
IP分片攻击
IP分片攻击
- 攻击方式:同前。
- 抵御原理(基于状态表匹配) :
- 状态防火墙具备IP分片重组(或称虚拟重组)的能力。
- 当它收到第一个IP分片时(IP头的MF标志位为1),它不会立即放行。相反,它会将这个分片缓存起来,并等待后续分片的到来。
- 它会收集所有具有相同Identification(标识符)的分片,在内存中将它们重新组合,直到获得一个完整的传输层(TCP/UDP)头部。
- 只有在重组出完整的头部信息,并根据其端口号和状态表应用了安全策略之后,防火墙才会做出放行或丢弃的决定。
SYN洪泛攻击
- 攻击方式:攻击者向目标服务器的大量端口发送TCP SYN请求,通过服务器的响应(SYN/ACK或RST)来判断哪些端口是开放的。
- 抵御原理(基于状态表匹配) :
- 虽然防火墙无法阻止单次的SYN请求,但现代的状态检测防火墙通常集成了入侵检测(IDS)的初步功能。
- 它可以监控连接状态表的创建速率和模式。如果防火墙在短时间内检测到同一个源IP对同一个或多个目的IP发起了大量不成功的连接尝试(即只发送SYN,没有完成握手),它会识别出这种行为模式。
不能抵抗的攻击
这些攻击的共同特点是它们利用了合法的、已建立的网络连接通道,但其恶意行为隐藏在应用层的数据载荷之中。状态检测防火墙"只看信封,不读信件内容",因此对这些攻击无能为力。
例如:
- SQL注入、跨站脚本(XSS)、命令注入、WebShell上传等应用层攻击
- 恶意软件与病毒传播
- 加密流量中的攻击
- 内部威胁
2. 应用层代理防火墙
工作原理
与前两者核心区别在于:不直接转发数据包,而是以"代理"身份替客户端与服务器建立连接,通过深度解析应用层协议内容实现精细化访问控制。
应用代理防火墙的核心是"应用层代理+内容检测":
- 它会阻断客户端与服务器的直接通信,充当两者之间的"中间人";
- 当客户端发起访问请求时,请求会先发送到代理防火墙;
- 防火墙验证请求的合法性(包括应用层协议格式、内容合规性)后,再以自身名义向服务器转发请求;
- 服务器的响应数据同样需经过防火墙的应用层检测,再转发给客户端。
本质:应用层协议的解析器与访问控制器,不仅控制"谁能访问",还能控制"访问的内容是什么"。
优势
- 应用层深度检测能力
这是应用代理防火墙最核心的优势。它能识别并解析特定应用层协议(如HTTP、FTP、SMTP、POP3等),实现远超网络层/传输层防火墙的精细化控制。 - 隐藏内网拓扑,提升安全性
由于客户端与服务器无直接连接,服务器仅能识别防火墙的IP地址,无法获取内网客户端的真实IP,从根源上避免了内网主机被外部攻击者直接扫描或攻击,有效保护内网拓扑隐私。 - 支持用户身份认证
可内置认证模块,能对接密码、令牌、生物识别等认证方式,验证通过后才转发请求。
以下是根据您提供的9张图片内容,整理的完整、结构化原文复述。内容已按逻辑顺序(从部署策略、基础概念到具体模型与架构)进行组织,严格忠实于每张图片的原文、图示标签及结构。
03 防火墙的部署
核心观点 :
防火墙的部署策略,本质就是把合适的防火墙放在合适的位置。
攻击场景举例:
- DDoS攻击是从外网直接冲击边界服务器。
- ARP欺骗是内网主机之间的攻击。
- TCP会话劫持可发生在"外网→DMZ→内网核心区"的任意环节。
案例分析 :
某企业买了高端的应用代理防火墙,却只部署在互联网边界,结果内网员工通过U盘植入恶意程序后发起ARP欺骗,导致核心数据库数据泄露------因为应用代理防火墙部署在边界,根本覆盖不到内网的攻击流量。
结论 :
不同攻击的攻击路径、目标区域完全不同,这就要求防火墙的部署必须"针对性防御"。防火墙的架构是"防御上限",而部署策略是"防御下限"。
防火墙的配置和部署
四种常见配置:
- 简单的包过滤路由器模型
- 单宿主堡垒主机(屏蔽主机防火墙)模型
- 双宿主堡垒主机模型(屏蔽防火墙系统模型)
- 屏蔽的子网防火墙模型
几个概念:
- 堡垒主机:对外部网络暴露,同时也是内部网络用户的主要连接点。
- 单宿主主机:只有一个网络接口的通用计算机系统。
- 双宿主主机:至少有两个网络接口的通用计算机系统。
- DMZ:在内部网络和外部网络之间增加的一个子网。
1. 包过滤路由器防火墙
将防火墙直接部署在内网(如企业办公网、校园网)与外网(互联网、其他外部网络)的连接处。
通常需选择高性能的状态检测防火墙:外网流量通常较大(如1Gbps以上),包过滤/状态检测防火墙速度快、开销小,适合处理海量边界流量;应用代理防火墙性能开销大,不适合作为唯一的边界防火墙。
2.单宿主堡垒主机模型
单宿主堡垒主机(屏蔽主机防火墙)模型由包过滤路由器和堡垒主机组成。
提供的安全等级比包过滤防火墙系统要高,因为它实现了网络层安全(包过滤)和应用层安全(代理服务),同时隐藏内部网络细节。
入侵者在破坏内部网络的安全性之前,必须首先渗透两种不同的安全系统。

3.双宿主堡垒主机
- 双宿主堡垒主机:一个网卡使用公网IP连接外部网络,一个网卡使用内网IP连接内部网络;进行应用层审计;
- 对外屏蔽内网信息;实现用户身份审计;内容审计。
- 内网对外网访问过于严格;如果堡垒主机攻破,内网完全暴露。

4.屏蔽子网防火墙
屏蔽子网模型用了两个 包过滤路由器和一个堡垒主机。
它是最安全的防火墙系统之一,因为在定义了"中立区"(DMZ,Demilitarized Zone)网络后,它支持网络层和应用层安全功能。网络管理员将堡垒主机、信息服务器、Modem组,以及其它公用服务器放在DMZ网络中。如果黑客想突破该防火墙那么必须攻破以上三个单独的设备。
DMZ(Demilitarized Zone,非军事区)是内网与外网之间的"中间区域",防火墙采用双机架构部署:
- 外部防火墙:连接外网与DMZ,过滤外网到DMZ的流量;
- 内部防火墙:连接DMZ与内网核心区(如数据库服务器、核心业务系统),过滤DMZ到内网核心区的流量;
- DMZ区域放置"面向外网的公开服务":如Web服务器、邮件服务器、FTP服务器等。
