# 33.2.防火墙的概念

规则集包含一组规则，这些规则根据数据包中包含的值来决定是否放行或阻止数据包。主机之间的双向数据包交换构成了一个会话对话。防火墙规则集处理来自公共互联网的数据包，以及系统响应这些数据包所产生的数据包。每个 TCP/IP 服务都由其协议和监听端口预定义。指向特定服务的数据包来自使用非特权端口的源地址，并且目标是目标地址上的特定服务端口。所有上述参数都可以用作选择标准来创建规则，从而放行或阻止服务。

要查找未知的端口号，请参阅 **/etc/services**。或者，访问 <https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers>，进行端口号查找，以找出特定端口号的用途。

查看这个链接了解 [特洛伊木马使用的端口](http://web.archive.org/web/20150803024617/http://www.sans.org/security-resources/idfaq/oddports.php)。

FTP 有两种模式：主动模式和被动模式。它们的区别在于如何获取数据通道。被动模式更安全，因为数据通道是由发起 FTP 会话的客户端获得的。要了解有关 FTP 和不同模式的详细解释，请参阅 <http://www.slacksite.com/other/ftp.html>。

防火墙规则集可以是“排他性”或“包容性”的。排他性防火墙允许所有流量通过，除非流量与规则集匹配。包容性防火墙则反之，它仅允许匹配规则的流量通过，阻止其他所有流量。

包容性防火墙提供了更好的控制出站流量的能力，因此对于提供公共互联网服务的系统来说，它是更好的选择。它还控制了来自公共互联网的流量，决定哪些流量可以访问私有网络。所有不匹配规则的流量都会被阻止并记录。包容性防火墙通常比排他性防火墙更安全，因为它们显著减少了允许不良流量的风险。

> **注意**
>
> 除非另有说明，本章中的所有配置和示例规则集都创建包容性防火墙规则集。

安全性可以通过使用“有状态防火墙”进一步加强。这种类型的防火墙会跟踪打开的连接，只允许与现有连接匹配或打开新的允许连接的流量。

有状态过滤将流量视为一个双向数据包交换的会话。当规则中指定了状态时，防火墙会动态生成每个预期数据包的内部规则。它具有足够的匹配能力来确定一个数据包是否适合会话。如果数据包不符合会话模板，它会被自动拒绝。

当会话完成时，它会从动态状态表中移除。

有状态过滤使得用户可以专注于阻止或放行新的会话。如果新的会话被放行，所有后续数据包将自动允许，任何伪造的数据包都会被自动拒绝。如果新的会话被阻止，则它的任何后续数据包都不会被允许。有状态过滤提供了先进的匹配能力，能够防御攻击者采用的各种攻击方法。

NAT（网络地址转换）功能使防火墙后面的私有局域网能够共享一个由 ISP 分配的单一 IP 地址，即使该地址是动态分配的。NAT 使得局域网中的每台计算机都能访问互联网，而无需为多个互联网账户或 IP 地址支付额外的费用。

NAT 会自动将每个系统的私有局域网 IP 地址转换为单一公共 IP 地址，当数据包从防火墙出口向公共互联网发送时。它还会对返回的数据包执行反向转换。

根据 RFC 1918，以下 IP 地址范围被保留用于私有网络，这些地址永远不会直接路由到公共互联网，因此可以与 NAT 一起使用：

* `10.0.0.0/8`
* `172.16.0.0/12`
* `192.168.0.0/16`

> **警告**
>
> 在使用防火墙规则时，务必 *小心谨慎*. 某些配置 *可能会将管理员锁定* 在服务器之外。为了安全起见，建议在本地控制台上执行初始防火墙配置，而不是通过 ssh 远程操作。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://book.bsdcn.org/hanbook/di-33-zhang-fang-huo-qiang/33.2.-fang-huo-qiang-de-gai-nian.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
