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

Aqu*_*wer 5 firewall 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(但似乎没用)。
iptables -L在 I 之后变得不同ufw enable,因此 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
Run Code Online (Sandbox Code Playgroud)

Aqu*_*wer 2

[首先检查这一点(当我有时间时我会验证它),正确配置 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
Run Code Online (Sandbox Code Playgroud)

之前/etc/rc.localexit 0现在它可以在启动时正确加载 ufw 规则!

但这是用户的解决方法,而不是对系统的修复......

我还选择“更改”规则,而不是按照此答案的建议将它们应用为默认规则,因为我不完全确定我的自定义规则不会出现问题。

重要提示:“if”代码一次不起作用,所以我创建了“while”代码,到目前为止还没有造成麻烦。


270*_*974 1

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

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
Run Code Online (Sandbox Code Playgroud)

初始化文件的输出

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
Run Code Online (Sandbox Code Playgroud)

编辑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)
Run Code Online (Sandbox Code Playgroud)