即使在非活动状态下也能查看配置的规则

Bry*_*yan 89 firewall ufw

我想知道是否有可能让 UFW 列出配置的防火墙规则,即使它没有启用。我此时只有对服务器的 ssh 访问权限,如果没有配置允许 ssh 的规则,我不想启用 UFW。但是,由于当前未启用 UFW,因此当我运行“ufw status”时,我只会收到“inactive”消息。

是否有我可以使用的特殊标志,或者甚至可以查看一些配置文件,以查看即使禁用防火墙也配置了哪些规则?

Sim*_*mon 140

现在有一个ufw show added命令可以为您列出配置的规则,即使防火墙处于非活动状态。它是作为此错误报告的修复程序添加的,并在 v0.33 中添加

所以现在你可以这样做:

# ufw status
Status: inactive
# ufw allow ssh
Rules updated
Rules updated (v6)
# ufw show added
Added user rules (see 'ufw status' for running firewall):
ufw allow 22
# ufw enable
Firewall is active and enabled on system startup
# ufw status
Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere
22 (v6)                    ALLOW       Anywhere (v6)
Run Code Online (Sandbox Code Playgroud)

输出的格式也ufw show added使得为每个规则编写删除命令变得更加容易。

  • 根据错误报告:这是在 2012 年 8 月发布的 ufw 0.33 版中添加的。 (3认同)

jds*_*and 31

在通过 CLI 命令启用防火墙之前,目前无法显示您输入的规则。但是,您可以直接检查规则文件。/lib/ufw/user*.rules 包含通过“ufw”CLI 命令控制的规则。例如:

 $ sudo grep '^### tuple' /lib/ufw/user*.rules
Run Code Online (Sandbox Code Playgroud)

这将显示如下输出(对于使用 'sudo ufw allow OpenSSH 添加的规则):

 /lib/ufw/user.rules:### tuple ### allow tcp 22 0.0.0.0/0 any 0.0.0.0/0 OpenSSH - in
Run Code Online (Sandbox Code Playgroud)

“元组”是 ufw 在内部用于跟踪规则的速记,可以解释为以下之一:

 ### tuple ### <action> <proto> <dst port> <dst> <src port> <src> <direction>
 ### tuple ### <action> <proto> <dst port> <dst> <src port> <src> <dst app name> <src app name> <direction>
Run Code Online (Sandbox Code Playgroud)

能够添加另一个状态命令来支持这一点可能很有用。请考虑提交错误。

  • 他们添加了命令`ufw show added`,另见下面@Simon 的回答 (17认同)
  • 在我看来,将文件放在 `/lib` 中很奇怪 (5认同)
  • @pqnet也许他们同意'因为在某些时候他们将其移至不再是`/lib/ufw/user*.rules`,现在是`/etc/ufw/user*.rules` (3认同)

arr*_*nge 18

一般规则在/etc/ufw. 用户定义的规则在/lib/ufw/user*.


小智 12

在 Ubuntu 16.04 中,用户定义的规则存储在/etc/ufw/user.rules. 因此,您可以通过以下方式查看规则:

sudo cat /etc/ufw/user.rules
Run Code Online (Sandbox Code Playgroud)

  • @Ville,不要那样做。改用`sudo ufw show added`。 (3认同)