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.conf
有ENABLED=yes
(但似乎没用)。
在我ufw enable
, iptables -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.d
– rcS.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等)