ufw ne commence pas pour moi au démarrage. Mon fichier /etc/ufw/ufw.conf ressemble à ceci:
# /etc/ufw/ufw.conf
#
# Set to yes to start on boot. If setting this remotely, be sure to add a rule
# to allow your remote connection before starting ufw. Eg: 'ufw allow 22/tcp'
ENABLED=yes
# Please use the 'ufw' command to set the loglevel. Eg: 'ufw logging medium'.
# See 'man ufw' for details.
LOGLEVEL=low
Il semble donc que tout devrait bien commencer. Cependant, juste après le démarrage, je reçois toujours ceci:
$ Sudo ufw status
Status: inactive
Utiliser le script "service" pour le démarrer ne semble pas fonctionner:
$ Sudo service ufw start
$ Sudo ufw status
Status: inactive
Si je force un rechargement, cela fonctionnera très bien:
$ Sudo ufw reload
Firewall reloaded
$ Sudo ufw status
Status: active
Et après cela, le script "service" fonctionne parfaitement:
$ Sudo ufw status
Status: active
$ Sudo service ufw stop
$ Sudo ufw status
Status: inactive
$ Sudo service ufw start
$ Sudo ufw status
Status: active
Comment puis-je faire démarrer UFW au démarrage?
Modifier:
J'utilise Ubuntu 18.04, donc systemd est utilisé. systemctl is-enabled
rapporte comme suit:
$ Sudo ufw status verbose
Status: inactive
$ Sudo systemctl is-enabled ufw.service
enabled
J'ai aussi essayé ceci:
$ Sudo systemctl enable ufw
Synchronizing state of ufw.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable ufw
$ Sudo ufw status verbose
Status: inactive
Et après un redémarrage, il reste inactif. journalctl -p err
ne rapporte rien d'intéressant. journalctl -u ufw
rapporte:
$ journalctl -u ufw
...<snip>...
-- Reboot --
May 26 12:53:36 matt-laptop systemd[1]: Started Uncomplicated firewall.
Donc, il semble bien que c’est tenter de démarrer ufw ... il semble juste que ce n’est pas réellement faire ça!
Je suis venu avec une solution de toutes sortes. J'ai fait cette modification à /lib/systemd/system/ufw.service
:
$ diff -u ufw.service.orig ufw.service
--- ufw.service.orig 2018-05-26 13:45:48.696356561 +0100
+++ ufw.service 2018-05-26 13:46:04.443673265 +0100
@@ -2,7 +2,7 @@
Description=Uncomplicated firewall
Documentation=man:ufw(8)
DefaultDependencies=no
-Before=network.target
+After=network.target
[Service]
Type=oneshot
Ainsi, ufw
démarrera après que le réseau est en place au lieu d’avant. Cela semble faire l'affaire - ufw est toujours activé après le démarrage. Je ne sais pas si c'est la meilleure façon de faire les choses. Je crains qu'il y ait un court intervalle de temps entre le démarrage du réseau et celui du pare-feu ... mais au moins, cela commence, ce qui est mieux qu'avant!
Peut-être que quelqu'un peut trouver une meilleure solution. Ou peut-être que c'est la bonne façon de faire les choses - dans quel cas est-ce un bogue dont le démarrage par défaut est avant le réseau?
Modifier:
Une solution encore meilleure est:
$ diff -u ufw.service.orig ufw.service
--- ufw.service.orig 2018-05-26 13:45:48.696356561 +0100
+++ ufw.service 2018-05-26 14:17:22.030681670 +0100
@@ -2,7 +2,7 @@
Description=Uncomplicated firewall
Documentation=man:ufw(8)
DefaultDependencies=no
-Before=network.target
+After=network-pre.target
[Service]
Type=oneshot
Selon cette page
https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/
le network-pre.target a cet objectif:
"Son objectif principal est d'utiliser avec les services de pare-feu qui souhaitent établir un pare-feu avant que toute interface réseau ne soit opérationnelle"
Ce qui me fait vraiment me demander pourquoi il n'a pas été réglé sur ceci par défaut. Le régler à cette valeur semble résoudre tous mes problèmes.