, , , , ,

Debian : firewalld à l'état "not running" au démarrage

Le service est installé et configuré pour se lancer au démarrage mais lorsque la machine est redémarrée le pare-feu n'est pas à l'état running

# Après redémarrage
firewall-cmd --state
not running

Depuis la ligne de commande, si on exécute systemctl start firewalld.service le service se lance normalement et les logs ne remontent pas d'erreur. Le pare-feu s'active manuellement sans problème.

Si on affiche le détail du service via la commande systemctl cat firewalld.service, on peut voir une directive Conflicts :

[Unit]
Description=firewalld - dynamic firewall daemon
Before=network-pre.target
Wants=network-pre.target
After=dbus.service
After=polkit.service
Conflicts=iptables.service ip6tables.service ebtables.service ipset.service nftables.service
Documentation=man:firewalld(1)
 
[Service]
ExecStart=/usr/sbin/firewalld --nofork --nopid
ExecReload=/bin/kill -HUP $MAINPID
# supress to log debug and error output also to /var/log/messages
...

Par défaut, sur Debian nftables.service est actif. Désactiver et masquer le service :

systemctl disable nftables.service 
systemctl mask nftables.service 

On redémarre pour vérifier le comportement du système après modification :

systemctl reboot
 
firewall-cmd --state 
running

Après désactivation du service nftables.service, le service firewalld.service se lance normalement dès le démarrage/redémarrage de la machine.

Références