如何在 Ubuntu 22.04 上安装和配置 UFW 防火墙

介绍

UFW 在 Ubuntu Linux 中的用途是什么?

UFW(简单防火墙)是 iptables 的前端,特别适合基于主机的防火墙。UFW 提供了一个用于管理 netfilter 的框架,以及一个用于操作防火墙的命令行界面。

UFW 是一款出色的防火墙工具,设计为在主机或服务器上运行。它允许或阻止传入和传出服务器的连接。您可以使用 UFW 阻止端口、IP 甚至整个子网。它不像 iptables 那样灵活,但对于基本操作来说要容易得多。

UFW 与 IPTables

在 Ubuntu 服务器上配置防火墙时,您有两个主要选项:ufw 和 iptables。这两种工具都提供防火墙功能,但在易用性和复杂性方面有所不同。

UFW 是 iptables 的前端,旨在简化配置防火墙的过程。它提供了用户友好的命令行界面,并允许您使用人类可读的语法来管理防火墙规则。UfW 提供了一组易于理解和配置的默认规则。

IPTables 允许您根据各种条件(例如 IP 地址、端口、协议等)定义规则,从而提供对网络流量的精细控制。IPTables 为您提供了更大的灵活性,但配置也稍微复杂一些。因此,请使用您最满意的一个。如果您使用 iptables,请记住它只影响 IPv4 - 如果您的服务器有 IPv6,您还需要使用 ip6tables。

在本文中,我们将向您展示如何在 Ubuntu 22.04 上安装和配置 UFW 防火墙。

如何安装UFW防火墙

要在 Ubuntu 上安装 UFW,请按照以下 3 个步骤操作。

第 1 步:通过 SSH 登录 Linux 系统

要安装 UFW,您需要通过 SSH 进入系统。

步骤 2:更新系统检查设置
sudo apt update
sudo apt upgrade

要检查 ufw 是否已安装,可以使用 which 命令:

which ufw

如果结果没有显示输出,则意味着 ufw 尚未安装,您应该像下面一样安装它。

第3步:安装UFW

sudo apt-get install ufw

ufw安装完成后,使用以下命令进行检查。安装后初始默认,UFW 将被禁用,因为它尚未激活,您必须手动启用它。

sudo ufw status verbose

-----------------------------
Output
Status: inactive

第四步:启用UFW,安装后激活UFW

要启用 UFW 并开始强制执行防火墙规则,请运行:

sudo ufw enable

要暂时禁用 UFW,请运行:

sudo ufw disable

如何配置 UFW 防火墙

使用ufw管理防火墙规则,添加/删除/恢复/重置ufw规则。

1.UFW检查状态

要检查 UFW 的当前状态,请运行以下命令:

sudo ufw status

这将显示 UFW 是否处于活动状态、默认输入和输出策略以及已创建的任何规则。

默认情况下,全新安装的 Ubuntu 22.04 将使 UFW 处于非活动状态。

2.UFW允许端口

要允许特定端口上的传入连接,您需要使用 UFW 允许该端口。例如,要允许端口 80 上的 HTTP 流量,请运行:

sudo ufw allow 80/tcp

这将允许端口 80 上的所有传入 TCP 连接。您还可以指定 IP 地址以仅允许特定主机:

sudo ufw allow from 192.168.1.100 to any port 80

要在端口 123 上同时允许 TCP 和 UDP 协议,请运行:

sudo ufw allow 123/tcp
sudo ufw allow 123/udp

3. UFW允许多个端口

要同时允许多个端口,请指定起始端口和结束端口:

sudo ufw allow 2000:2100/tcp

这将允许 2000 到 2100 之间的所有端口。您还可以在以逗号分隔的列表中指定端口:

sudo ufw allow 80,443,8080/tcp
sudo ufw allow 22,25,110/tcp

4. UFW 允许 HTTP/HTTPS 流量

允许传入 HTTP 和 HTTPS 流量是一项常见要求。您可以通过以下方式做到这一点:

sudo ufw allow 'Apache Full'

这将允许端口 80 上的 HTTP 流量和端口 443 上的 HTTPS 流量。

5.UFW允许SSH

要允许端口 22 上的传入 SSH 连接,请运行:

sudo ufw allow 22/tcp

这是使用 SSH 远程管理 Ubuntu 服务器所必需的。

6. UFW 允许 DNS 流量

DNS 在端口 53 上使用 UDP 协议。要允许传入 DNS 查询,请运行:

sudo ufw allow 53/udp

7.UFW允许VNC

要允许传入 VNC 连接(通常是端口 5900 ),请运行:

sudo ufw allow 5900/tcp

8.UFW拒绝端口

要阻止特定端口或协议,请使用拒绝而不是允许。例如,要阻止传入 SMTP 流量:

sudo ufw deny 25/tcp

关闭 tcp 和 udp 端口​​,将 80 替换为所需的端口号:

sudo ufw deny 80

对于端口范围,您可以使用以下语法:

ufw deny 1234:2345
ufw deny 1234:2345/tcp
ufw deny 1234:2345/udp

9. UFW 设置默认策略

默认情况下,UFW 传入策略设置为拒绝,这意味着所有传入流量都会被阻止。您可以使用以下方法更改此策略:

sudo ufw default deny incoming      # To deny all incoming traffic
sudo ufw default allow incoming     # To allow all incoming traffic

同样,您可以使用以下方法设置默认传出策略:

sudo ufw default deny outgoing
sudo ufw default allow outgoing

为了安全起见,建议保留默认的传入策略为拒绝。

10.UFW检查日志

您可以使用以下命令启用日志记录:

sudo ufw logging on

可以通过运行 sudo ufwlogging low|medium|high 来设置日志级别,从列表中选择低、中或高。默认设置较低。

UFW 将拒绝连接的日志保存在 /var/log/ufw.log 中。您可以使用以下命令查看日志文件:

sudo less /var/log/ufw.log

要启用详细日志记录,请运行:

sudo ufw logging verbose

然后 UFW 将记录所有允许和拒绝的连接。

11. UFW删除规则

语法如下,以编号列表格式列出当前所有规则:

sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere                   # accept Apache
[ 3] 443/tcp                    ALLOW IN    Anywhere                   # accept HTTPS connections
[ 4] 1194/udp                   ALLOW IN    Anywhere                   # OpenVPN server
[ 5] 3000:4000/tcp              ALLOW IN    Anywhere
[ 6] 3000:4000/udp              ALLOW IN    Anywhere

要删除第六条规则,请键入命令:

sudo ufw delete 6

您还可以删除特定端口的规则:

sudo ufw delete allow 80

要刷新所有 UFW 规则并恢复默认策略,请运行:

sudo ufw reset

12.UFW恢复默认

由于某种原因,您需要恢复/删除所有现有规则以返回到原始默认值,请使用重置选项执行以下操作:

sudo ufw disable
sudo ufw reset
sudo ufw enable

这将:
- 禁用 UFW
- 刷新现有规则
- 使用默认配置重新启用 UFW
这可确保 UFW 再次使用默认设置。

13.UFW启用IPv6

确保 /etc/default/ufw 文件中存在指令 IPV6=yes。例如:

cat /etc/default/ufw

结论

UFW 是一个功能强大的工具,如果配置正确,可以大大提高服务器的安全性。本参考指南涵盖了一些常用于在 Ubuntu 上配置防火墙的常见 UFW 规则。您的防火墙现已配置为允许(至少)SSH 连接。请务必允许服务器所需的任何其他传入连接,同时限制任何不必要的连接,以便您的服务器正常运行且安全。

THE END