Answers:
根据此Ubuntu Wiki页面(向下滚动至“高级功能”),您可以通过将自己的iptables
规则放入以下文件中来实现所需的功能:
/etc/ufw/before.rules
/etc/ufw/after.rules
在before
任何之前的文件被评估ufw
被应用规则; 在after
之后的文件进行评估。(对于您的规则,还有相应的before6
和after6
规则文件ip6tables
。)
这些规则文件应采用不iptables-restore
兼容的语法,大概是因为ufw
只需使用即可加载它们iptables-restore
。最后,请注意,ufw
对规则文件进行任何更改后,都需要停止并重新启动。
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 enable)后仍然有效。
这确实是违反直觉的行为,根本没有记录在案。