> For the complete documentation index, see [llms.txt](https://handbook.bsdcn.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://handbook.bsdcn.org/di-34-zhang-fang-huo-qiang/34.1.-gai-shu.md).

# 34.1.概述

防火墙能过滤进出系统的流量。防火墙可以使用一个或多个“规则”集，检查进入或离开网络连接的网络数据包，并决定允许流量通过还是阻止它。防火墙的规则可以检查数据包的一个或多个特征，如协议类型、源主机地址或目标主机地址、源端口或目标端口。

防火墙可以增强主机或网络的安全性。它们可以用于执行以下一项或多项操作：

* 保护并隔离内部网络的应用程序、服务和机器免受来自公共互联网的不良流量。
* 限制或禁用内部网络的主机访问公共互联网服务。
* 支持网络地址转换（NAT），使内部网络可以使用私有 IP 地址，并通过单一 IP 地址或自动分配的公共地址共享池与公共互联网共享单一连接。

FreeBSD 内置了三种防火墙：PF、IPFW 和 IPFILTER，也称为 IPF。FreeBSD 还提供了两种流量整形工具，用于控制带宽使用：[altq(4)](https://man.freebsd.org/cgi/man.cgi?query=altq\&sektion=4\&format=html) 和 [dummynet(4)](https://man.freebsd.org/cgi/man.cgi?query=dummynet\&sektion=4\&format=html)。ALTQ 通常与 PF 紧密关联，而 dummynet 与 IPFW 紧密关联。每个防火墙都使用规则来控制进出 FreeBSD 系统的数据包访问，尽管它们的方式不同，且每种防火墙都有不同的规则语法。

FreeBSD 提供了多种防火墙，以满足不同用户的需求和偏好。每个用户应评估哪种防火墙最能满足他们的需求。

通过阅读本章，你将了解：

* 如何定义数据包过滤规则。
* FreeBSD 内置的防火墙之间的区别。
* 如何使用和配置 PF 防火墙。
* 如何使用和配置 IPFW 防火墙。
* 如何使用和配置 IPFILTER 防火墙。

在阅读本章之前，你应该：

* 理解基本的 FreeBSD 和互联网概念。

> **注意**
>
> 所有防火墙都通过检查数据包控制字段的值来工作，因此防火墙规则集的创建者必须了解 TCP/IP 的工作原理，数据包控制字段中不同值的含义，以及这些值如何在正常会话中使用。有关详细介绍，请参阅 [Daryl's TCP/IP Primer](http://www.ipprimer.com/)。
