防火墙的分类与部署详解

1988年11月2日,互联网遭遇了第一次大规模"生物"入侵。康奈尔大学的研究生罗伯特·莫里斯为了"测量互联网的规模",编写了一个小程序。这个程序本意是无害的,但由于其代码中的一个关键错误,导致它在网络上以惊人的速度进行自我复制和传播。

技术原理与影响

"莫里斯蠕虫"的程序利用了当时Unix系统中普遍存在的几个漏洞,在短短几小时内感染了当时互联网上约10%的主机(约6000台计算机)。被感染的计算机因资源耗尽而陷入瘫痪,整个网络的核心骨干出现了前所未有的拥堵和中断。

深远影响与启示

  1. 信任与边界的缺失 :该事件暴露出网络早期"无差别信任"的问题,以及各个机构的内部网络与广阔的互联网之间没有任何屏障------边界缺失。
  2. 防御方式的颠覆:传统被动、手动式的防御方式在此类自动化攻击面前束手无策。
  3. 催生专业安全机构 :1988年11月3日,即事件次日,美国军方的DARPA组建了CERT,标志着Internet保护开始成为一项严肃的工作,也促使了美国总统里根签署了《计算机安全法令》。
  4. 核心安全理念的诞生 :这次事件让学术界和工业界第一次深刻认识到:网络需要一道"边界 ",一个可以检查、过滤和控制进出流量的"看门人"。不能再允许任何数据包都自由地在内部网络和外部世界之间穿行。

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 的状态变化。

三个核心步骤

  1. 建立会话状态表

    当防火墙首次接收到一个数据包(如客户端发起的TCP SYN包)时,会解析其网络层(源IP、目的IP)和传输层(源端口、目的端口、协议类型)字段,然后在内存中创建一个会话状态条目,记录该连接的关键信息。

  2. 动态跟踪会话状态

    防火墙会根据后续数据包的交互,实时更新会话状态。

  3. 基于状态的规则匹配

    防火墙对数据包的放行逻辑分为两种情况:

    • 已建立会话的数据包:只要数据包匹配会话状态表中的条目(如源/目的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. 应用层代理防火墙

工作原理

与前两者核心区别在于:不直接转发数据包,而是以"代理"身份替客户端与服务器建立连接,通过深度解析应用层协议内容实现精细化访问控制。

应用代理防火墙的核心是"应用层代理+内容检测":

  • 它会阻断客户端与服务器的直接通信,充当两者之间的"中间人";
  • 当客户端发起访问请求时,请求会先发送到代理防火墙;
  • 防火墙验证请求的合法性(包括应用层协议格式、内容合规性)后,再以自身名义向服务器转发请求;
  • 服务器的响应数据同样需经过防火墙的应用层检测,再转发给客户端。

本质:应用层协议的解析器与访问控制器,不仅控制"谁能访问",还能控制"访问的内容是什么"。

优势
  1. 应用层深度检测能力
    这是应用代理防火墙最核心的优势。它能识别并解析特定应用层协议(如HTTP、FTP、SMTP、POP3等),实现远超网络层/传输层防火墙的精细化控制。
  2. 隐藏内网拓扑,提升安全性
    由于客户端与服务器无直接连接,服务器仅能识别防火墙的IP地址,无法获取内网客户端的真实IP,从根源上避免了内网主机被外部攻击者直接扫描或攻击,有效保护内网拓扑隐私。
  3. 支持用户身份认证
    可内置认证模块,能对接密码、令牌、生物识别等认证方式,验证通过后才转发请求。
    以下是根据您提供的9张图片内容,整理的完整、结构化原文复述。内容已按逻辑顺序(从部署策略、基础概念到具体模型与架构)进行组织,严格忠实于每张图片的原文、图示标签及结构。

03 防火墙的部署

核心观点

防火墙的部署策略,本质就是把合适的防火墙放在合适的位置。

攻击场景举例

  • DDoS攻击是从外网直接冲击边界服务器。
  • ARP欺骗是内网主机之间的攻击。
  • TCP会话劫持可发生在"外网→DMZ→内网核心区"的任意环节。

案例分析

某企业买了高端的应用代理防火墙,却只部署在互联网边界,结果内网员工通过U盘植入恶意程序后发起ARP欺骗,导致核心数据库数据泄露------因为应用代理防火墙部署在边界,根本覆盖不到内网的攻击流量。

结论

不同攻击的攻击路径、目标区域完全不同,这就要求防火墙的部署必须"针对性防御"。防火墙的架构是"防御上限",而部署策略是"防御下限"。

防火墙的配置和部署

四种常见配置

  1. 简单的包过滤路由器模型
  2. 单宿主堡垒主机(屏蔽主机防火墙)模型
  3. 双宿主堡垒主机模型(屏蔽防火墙系统模型)
  4. 屏蔽的子网防火墙模型

几个概念

  • 堡垒主机:对外部网络暴露,同时也是内部网络用户的主要连接点。
  • 单宿主主机:只有一个网络接口的通用计算机系统。
  • 双宿主主机:至少有两个网络接口的通用计算机系统。
  • DMZ:在内部网络和外部网络之间增加的一个子网。

1. 包过滤路由器防火墙

将防火墙直接部署在内网(如企业办公网、校园网)与外网(互联网、其他外部网络)的连接处。

通常需选择高性能的状态检测防火墙:外网流量通常较大(如1Gbps以上),包过滤/状态检测防火墙速度快、开销小,适合处理海量边界流量;应用代理防火墙性能开销大,不适合作为唯一的边界防火墙。

2.单宿主堡垒主机模型

单宿主堡垒主机(屏蔽主机防火墙)模型由包过滤路由器和堡垒主机组成。

提供的安全等级比包过滤防火墙系统要高,因为它实现了网络层安全(包过滤)和应用层安全(代理服务),同时隐藏内部网络细节。

入侵者在破坏内部网络的安全性之前,必须首先渗透两种不同的安全系统。

3.双宿主堡垒主机

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

4.屏蔽子网防火墙

屏蔽子网模型用了两个 包过滤路由器和一个堡垒主机。

它是最安全的防火墙系统之一,因为在定义了"中立区"(DMZ,Demilitarized Zone)网络后,它支持网络层和应用层安全功能。网络管理员将堡垒主机、信息服务器、Modem组,以及其它公用服务器放在DMZ网络中。如果黑客想突破该防火墙那么必须攻破以上三个单独的设备。

DMZ(Demilitarized Zone,非军事区)是内网与外网之间的"中间区域",防火墙采用双机架构部署:

  • 外部防火墙:连接外网与DMZ,过滤外网到DMZ的流量;
  • 内部防火墙:连接DMZ与内网核心区(如数据库服务器、核心业务系统),过滤DMZ到内网核心区的流量;
  • DMZ区域放置"面向外网的公开服务":如Web服务器、邮件服务器、FTP服务器等。
相关推荐
DO_Community2 小时前
DigitalOcean推出AI智能体开发套件(ADK),让你的 AI Agent 从原型走向可用
服务器·人工智能·ai·agent·mcp
乾元2 小时前
AI 驱动的网络攻防演练与安全态势推演——从“规则检测”到“行为级对抗”的工程体系
网络·人工智能·安全·web安全·架构·自动化·运维开发
金士镧(厦门)新材料有限公司2 小时前
稀土氧化物:科技与环保领域的重要推动力
科技·安全·全文检索·生活·能源
可口码农2 小时前
Kwrt软路由从“路由模式”改为“交换机模式”,再改为旁路由模式接管 DHCP 的透明网关模式。
运维·服务器
源代码•宸2 小时前
goframe框架签到系统项目开发(用户认证、基于 JWT 实现认证、携带access token获取用户信息)
服务器·开发语言·网络·分布式·后端·golang·jwt
刺客xs2 小时前
TCP服务器并发编程
服务器·网络协议·tcp/ip
危笑ioi2 小时前
本地使用 virtualbox 部署 ubuntu 镜像
服务器
清平乐的技术专栏2 小时前
电脑参数自检-BIOS
运维·服务器·电脑
石油人单挑所有2 小时前
VsCode无法与远端服务器建立连接的解决方案
服务器·ide·vscode