如何在 Debian 12、11 或 10 上安装 UFW

UFW(简单防火墙)是一款用于管理 Linux 系统上的防火墙规则的简单工具。它简化了配置防火墙的过程,对于可能觉得传统 iptables 具有挑战性的新用户来说尤其有用。UFW 提供了一种通过简单命令创建和管理防火墙规则的简便方法,使其既易于使用又有效。

UFW 的技术特点包括:

  • 使用方便:简化了常见防火墙任务的命令。
  • 预配置的配置文件:附带常用服务的配置文件。
  • 日志记录:允许轻松配置日志来监控活动。
  • IPv6 支持:完全支持IPv6。
  • 可扩展:可以通过附加规则进行扩展,以实现更高级的设置。

对于新用户来说,UFW 通常比 iptables 更好,因为它隐藏了复杂性,同时仍提供强大的安全功能。它允许用户快速设置防火墙规则,而无需了解 iptables 的详细语法和操作,从而减少出错的机会。

本指南将向您展示如何在 Debian 12、11 或 10 上安装和配置 UFW,涵盖基本命令和技巧,以帮助您有效地管理防火墙。

通过 APT 命令安装 UFW(简单防火墙)

如果您是 Debian Linux 和命令终端的新手,学习使用防火墙保护系统可能会很困难。幸运的是,Debian 用户可以轻松使用 Uncomplicated Firewall (UFW) 来管理其系统的安全。

在安装 UFW 之前,必须确保您的系统是最新的,以避免安装过程中出现任何冲突。运行以下命令来更新您的系统:

sudo apt update && sudo apt upgrade

请注意,如果您的 Linux 内核已更新,您可能需要重新启动系统。

系统更新后,您可以通过运行以下命令安装 UFW:

sudo apt install ufw

与 Ubuntu 等其他基于 Debian 的发行版不同,UFW 并非默认安装在 Debian 中。因此,手动安装 UFW 至关重要。

安装 UFW 后,您需要通过运行以下命令来启用该服务:

sudo systemctl enable ufw --now

此命令将在启动时启用 UFW 服务,确保您的系统在重启后仍然受到保护。

最后,必须验证 UFW 的状态以确保其正常运行。您可以通过运行以下命令来检查 UFW 服务的状态:

systemctl status ufw

运行上述命令后,您已成功安装 UFW 并确保其正常运行。下一步,我们将探索如何使用 UFW 保护您的系统。

启用UFW防火墙

现在 UFW 已安装并运行,防火墙将被启用。默认情况下,UFW 会阻止所有传入流量并允许所有出站流量。启用防火墙可确保您的系统通过阻止未经授权的访问而受到保护。

要启用 UFW,请运行以下命令:

sudo ufw enable

运行该命令后,您将收到一条确认消息,表明防火墙已激活,并将在您重新启动系统时自动启动。以下是示例输出:

Firewall is active and enabled on system startup

一旦防火墙处于活动状态,它将阻止进入您系统的所有流量,保护您免受未经授权的访问。但是,值得注意的是,这也可能阻止一些合法流量,例如对您需要的服务的访问。

检查 UFW 状态

启用 UFW 防火墙后,验证规则是否有效且配置正确至关重要。您可以使用以下命令检查防火墙的状态:

sudo ufw status verbose

运行此命令将显示防火墙的当前状态,包括任何活动规则和为传入和传出流量设置的默认策略。

要更简洁地查看防火墙规则,您可以使用“编号”选项。此选项按编号顺序显示防火墙规则,使识别和管理它们更加容易。使用以下命令按编号顺序列出防火墙规则:

sudo ufw status numbered

编号输出以更有条理的方式显示规则,使其更容易识别和管理。您可以使用规则编号通过“delete”命令修改或删除特定规则。

总之,验证防火墙的状态对于确保您的系统免受未经授权的访问至关重要。使用此步骤中概述的命令,您可以快速检查 UFW 防火墙的状态并识别任何错误配置。

设置 UFW 默认策略

UFW 防火墙的默认设置是阻止所有传入连接并允许所有出站连接。此配置最安全,因为它可确保未经授权的用户未经明确许可无法连接到您的系统。要允许传入连接,您必须创建特定规则,允许基于 IP 地址、程序、端口或这些因素的组合的流量。

要修改UFW规则,可以在终端中输入以下命令:

拒绝所有传入连接:

sudo ufw default deny incoming

允许所有传出连接:

sudo ufw default allow outgoing

默认情况下,UFW 已启用默认规则。但是,您可以修改这些规则以满足您的特定需求。例如,如果您想阻止所有传出连接并仅允许特定的出站连接,则可以使用以下命令相应地调整规则:

阻止所有传出连接:

sudo ufw default deny outgoing

值得注意的是,如果您需要找到默认的 UFW 防火墙策略,您可以在 /etc/default/ufw 文件中找到它们。此文件包含 UFW 的配置设置,包括传入和传出流量的默认策略。通过修改此文件中的设置,您可以自定义防火墙规则以满足您的特定安全需求。

其他 UFW 命令

以下部分将介绍 UFW 的一些基本方面。默认情况下,大多数桌面用户只需阻止传入连接并允许所有传出流量即可,这适用于大多数环境。但是,UFW 提供了对桌面和服务器有用的其他配置。下面将显示一些使用 UFW 的示例。

查看 UFW 应用程序配置文件

如果您有兴趣了解有关通过 UFW 提供的应用程序配置文件的更多信息,可以通过运行以下命令来查看它们:

sudo ufw app list

这将显示所有可用应用程序配置文件的列表。请务必记住,应用程序列表可能会根据您在系统上安装的软件而有所不同。

UFW 应用程序配置文件的一个有用功能是获取有关特定配置文件的更多信息。为此,请运行以下命令:

sudo ufw app info [application]

将 [应用程序] 替换为您要了解更多信息的名称。此命令将提供应用程序及其使用的端口的简要描述。这在调查开放端口并尝试确定它们属于哪个应用程序时很有用。

在 UFW 上启用 IPv6

如果您的 Debian 系统配置了 IPv6,则必须确保 UFW 配置为支持 IPv6 和 IPv4 流量。默认情况下,UFW 应自动启用对两个版本的 IP 的支持;但是,最好确认这一点。

为此,请使用以下命令打开默认的 UFW 防火墙文件:

sudo nano /etc/default/ufw

打开文件后,找到以下行:

IPV6=yes

如果该值设置为“否”,请将其更改为“是”,然后按保存文件 CTRL+O 进而 CTRL+X 退出。

对文件进行更改后,您需要重新启动 UFW 防火墙服务以使更改生效。为此,请运行以下命令:

sudo systemctl restart ufw

这将使用新配置重新启动 UFW 防火墙服务,以支持 IPv6 流量。

允许 UFW SSH 连接

SSH(安全外壳)对于远程访问 Linux 服务器至关重要。但是,默认情况下,UFW 不允许 SSH 连接。这可能会带来问题,特别是如果您远程启用了防火墙,因为您可能会发现自己被锁定。要允许 SSH 连接,您需要按照以下步骤操作。

首先,通过输入以下命令启用 SSH 应用程序配置文件:

sudo ufw allow ssh

如果您为默认端口 22 以外的 SSH 连接设置了自定义监听端口(例如端口 3541),则必须通过键入以下内容在 UFW 防火墙上打开该端口。

sudo ufw allow 3541/tcp

以下命令可用于阻止所有 SSH 连接或更改端口并阻止旧端口。

使用以下命令阻止所有 SSH 连接(确保可以进行本地访问):

sudo ufw deny ssh/tcp

如果更改自定义 SSH 端口,请打开一个新端口并关闭现有端口,例如:

sudo ufw deny 3541/tcp 

启用 UFW 端口

UFW 可以允许应用程序或服务访问特定端口。本节将介绍如何为 Web 服务器打开 HTTP(端口 80)和 HTTPS(端口 443)端口以及如何允许端口范围。

要允许 HTTP 端口 80,您可以使用以下任一命令:

通过应用程序配置文件允许:

sudo ufw allow 'Nginx HTTP

按服务名称允许:

sudo ufw allow http

按端口号允许:

sudo ufw allow 80/tcp

要允许 HTTPS 端口 443,您可以使用以下任一命令:

通过应用程序配置文件允许:

sudo ufw allow 'Nginx HTTPS'

按服务名称允许:

sudo ufw allow https

按端口号允许:

sudo ufw allow 443/tcp

如果您想同时允许 HTTP 和 HTTPS 端口,可以使用以下命令:

sudo ufw allow 'Nginx Full'

UFW 允许端口范围

您可以允许单个端口和端口范围。打开端口范围时,必须识别端口协议。

要允许具有 TCP 和 UDP 协议的端口范围,请使用以下命令:

sudo ufw allow 6500:6800/tcp
sudo ufw allow 6500:6800/udp

或者,您可以使用以下命令一次允许多个端口:

sudo ufw allow 6500, 6501, 6505, 6509/tcp
sudo ufw allow 6500, 6501, 6505, 6509/udp

允许 UFW 上的远程连接

在 UFW 上启用远程连接对于网络目的至关重要,只需几个简单的命令即可快速完成。本节介绍如何通过 UFW 允许远程连接到您的系统。

UFW 允许特定 IP 地址

您可以使用以下命令允许特定 IP 地址连接到您的系统。当您需要仅允许特定系统连接到您的服务器时,这很有用,您可以指定它们的 IP 地址。

sudo ufw allow from 192.168.55.131

UFW 允许特定端口上的特定 IP 地址

您可以使用以下命令允许 IP 连接到系统上的特定端口。例如,如果您需要允许 IP 连接到系统的端口 3900,则可以使用以下命令:

sudo ufw allow from 192.168.55.131 to any port 3900

允许子网连接到指定端口

您可以使用以下命令允许子网中一系列 IP 连接到特定端口。当您需要允许来自特定范围 IP 的连接时,这很有用,您可以指定要允许连接的子网。

sudo ufw allow from 192.168.1.0/24 to any port 3900

此命令将把从 192.168.1.1 到 192.168.1.254 的所有 IP 地址连接到端口 3900。

允许特定网络接口

如果需要允许连接到特定网络接口,可以使用以下命令。当您有多个网络接口并且需要允许连接到特定接口时,这很有用。

sudo ufw allow in on eth2 to any port 3900

通过使用这些命令,您可以轻松地通过 UFW 允许远程连接到您的系统,同时保持其安全性。

拒绝 UFW 上的远程连接

如果您发现某个 IP 地址有可疑或不需要的流量,您可以使用 UFW 拒绝来自该地址的连接。UFW 默认拒绝所有传入连接,但您可以创建规则来阻止来自特定 IP 或 IP 范围的连接。

例如,要阻止来自单个 IP 地址的连接,可以使用以下命令:

sudo ufw deny from 203.13.56.121

如果黑客使用同一子网内的多个 IP 地址攻击您的系统,您可以通过以 CIDR 表示法指定 IP 范围来阻止整个子网:

sudo ufw deny from 203.13.56.121/24

您还可以创建规则以拒绝对被阻止的 IP 或 IP 范围的特定端口的访问。例如,要阻止来自同一子网到端口 80 和 443 的连接,您可以使用以下命令:

sudo ufw deny from 203.13.56.121/24 to any port 80
sudo ufw deny from 203.13.56.121/24 to any port 443

值得注意的是,阻止传入连接可能是一种有效的安全措施,但并非万无一失。黑客仍然可以使用 IP 欺骗等技术来伪装其真实 IP 地址。因此,实施多层安全措施很重要,而不能仅仅依赖 IP 阻止。

删除 UFW 规则

删除不必要或不需要的 UFW 规则对于维护有序且高效的防火墙至关重要。您可以通过两种不同的方式删除 UFW 规则。首先,要使用其编号删除 UFW 规则,您需要通过键入以下命令列出规则编号:

sudo ufw status numbered

输出将显示编号的 UFW 规则列表,允许您识别要删除的规则。确定要删除的规则的编号后,键入以下命令:

sudo ufw delete [rule number]

例如,假设您要删除 IP 地址 1.1.1.1 的第三条规则。在这种情况下,您需要通过运行“sudo ufw status numbered”命令来找到规则编号,然后在终端中输入以下命令:

sudo ufw delete 3

删除不再需要的规则有助于维护防火墙的安全性和效率。

访问和查看 UFW 日志

UFW 防火墙会记录所有事件,因此定期查看这些日志对于识别潜在的安全漏洞或排除网络故障至关重要。默认情况下,UFW 日志记录设置为低,这对于大多数桌面系统来说已经足够了。但是,服务器可能需要更高级别的日志记录才能捕获更多详细信息。

您可以将 UFW 的日志记录级别调整为低、中或高,或完全禁用它。要将 UFW 日志记录级别设置为低,请使用以下命令:

sudo ufw logging low

要将 UFW 日志记录设置为中:

sudo ufw logging medium

要将 UFW 日志记录设置为高:

sudo ufw logging high

最后一个选项是完全禁用日志记录;请确保您对此感到满意,并且不需要日志检查。

sudo ufw logging off

要查看 UFW 日志,您可以在默认位置 /var/log/ufw.log 中找到它们。使用 tail 命令,您可以查看实时日志或打印出指定数量的最近日志行。例如,要查看日志的最后 30 行,请使用以下命令:

sudo ufw tail /var/log/ufw.log -n 30

查看日志可以帮助您确定哪些 IP 地址正在尝试连接到您的系统并识别任何可疑或未经授权的活动。此外,查看日志可以帮助您了解网络流量模式、优化网络性能并识别可能出现的任何问题。

测试 UFW 规则

在应用 UFW 防火墙规则之前对其进行测试以确保其按预期工作始终是一个好主意。“–dry-run”标志允许您查看未实际应用的更改。对于高度关键的系统来说,这是一个有用的选项,可以防止意外更改。

要使用“--dry-run”标志,请输入以下命令:

sudo ufw --dry-run enable

要禁用“--dry-run”标志,只需使用以下命令:

sudo ufw --dry-run disable

重置 UFW 规则

有时,您可能需要将防火墙重置为原始状态,阻止所有传入连接并允许传出连接。这可以使用“reset”命令完成:

sudo ufw reset

确认重置,输入以下内容:

sudo ufw status

输出应为:

Status: inactive 

重置完成后,防火墙将处于非活动状态,您需要重新启用它并开始添加新规则。需要注意的是,重置命令应谨慎使用,因为它会删除所有现有规则,如果操作不当,可能会使您的系统容易受到攻击。

如何查找所有开放端口(安全检查)

系统安全应是重中之重,确保安全的方法之一是定期检查开放端口。UFW 默认阻止所有传入连接,但有时端口可能会无意或出于正当理由而保持开放。在这种情况下,了解哪些端口是开放的以及开放的原因至关重要。

检查开放端口的一种方法是使用 Nmap,这是一个著名且值得信赖的网络探索工具。要安装 Nmap,请先键入以下命令进行安装。

sudo apt install nmap

接下来,输入以下命令找到系统的内部 IP 地址:

hostname -I

示例输出:

192.168.50.45

使用 IP 地址运行以下命令:

nmap 192.168.50.45

Nmap 将扫描您的系统并列出所有开放端口。如果您发现任何不确定的开放端口,请在关闭或阻止它们之前对其进行调查,因为它可能会破坏服务或将您锁定在系统之外。

根据本教程中的信息,您可以创建自定义 UFW 规则来关闭或限制开放端口。UFW 默认阻止所有传入连接,因此请确保在实施更改之前不要阻止合法流量。

UFW 管理 APT 命令

删除 UFW 防火墙

UFW 是一款管理防火墙规则和保护 Debian 系统的有用工具。但是,在某些情况下,您可能需要禁用或删除它。

如果您想暂时禁用 UFW,可以输入以下命令:

sudo ufw disable

这将关闭防火墙,允许所有流量通过系统。

另一方面,如果您需要从系统中完全删除 UFW,则可以使用以下命令执行此操作:

sudo apt remove ufw

但是,必须注意的是,从系统中完全删除 UFW 可能会使其容易受到外部攻击。除非您有可靠的替代方案来管理系统的防火墙或了解如何使用 IPTables,否则不建议删除 UFW。

因此,在删除 UFW 之前,请确保您有其他解决方案来维护系统安全并防止未经授权的访问。

结论

Joshua James
跟我来
Joshua James 的最新帖子 (查看全部)

发表评论