由于某些原因,我需要通过编辑user.rules来向ufw添加规则,当我向它添加规则并执行sudo ufw reload时,规则就没有了。为什么会发生这种情况,以及如何通过手动编辑user.rules文件来添加规则?
发布于 2018-09-03 07:07:45
如果将自定义规则添加到/etc/ufw/ after*.rules中,则在重新加载后不会消失。
当在shell上输入有效的ufw命令(即自定义用户规则)时,它们会进入/etc/ufw/ user *.rules文件,并且这些文件将持续存在。
root@ubuntu:~# ufw allow 22/tcp
Rule added
Rule added (v6)
root@ubuntu:~# grep tcp.*22 /etc/ufw/user*.rules
/etc/ufw/user6.rules:### tuple ### allow tcp 22 ::/0 any ::/0 in
/etc/ufw/user6.rules:-A ufw6-user-input -p tcp --dport 22 -j ACCEPT
/etc/ufw/user.rules:### tuple ### allow tcp 22 0.0.0.0/0 any 0.0.0.0/0 in
/etc/ufw/user.rules:-A ufw-user-input -p tcp --dport 22 -j ACCEPT
root@ubuntu:~# iptables -L -n | grep dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22如果您直接编辑user*.rules,添加的规则(如果有效)将加载到ufw重新加载中,但在下次重新启动ufw服务时不会持续。
因此,将自定义规则添加到/etc/ufw/前面*. after*.rules或after*.rules中。
参考文献:
发布于 2019-08-22 09:12:21
我刚碰到了这个脚本,这是一个自动化主机构建的规则集。问题在于UFW如何验证/etc/ufw/user.rules。
只需手动向/etc/ufw/user.rules添加规则,如:
-A ufw-user-output -p tcp --dport 80 -j ACCEPT当在UFW启动时检查规则集是否正常时,将被清除,而没有附带的评论:
### tuple ### allow tcp 80 0.0.0.0/0 any 0.0.0.0/0 out因此,为了手动添加一条允许TCP/80在UFW重新加载中生存的规则,应该是:
### 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手动添加规则的注释不能是任意的:它必须是您通过CLI添加规则时生成的注释UFW。在本例中,使用TCP/80将是:
sudo ufw allow http/tcp验证此解决方案的
sudo ufw disablesudo vi /etc/ufw/user.rules-A ufw-user-output -p tcp --dport 80 -j ACCEPTsudo ufw enable您的手动添加的规则将被清除;它将无法在重新启动UFW之后存活下来。
重新创建解决方案的
sudo ufw disablesudo vi /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 ACCEPTsudo ufw enable手动添加的规则将保持不变。
是的,一个没有以注释作为前缀的正确语法的规则会失败验证并被清除,这是绝对疯狂的。对于声称不复杂的防火墙接口来说,这是多么讽刺;-)。
这把我逼疯了。希望这个解决办法能减轻别人的悲痛-
https://askubuntu.com/questions/1006834
复制相似问题