让我们看看一个非常简单易用的防火墙,UFW防火墙。 作为系统管理员,我们有责任确保我们工作的系统免受攻击者的侵害。 在网络安全方面有多种方法可以整合,但最基本的方法是从防火墙开始。 Linux 为其所有用户提供了一个非常强大且可定制的防火墙。
在任何 Linux 系统上使用网络时,操作或控制数据包的最常用方法是使用 IPTables 防火墙 界面。 但是对于需要基本配置并且不想深入防火墙的用户来说,IPTables 可能会变得非常复杂和复杂。
UFW 为普通用户弥补了这一差距。 UFW 为 IPTables 提供了一个界面,简化了防火墙配置,甚至初学者也可以使用它。 UFW防火墙如何工作? 如何设置UFW防火墙? 如何配置UFW防火墙? 我们将在本教程中回答所有这些问题。
目录
- 什么是 Ubuntu/Debian 中的 UFW 防火墙?
- 在 Ubuntu/Debian 中使用 UFW 防火墙
- UFW 配置文件在哪里?
- 在 Ubuntu 上配置 UFW
- 使用 UFW 防火墙允许和拒绝特定端口上的连接
- 使用 UFW 防火墙允许或拒绝端口范围
- 允许或拒绝 IP 地址和 IP 范围
- 允许或拒绝特定网络接口上的连接
- 删除现有的 UFW 规则
- 结论
什么是 Ubuntu/Debian 中的 UFW 防火墙?
UFW 或 简易防火墙 正是这个名字所暗示的。 它是一个防火墙配置实用程序,可为普通用户简化配置。 它与 IPTables 交互并使用 IPTables 进行更改,同时提供非常简单的命令用法。
在 Ubuntu/Debian 中使用 UFW 防火墙
在 Ubuntu 中,UFW 是预装的,但在 Debian 中,我们需要安装该软件包。 跑 apt install ufw
开始。
默认情况下,UFW 被禁用。 我们可以通过运行命令来确认这一点 ufw status.
要启用防火墙,我们将输入 ufw enable
.
root@ubuntu:~# ufw status Status: inactive root@ubuntu:~# ufw enable Command may disrupt existing ssh connections. Proceed with operation (y|n)? root@ubuntu:~# ufw status Status: active To Action From -- ------ ---- 22/tcp ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6)
UFW 配置文件在哪里?
UFW 配置文件是 /etc/default/ufw
其中包含 UFW 防火墙的基本默认设置。 此文件不允许您设置防火墙规则,但允许您设置防火墙如何处理未指定规则的数据包的默认策略。
在 Ubuntu 上配置 UFW
要配置防火墙,我们将从设置一些基本规则开始。 在服务器上,任何未明确打开的端口都应拒绝传入连接。 传出连接都应该被允许。 我们将使用以下命令激活这两个规则。
root@ubuntu:~# ufw default deny incoming Default incoming policy changed to 'deny' (be sure to update your rules accordingly) root@ubuntu:~# ufw default allow outgoing Default outgoing policy changed to 'allow' (be sure to update your rules accordingly)
现在我们已经设置了默认值,我们将为我们的目的配置特定的规则。
使用 UFW 防火墙允许和拒绝特定端口上的连接
现在我们知道 UFW 将拒绝所有传入的内容,并允许所有传出的内容。 让我们进一步缩小范围。 我们当然想拒绝一切,但仍然希望允许外部用户访问几个端口,因为 example, 我们的 web 服务器和 ssh 服务器。 我们首先允许 http 和 https 访问我们的服务器。
root@ubuntu:~# ufw allow http Rule added Rule added (v6) root@ubuntu:~# ufw allow https Rule added Rule added (v6) root@ubuntu:~#

同样,让我们 允许 ssh 流量.
root@ubuntu:~# ufw allow ssh
完成后,我们可以使用以下命令验证已添加到 UFW 规则列表中的所有规则 ufw状态。
root@ubuntu:~# ufw status Status: active To Action From -- ------ ---- 22/tcp ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6) 80/tcp (v6) ALLOW Anywhere (v6) 443/tcp (v6) ALLOW Anywhere (v6)

您可能已经注意到,规则已经添加了两次; 一次用于 IPv4,另一次用于 IPv6。 这是因为 Linux 内核将这些类型的 IP 视为不同的网络,并且像 IPTables 和 UFW 这样的接口实用程序通过分离两个 IP 版本(如不同的网络)以类似的方式进行交互。
如果您想指定端口号而不是协议,我们可以采用与上述命令类似的方式。
root@ubuntu:~# ufw deny 2020
这将拒绝端口 2020 上的所有流量。
使用 UFW 防火墙允许或拒绝端口范围
单独使用 UFW 防火墙允许或拒绝端口是一回事。 但是,当您使用大量需要打开以使应用程序工作的端口时,单独允许端口非常不方便。 让我们看看如何在 Debian 或 Ubuntu 中使用 UFW 防火墙允许多个端口。
我们将使用以下格式来指定端口范围。
root@ubuntu:~# ufw allow 2020:2025 ERROR: Must specify 'tcp' or 'udp' with multiple ports root@ubuntu:~# ufw allow 2020:2025/tcp Rule added Rule added (v6) root@ubuntu:~# ufw deny 2020:2025/udp Rule added Rule added (v6)
当使用单个端口时,我们不需要指定它必须是 TCP 还是 UDP 连接,但是对于多个端口,如果我们没有明确提及我们接受的连接类型,它将给我们一个错误。
允许或拒绝 IP 地址和 IP 范围
根据您希望网络的行为方式,您可以制定基于 IP 的规则来与击中防火墙的数据包进行交互。 让我们看一个 example 我想拒绝来自我的 10.1.1.151 的所有传出数据包。 现在,这是一个本地 IP 地址,但您可以对 WAN IP 地址执行相同操作。
root@ubuntu:~# ufw deny out from 10.1.1.151 to any root@ubuntu:~# ufw status Anywhere DENY OUT 10.1.1.151

最后一行确认所有流量都来了 从 10.1.1.151 和去 到 任何 IP 地址都将是 拒绝. 要将此命令用于传入流量,我们需要做的就是更改它所说的部分 出去 到 在.
要拒绝 IP 范围,您需要学习使用子网掩码。 使用位掩码无法拒绝特定的 IP 地址组。 要了解位掩码的工作原理以及如何对网络中的 IP 地址进行子网划分,这里是 维基页面 这非常详细地解释了这一点。
因此对于 example,如果我想将规则分配给 8 IP 地址,我将运行以下命令。
root@ubuntu:~# ufw allow out from 10.1.1.151/29 to any WARN: Rule changed after normalization Rule added
上述命令将智能计算子网中的第一个 IP 地址,并添加一条规则,该规则将自动包含所需的 IP 地址。 有关为上述命令添加的规则,请参见下面的屏幕截图。

此子网中包含 IP 10.1.1.151 的第一个 IP 地址是 10.1.1.144。
允许或拒绝特定网络接口上的连接
对于个人计算机,网络接口的数量将受到限制。 您将拥有一个以太网接口和一个 Wifi 接口。 对于服务器,更有可能的情况是您拥有更多端口。 您可能还有虚拟端口和物理端口。
在这种情况下,如果您希望一个接口被拒绝与外部网络的连接,那么当我们可以简单地指定网络接口的名称时,指定 IP 地址是没有意义的。
如何找到系统中的网络接口? 随着 如果配置 命令。 如果您在没有任何选项的情况下单独键入命令,您将看到系统上所有活动的接口。 随着 -一种 选项,甚至显示禁用的选项。

要使用其中一个接口,我们将运行以下命令。
root@ubuntu:~# ufw allow in on ens3 to any Rule added Rule added (v6) root@ubuntu:~# ufw status To Action From Anywhere on ens3 ALLOW Anywhere Anywhere (v6) on ens3 ALLOW Anywhere (v6)
删除现有的 UFW 规则
我们可以使用 编号 选项 ufw状态 命令。
root@ubuntu:~# ufw status numbered

随着 ufw删除 命令,我们可以指定左边的数字来删除相邻的规则。
root@ubuntu:~# ufw delete 15 Deleting: allow in on ens3 Proceed with operation (y|n)? y Rule deleted (v6)
如您在下面的屏幕截图中所见,以上将从列表中删除第 15 条规则。

结论
强大的防火墙配置是服务器管理员应该开始的第一个也是最容易访问的安全措施。 无论您的设置仅包括单个服务器,还是具有专用于处理防火墙的系统的多台服务器,学习在 Debian 中使用 UFW 或在 Ubuntu 中使用 UFW 都是保护系统安全的关键。
这 手册页 对于 UFW 防火墙,您可以根据需要深入了解更详细的功能。 我们希望本教程对您有用。