UFW代表“不复杂的防火墙”,是用于管理iptables(netfilter)防火墙规则的用户友好前端。它是 Ubuntu 的默认防火墙配置工具,也可用于其他流行的Linux发行版,例如 Debian 和Arch Linux。

在本教程中,我们将介绍如何列出和删除UFW防火墙规则。

先决条件

运行UFW命令的用户必须是 sudo 用户。

列出UFW规则

管理防火墙时最常见的任务之一就是列出规则。

您可以使用以下方法检查UFW的状态并列出所有规则:

1
sudo ufw status

如果禁用了UFW,您将看到以下内容:

1
Status: inactive

否则,如果UFW处于活动状态,则输出将打印所有活动防火墙规则的列表:

1
2
3
4
5
6
Status: active

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

要获取更多信息,请使用status verbose

1
sudo ufw status verbose

输出将包含有关日志记录,默认策略和新配置文件的信息:

1
2
3
4
5
6
7
8
9
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

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

使用status numbered获取所有活动规则的顺序和ID号。当您要插入新的编号规则或根据编号删除现有规则时,此功能很有用。

1
sudo ufw status numbered
1
2
3
4
5
6
Status: active

To Action From
-- ------ ----
[ 1] 22/tcp ALLOW IN Anywhere
[ 2] 22/tcp (v6) ALLOW IN Anywhere (v6)

删除UFW规则

有两种删除UFW规则的方法:

  • 按规则编号
  • 按规格

如果要通过SSH删除防火墙规则,请确保不要通过删除允许SSH流量的规则将自己锁定在远程服务器之外。默认情况下, SSH监听端口22

通过规则编号删除UFW规则比较容易,因为您只需要找到并键入要删除的规则编号,而不是完整的规则。

按规则编号删除UFW规则

要先按编号删除UFW规则,您需要列出规则并找到要删除的规则的编号:

1
sudo ufw status numbered

该命令将为您提供所有防火墙规则及其编号的列表:

1
2
3
4
5
6
7
8
Status: active

To Action From
-- ------ ----
[ 1] 22/tcp ALLOW IN Anywhere
[ 2] 80/tcp ALLOW IN Anywhere
[ 3] 443/tcp ALLOW IN Anywhere
[ 4] 8069/tcp ALLOW IN Anywhere

一旦您知道规则编号,请使用ufw delete命令后跟要删除的规则编号。

例如,要删除编号为4的规则,您可以输入:

1
sudo ufw delete 4

系统将提示您确认要删除规则:

1
2
3
Deleting:
allow 22/tcp
Proceed with operation (y|n)? y

输入y,点击Enter,规则将被删除:

1
Rule deleted

每次删除规则时,规则编号都会更改。为了安全起见,请务必先列出规则,然后再删除其他规则。

按规范删除UFW规则

删除规则的第二种方法是先使用ufw delete命令,然后再使用规则。

例如,如果您添加了使用以下命令打开端口2222的规则:

1
sudo ufw allow 2222

您可以输入以下内容来删除规则:

1
sudo ufw delete allow 2222

重置UFW并删除所有规则

重置UFW将禁用防火墙,并删除所有活动规则。当您要还原所有更改并重新开始时,此功能很有用。

要重置UFW,请输入以下命令:

1
sudo ufw reset

结论

您已经了解了如何列出和删除UFW防火墙规则。配置防火墙时,始终只允许系统正常运行所必需的那些传入连接。