14.04 missing "/etc/init.d/ufw"? my firewall never auto starts
Solution 1:
I also do not have /etc/init.d/ufw and ufw was not auto starting on reboot. But I did this
sudo apt-get install iptables-persistent
On rebooting I checked with
sudo ufw status
It showed active, It always used to show inactive in previous reboots and I used to have to do
sudo ufw enable
I have not installed gufw, I am beginner desktop user, so I have no idea why it worked and whether it will work for you, but it seemed simpler, may be it will help somebody.
Solution 2:
[Check this first (I will validate it when I have time), properly configuring ufw may be the best thing to do, this answer here would then just be a fallback.]
Based on this answer and log tip from this answer, I added this:
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
to /etc/rc.local
before the exit 0
and now it properly loads ufw rules on boot!
But this is a user workaround and not a fix to the system...
I opted also to "change" the rules instead of applying them as default as suggest this answer, because I am not completely sure my custom rules are trouble free.
IMPORTANT: the "if" code did not work once, so I created the "while" code that til now has not caused trouble.
Solution 3:
For the effort that went into figuring out the solution, the answer is surprisingly simple.
In /etc/init/ufw.conf:
1) Comment out lines 9 - 11
2) Insert after line 11: start on startup
Fixes the whole problem, including logging to /var/log/ufw.log.
Note
If you have iptables-persistent
installed, you must disable it.
Move iptables-persistent
out of /etc/init.d and rename all the symlinks in rc0.d
-rcS.d
by making the 1st letter (S or K) lower case. (Or move them out.)