如何在 Ubuntu/Debian 中设置和配置 UFW 防火墙

[ad_1]

让我们看看一个非常简单易用的防火墙,UFW防火墙。 作为系统管理员,我们有责任确保我们工作的系统免受攻击者的侵害。 在网络安全方面有多种方法可以整合,但最基本的方法是从防火墙开始。 Linux 为其所有用户提供了一个非常强大且可定制的防火墙。

在任何 Linux 系统上使用网络时,操作或控制数据包的最常用方法是使用 IPTables 防火墙 界面。 但是对于需要基本配置并且不想深入防火墙的用户来说,IPTables 可能会变得非常复杂和复杂。

UFW 为普通用户弥补了这一差距。 UFW 为 IPTables 提供了一个界面,简化了防火墙配置,甚至初学者也可以使用它。 UFW防火墙如何工作? 如何设置UFW防火墙? 如何配置UFW防火墙? 我们将在本教程中回答所有这些问题。

UFW 和 iptables 插图

什么是 Ubuntu/Debian 中的 UFW 防火墙?

UFW 或 简易防火墙 正是这个名字所暗示的。 它是一个防火墙配置实用程序,可为普通用户简化配置。 它与 IPTables 交互并使用 IPTables 进行更改,同时提供非常简单的命令用法。

在 Ubuntu/Debian 中使用 UFW 防火墙

在 Ubuntu 中,UFW 是预装的,但在 Debian 中,我们需要安装该软件包。 跑 apt install ufw 开始。

默认情况下,UFW 被禁用。 我们可以通过运行命令来确认这一点 ufw status. 要启用防火墙,我们将输入 ufw enable.

[email protected]:~# ufw status
Status: inactive

[email protected]:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)?

[email protected]:~# ufw status
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)

UFW 配置文件在哪里?

UFW 配置文件是 /etc/default/ufw 其中包含 UFW 防火墙的基本默认设置。 此文件不允许您设置防火墙规则,但允许您设置防火墙如何处理未指定规则的数据包的默认策略。

Ufw 防火墙默认配置文件

在 Ubuntu 上配置 UFW

要配置防火墙,我们将从设置一些基本规则开始。 在服务器上,任何未明确打开的端口都应拒绝传入连接。 传出连接都应该被允许。 我们将使用以下命令激活这两个规则。

[email protected]:~# ufw default deny incoming
Default incoming policy changed to 'deny'
(be sure to update your rules accordingly)

[email protected]:~# ufw default allow outgoing
Default outgoing policy changed to 'allow'
(be sure to update your rules accordingly)

现在我们已经设置了默认值,我们将为我们的目的配置特定的规则。

使用 UFW 防火墙允许和拒绝特定端口上的连接

现在我们知道 UFW 将拒绝所有传入的内容,并允许所有传出的内容。 让我们进一步缩小范围。 我们当然想拒绝一切,但仍然希望允许外部用户访问几个端口,例如,我们的 Web 服务器和 ssh 服务器。 我们首先允许 httphttps 访问我们的服务器。

[email protected]:~# ufw allow http
Rule added
Rule added (v6)

[email protected]:~# ufw allow https
Rule added
Rule added (v6)
[email protected]:~#
Ufw 允许 Http Https 流量Ufw 允许 Http Https 流量

同样,让我们 允许 ssh 流量.

[email protected]:~# ufw allow ssh

完成后,我们可以使用以下命令验证已添加到 UFW 规则列表中的所有规则 ufw状态。

[email protected]:~# 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)
Ufw 状态 允许的端口Ufw 状态 允许的端口

您可能已经注意到,规则已经添加了两次; 一次用于 IPv4,另一次用于 IPv6。 这是因为 Linux 内核将这些类型的 IP 视为不同的网络,并且像 IPTables 和 UFW 这样的接口实用程序通过分离两个 IP 版本(如不同的网络)以类似的方式进行交互。

如果您想指定端口号而不是协议,我们可以采用与上述命令类似的方式。

[email protected]:~# ufw deny 2020

这将拒绝端口 2020 上的所有流量。

使用 UFW 防火墙允许或拒绝端口范围

单独使用 UFW 防火墙允许或拒绝端口是一回事。 但是,当您使用大量需要打开以使应用程序工作的端口时,单独允许端口非常不方便。 让我们看看如何在 Debian 或 Ubuntu 中使用 UFW 防火墙允许多个端口。

我们将使用以下格式来指定端口范围。

[email protected]:~# ufw allow 2020:2025
ERROR: Must specify 'tcp' or 'udp' with multiple ports

[email protected]:~# ufw allow 2020:2025/tcp
Rule added
Rule added (v6)

[email protected]:~# ufw deny 2020:2025/udp
Rule added
Rule added (v6)

当使用单个端口时,我们不需要指定它必须是 TCP 还是 UDP 连接,但是对于多个端口,如果我们没有明确提及我们接受的连接类型,它将给我们一个错误。

允许或拒绝 IP 地址和 IP 范围

根据您希望网络的行为方式,您可以制定基于 IP 的规则来与击中防火墙的数据包进行交互。 让我们看一个示例,我想拒绝来自 10.1.1.151 的所有传出数据包。 现在,这是一个本地 IP 地址,但您可以对 WAN IP 地址执行相同操作。

[email protected]:~# ufw deny out from 10.1.1.151 to any

[email protected]:~# ufw status
Anywhere                   DENY OUT    10.1.1.151
Ufw 拒绝来自 IP 地址的传出流量Ufw 拒绝来自特定 IP 地址的传出流量

最后一行确认所有流量都来了 10.1.1.151 和去 任何 IP 地址都将是 拒绝. 要将此命令用于传入流量,我们需要做的就是更改它所说的部分 出去.

要拒绝 IP 范围,您需要学习使用子网掩码。 使用位掩码无法拒绝特定的 IP 地址组。 要了解位掩码是如何工作的,以及如何对网络中的 IP 地址进行子网划分,请参阅 wiki 页面,其中详细解释了这一点。

例如,如果我想将规则分配给 8 IP 地址,我将运行以下命令。

[email protected]:~# ufw allow out from 10.1.1.151/29 to any
WARN: Rule changed after normalization
Rule added

上述命令将智能计算子网中的第一个 IP 地址,并添加一条规则,该规则将自动包含所需的 IP 地址。 有关为上述命令添加的规则,请参见下面的屏幕截图。

Ufw 允许 IP 地址的子网范围Ufw 允许 IP 地址的子网范围

此子网中包含 IP 10.1.1.151 的第一个 IP 地址是 10.1.1.144。

允许或拒绝特定网络接口上的连接

对于个人计算机,网络接口的数量将受到限制。 您将拥有一个以太网接口和一个 Wifi 接口。 对于服务器,更有可能的情况是您拥有更多端口。 您可能还有虚拟端口和物理端口。

在这种情况下,如果您希望一个接口被拒绝与外部网络的连接,那么当我们可以简单地指定网络接口的名称时,指定 IP 地址是没有意义的。

如何找到系统中的网络接口? 随着 如果配置 命令。 如果您在没有任何选项的情况下单独键入命令,您将看到系统上所有活动的接口。 随着 -一个 选项,甚至显示禁用的选项。

Ifconfig 命令输出Ifconfig 命令输出

要使用其中一个接口,我们将运行以下命令。

[email protected]:~# ufw allow in on ens3 to any
Rule added
Rule added (v6)

[email protected]:~# ufw status
To                         Action      From
Anywhere on ens3           ALLOW       Anywhere
Anywhere (v6) on ens3      ALLOW       Anywhere (v6)

删除现有的 UFW 规则

我们可以使用 编号 选项 ufw状态 命令。

[email protected]:~# ufw status numbered
Ufw 状态规则编号Ufw 状态规则编号

随着 ufw删除 命令,我们可以指定左边的数字来删除相邻的规则。

[email protected]:~# ufw delete 15
Deleting:
 allow in on ens3
Proceed with operation (y|n)? y
Rule deleted (v6)

如您在下面的屏幕截图中所见,以上将从列表中删除第 15 条规则。

Ufw 规则已删除Ufw 规则已删除

结论

强大的防火墙配置是服务器管理员应该开始的第一个也是最容易访问的安全措施。 无论您的设置仅包括单个服务器,还是具有专用于处理防火墙的系统的多台服务器,学习在 Debian 中使用 UFW 或在 Ubuntu 中使用 UFW 都是保护系统安全的关键。

手册页 对于 UFW 防火墙,您可以根据需要深入了解更详细的功能。 我们希望本教程对您有用。

[ad_2]

Related Posts