14.04缺少“/etc/init.d/ufw”? 我的防火墙从不自动启动

我需要知道如何修复丢失的“/etc/init.d/ufw”文件,是一些包还是一些命令?

我使用gufw启用它,但在重新启动时我的防火墙仍然关闭…

我创建了一个符号链接/etc/init.d/ufw -> /lib/init/upstart-job但我无法使其像start ufw一样工作(重启后都没有)。

我找到了这个文件/lib/ufw/ufw-init ,它看起来像一个init.d文件! 我可以复制或符号链接吗?

其他(可选)问题:
如何找到包含该文件的包? apt-cache search没有用..
我们可以安全地创建这样的脚本吗?
知道为什么会丢失吗?

实验值:
我的/etc/ufw/ufw.confENABLED=yes (但似乎没用)。
在我ufw enableiptables -L变得不同,因此ufw规则不会通过任何其他方式应用于启动。

PS:这个脚本也不起作用

 sudo ln -s /lib/ufw/ufw-init /usr/sbin/ufw-init sudo ln -s /lib/init/upstart-job /etc/init.d/ufw-init #sudo update-rc.d -f ufw-init remove sudo update-rc.d ufw-init defaults 99 sudo -k 

我也没有/etc/init.d/ufw,并且ufw在重启时没有自动启动。 但我这样做了

 sudo apt-get install iptables-persistent 

在重新启动时,我检查了

 sudo ufw status 

它显示活动,它总是用于在之前的重新启动中显示不活动,而我以前必须这样做

 sudo ufw enable 

我没有安装gufw,我是初学者桌面用户,所以我不知道它为什么有用,它是否适合你,但它看起来更简单,可能会对某人有所帮助。

[先检查一下 (我会在有空的时候validation它),正确配置ufw可能是最好的事情,这里的答案只会是一个后备。 ]

根据这个答案的答案和日志提示,我补充说:

 exec 2> /tmp/rc.local.log # send stderr from rc.local to a log file exec 1>&2 # send stdout to the same log file #set -x # tell sh to display commands before execution # this wont exit until successful! while ! ufw enable;do if ufw status |grep "Status: active";then break fi echo "Failed to apply ufw rules at `date`" >>/dev/stderr; sleep 10; done 

exit 0之前到/etc/rc.local ,现在它在启动时正确加载了ufw规则!

但这是一个用户解决方法,而不是系统的修复…

我选择“更改”规则而不是将它们作为默认值应用于建议这个答案 ,因为我不完全确定我的自定义规则是无故障的。

重要提示:“if”代码没有工作一次,所以我创建了“while”代码,直到现在还没有造成麻烦。

对于解决方案的努力,答案非常简单。

在/etc/init/ufw.conf中:

1)评论第9 – 11行
2)第11行后插入: start on startup

修复了整个问题,包括登录到/var/log/ufw.log。

注意
如果安装了iptables-persistent ,则必须禁用它。 将iptables-persistent移出/etc/init.d并通过将第一个字母(S或K)设置为小写来重命名rc0.drcS.d的所有符号链接。 (或者将它们移出。)

也许你的路径错了。 不是/etc/init.d/wfw不是/etc/init/ufw.conf

在rest的地方,我的名字中有ufw文件

 xxx@xxx ~/xxx $ sudo find / -name ufw* [sudo] password for xxx: /lib/ufw /lib/ufw/ufw-init-functions /lib/ufw/ufw-init /etc/bash_completion.d/ufw /etc/default/ufw /etc/init/ufw.conf /etc/logrotate.d/ufw /etc/ufw /etc/ufw/ufw.conf /usr/lib/python3/dist-packages/ufw-0.33_0ubuntu4.egg-info /usr/lib/python3/dist-packages/ufw /usr/share/doc/ufw /usr/share/man/man8/ufw-framework.8.gz /usr/share/man/man8/ufw.8.gz /usr/share/locale-langpack/en_CA/LC_MESSAGES/ufw.mo /usr/share/locale-langpack/en_GB/LC_MESSAGES/ufw.mo /usr/share/locale-langpack/en_AU/LC_MESSAGES/ufw.mo /usr/share/lintian/overrides/ufw /usr/share/ufw /usr/share/ufw/ufw.conf /usr/share/icons/Mint-X/apps/22/ufw-frontends.png /usr/share/icons/Mint-X/apps/48/ufw-frontends.png /usr/share/icons/Mint-X/apps/32/ufw-frontends.png /usr/share/icons/Mint-X/apps/16/ufw-frontends.png /usr/share/icons/Mint-X/apps/24/ufw-frontends.png /usr/share/icons/Mint-X/apps/scalable/ufw-frontends.svg /usr/sbin/ufw /var/lib/dpkg/info/ufw.md5sums /var/lib/dpkg/info/ufw.postinst /var/lib/dpkg/info/ufw.list /var/lib/dpkg/info/ufw.prerm /var/lib/dpkg/info/ufw.conffiles /var/lib/dpkg/info/ufw.templates /var/lib/dpkg/info/ufw.config /var/lib/dpkg/info/ufw.preinst /var/lib/dpkg/info/ufw.postrm /var/lib/dpkg/info/ufw.triggers /var/log/ufw.log.4.gz /var/log/ufw.log.2.gz /var/log/ufw.log.1 /var/log/ufw.log /var/log/ufw.log.3.gz 

从init文件输出

 cat /etc/init/ufw.conf # ufw - Uncomplicated Firewall # # The Uncomplicated Firewall is a front-end for iptables, to make managing a # Netfilter firewall easier. description "Uncomplicated firewall" # Make sure we start before an interface receives traffic start on (starting network-interface or starting network-manager or starting networking) stop on runlevel [!023456] console output pre-start exec /lib/ufw/ufw-init start quiet post-stop exec /lib/ufw/ufw-init stop 

编辑1

 xxx@xxx ~ $ sudo ufw status Status: active To Action From -- ------ ---- 22 ALLOW Anywhere 69 ALLOW Anywhere 22 ALLOW Anywhere (v6) 69 ALLOW Anywhere (v6) 

UFW只是iptables的包装器,它只处理filter表。 所以你可以同时使用UFW和iptables-persistent,但是从/etc/iptables/rules.v4中删除过滤规则,如果有的话,请保留其他规则(nat table,raw等)