简单防火墙

关注
简单防火墙

简单防火墙通常指以包过滤为核心、规则事先静态设定且不维护连接状态的防火墙,属于第一代防火墙技术。它在网络层和传输层逐包检查报头字段,再与规则表比对后决定转发还是丢弃,实现简单、处理速度快,对用户和应用保持透明[1]。由于不跟踪连接状态、也不解析应用层内容,其防护能力有限,多用于网络边界的第一道过滤或主机层面的基础防护[2]。

百科 图文
目录
  1. 定义
  2. 原理
  3. 发展历程
  4. 应用
  5. 局限
  6. 参见

定义

简单防火墙指以包过滤为核心功能、规则由管理员事先静态设定且不保存连接状态的防火墙,是第一代防火墙技术。它在网络层和传输层逐个读取数据包的报头,关注源地址、目的地址、协议类型以及源端口和目的端口,据此判断该包应当转发还是被丢弃[1]。常见形态是具备包过滤能力的路由器,也就是筛选路由器,也可以由主机上运行的轻量级防火墙程序承担[1]。

规则一般分为允许与拒绝两类动作,数据包命中某条规则时执行该规则的动作;若没有任何规则与之匹配,则由默认策略决定去留,出于安全考虑默认策略多设为拒绝[2]。这类防火墙对使用者和上层应用保持透明,终端通常无需安装专门软件或更改设置[1]。

原理

其基本工作方式是逐包比对。设备取出数据包的报头信息,与规则集中的条目按先后顺序比较,命中允许规则就依据路由表转发,命中拒绝规则就将其舍弃[1]。因为只读取报头、不解析应用层数据,单个数据包的处理开销很小,转发速度较快[1]。

一条过滤规则可以抽象写成 $R=(S,D,P,s,d)\rightarrow\{\text{允许},\text{拒绝}\}$,其中 $S$、$D$ 分别代表源地址与目的地址,$P$ 代表协议,$s$、$d$ 代表源端口与目的端口。数据包的处理流程可概括如下:


flowchart LR

A[数据包到达] --> B{按顺序匹配规则}

B -->|命中允许规则| C[依据路由表转发]

B -->|命中拒绝规则| D[丢弃数据包]

B -->|无匹配条目| E[按默认策略处理]

传统实现不保留连接状态,前后报文彼此独立看待,同一个数据包既可能被判为合法,也可能被伪造,因此这类设备也被称作无状态防火墙[3]。也正因为缺少上下文,管理员只能依靠地址、端口这类有限变量来做访问控制决策[3]。

发展历程

简单包过滤防火墙与路由器几乎同时出现,时间可追溯到20世纪80年代,早期方案由数字设备公司的工程师在路由功能的基础上扩展而来,随后被大量集成进路由器产品[4]。它是较早得到商用的防火墙技术,主要工作于OSI模型的下四层,通过拦截线路上的流量并检查每个数据包的属性来判断其是否符合既定规则[4]。

由于只看报头、不理会连接的来龙去脉,这种方式的不足逐渐显现,业界随后转向电路级与状态检测方案,由Check Point等厂商推动[4]。1989年至1990年前后,贝尔实验室在包过滤的基础上引入对连接状态的跟踪;1994年Check Point推出采用该技术的Firewall-1,成为较早面向普通管理员的商用产品[5]。状态检测普及之后,早期的包过滤方案被统称为无状态防火墙,两类技术在称呼上区分开来[4]。

简单防火墙的思路也延续到现代主机软件。乌班图自8.04长期支持版起在系统中提供统一防火墙ufw,它在iptables之上给出较为简洁的命令行界面,适合作为主机防火墙使用。面向Windows平台的simplewall则借助Windows筛选平台配置网络过滤,并不与系统自带防火墙的规则集交互[6]。此外还有基于.NET的轻量实现TinyWall,以及uruk这类体积仅十几KB的Shell脚本工具。

应用

最常见的部署位置是网络边界。多数路由器本身就支持访问控制列表,在小型网络中往往无需额外采购设备,直接在路由器上启用包过滤即可形成基础防护[1]。借助这类规则可以限制外网对特定地址和端口的访问,只保留必要的服务入口。

在主机层面,统一防火墙面向的是对防火墙概念不太熟悉的使用者,用少数几条命令即可完成放行端口、开启日志等操作;乌班图默认已安装该工具但初始处于停用状态,需要手动启用。桌面场景中,simplewall默认拦截所有程序的外联,由使用者逐项勾选允许联网的程序,并提供规则编辑器、丢弃数据包记录等功能[6]。阿里云开发者社区介绍的同类工具SimpleWall同样以自定义拦截程序联网为主要用途[7]。

局限

最突出的一点是无法理解应用层内容。它只检查报头、不解析应用数据,因而不能识别同一端口上承载的具体命令或内容,只要流量走的是规则放行的端口,就可能直接穿过[2]。日志与审计能力通常较弱,也难以按照用户身份而非地址来做过滤[2]。

无状态特性带来另一类问题。报头中的地址信息可以被伪造,设备难以分辨一个声称来自可信主机的数据包是否真实[3]。由于不记录连接历史,它无法判断某个数据包是否属于此前已经批准的会话,对UDP和ICMP报文的状态也难以识别[3]。

部署与维护同样存在难度。规则的先后顺序与内部一致性需要仔细设计,一旦配置不当,策略可能失效甚至形同虚设。规则条目增多还会占用更多处理资源,影响吞吐与转发性能[1]。因此它更适合承担基础的边界过滤,在安全要求较高的场合需要与状态检测等技术配合使用[1]。

参见

  • 包过滤 —— 本词条所依据的核心技术,通过检查数据包头部信息决定其去留。

  • 状态检测防火墙 —— 在包过滤基础上跟踪连接状态,弥补了简单防火墙无状态的不足。

  • 访问控制列表 —— 承载包过滤规则的主要形式,常见于路由器和防火墙设备。

  • 路由器 —— 简单防火墙最常见的部署载体,多数设备内置包过滤功能。

  • iptables —— Linux系统上常见的包过滤工具,也是统一防火墙等前端的管理对象。

  • Windows筛选平台 —— Windows上用于创建网络过滤程序的底层接口,多款轻量防火墙基于它实现。

参考资料

  1. 常见的防火墙技术介绍 [引用日期2026-10-14]
  2. 再谈防火墙及防火墙的渗透(2) [引用日期2026-10-14]
  3. **_Evolució del tipus de tràfic i dels firewalls_** [引用日期2026-10-14]
  4. The-history-of-the-Next-Generation-Firewall [引用日期2026-10-14]
  5. core.ac.uk 上的 PDF 文件 [引用日期2026-10-14]
  6. README [引用日期2026-10-14]
  7. SimpleWall简单防火墙 [引用日期2026-10-14]
词条评价
词条统计

浏览次数:2 次

阅读量:0 次 · 阅读完成量:0 次

最近更新:2026-10-13T21:05:31Z

历史版本

本条目引用的词条
包过滤 状态检测防火墙 访问控制列表 路由器 iptables Windows筛选平台