![UFW 防火墙规则排序?](https://linux22.com/image/607295/UFW%20%E9%98%B2%E7%81%AB%E5%A2%99%E8%A7%84%E5%88%99%E6%8E%92%E5%BA%8F%EF%BC%9F.png)
我在 UFW 中的服务器上制定了以下规则:
To Action From
-- ------ ----
22 ALLOW 217.22.12.111
22 ALLOW 146.200.200.200
80 ALLOW Anywhere
443 ALLOW Anywhere
22/tcp ALLOW 109.104.109.0/26
前两个规则是我们希望确保始终可以通过 SSH 访问的内部 IP(端口 22)。接下来的两个规则是允许从任何地方的任何 IP 地址进行 HTTP 和 HTTPS 查看。最后一条规则是允许从我们的代码部署系统进行 SSH。
我设置了一条ufw default deny
规则,但似乎没有显示出来。我是否还应该设置一条拒绝所有内容的最终规则?
如果我添加一条拒绝所有规则,上面规则出现的顺序会有什么不同吗?假设如果这个列表变长,在拒绝规则上方添加另一条允许规则是不可能的,这意味着我必须删除并重新添加一些规则?
答案1
如果您有兴趣重新排序您的 UFW 规则,这是一种方法。
$ sudo ufw status numbered
To Action From
-- ------ ----
[ 1] 22 ALLOW IN Anywhere
[ 2] 80 ALLOW IN Anywhere
[ 3] 443 ALLOW IN Anywhere
[ 4] 22 (v6) ALLOW IN Anywhere (v6)
[ 5] 80 (v6) ALLOW IN Anywhere (v6)
[ 6] 443 (v6) ALLOW IN Anywhere (v6)
[ 7] Anywhere DENY IN [ip-to-block]
假设您不小心将一条规则添加到了末尾,但您想将其添加到顶部。
首先,你需要将其从底部移除(7),然后再添加回去。
$ sudo ufw delete 7
请注意,请小心连续删除多个规则,它们的位置可能会改变!
将您的规则添加回最顶部 (1):
$ sudo ufw insert 1 deny from [ip-to-block] to any
答案2
该命令ufw status verbose
将显示默认规则。对于您的配置,您可能希望它显示
默认值:拒绝(传入)、允许(传出)
在这种情况下,您不需要单独的“拒绝一切”规则,其他规则的顺序也无关紧要。如果您确实想更改顺序,可以使用 在特定位置添加规则ufw insert [position] [rule text]
。您可以使用 获取规则的编号列表ufw status numbered
。
答案3
如果您熟悉命令生成的规则格式,您可以直接在和iptables-save
中编辑 ufw 的配置文件。即使您不熟悉,对于每个用户添加的规则,都有一个注释显示匹配的 ufw 命令供您参考。 根据需要更改顺序,然后保存。然后运行,新顺序将生效。这种方式比和命令 更快,但如果您不太确定,您可能应该在编辑之前备份。/etc/ufw/user.rules
/etc/ufw/user6.rules
sudo ufw reload
delete
insert