UFW 对我来说运行得很好,除了有些情况不起作用...
我希望能够手动添加另一条在启动时应用的规则?
- 我应该把这条规则放在哪里?
- 我该如何让它在启动时启动?
- 我如何才能让它与 UFW 良好配合?
答案1
根据这个 Ubuntu 维基页面iptables
(向下滚动到“高级功能”),您可以通过将自己的规则放入以下文件来实现您想要的功能:
/etc/ufw/before.rules
/etc/ufw/after.rules
在应用before
任何规则之前会评估文件;在应用规则之后会评估文件。(对于您的规则,还有相应的规则文件。)ufw
after
before6
after6
ip6tables
这些规则文件应采用iptables-restore
-兼容语法,大概是因为ufw
只需使用 即可加载它们。最后,请注意,对规则文件进行任何更改后,iptables-restore
都需要停止并重新启动。ufw
答案2
UFW 将清除任何手动添加规则,/etc/ufw/user.rules
其中不是以评论开头:
### tuple ### allow tcp 80 0.0.0.0/0 any 0.0.0.0/0 out
-A ufw-user-output -p tcp --dport 80 -j ACCEPT
当 UFW 在启动时对规则进行健全性检查时,它会期望出现一条附带的注释。如果是不是现在,即使规则的语法正确,UFW 仍会清除它。
不要随意使用评论:它必须是 UFW 通过 cli 创建用户规则时插入的注释,即:
sudo ufw allow http/tcp
因此,如果您想在简单文件的规则集中预先植入一系列规则,您仍然需要通过 UFW 的 CLI 界面创建规则,以了解规则通过验证并持久所需的注释的语法。
尝试上述操作,带注释和不带注释,然后重新加载上面的示例 HTTP 规则;您会注意到,只有带注释的手动添加的规则在重启后才能继续存在(ufw 启用) 的 UFW。
这确实是违反直觉的行为,而且根本没有记录。