🧩 Présence d’un système de configuration résiduel (Puppet)
Lors de l’inspection finale, le fichier suivant a été découvert :
/etc/nftables/puppet.nft
Ce fichier contient une directive flush ruleset suivie de plusieurs inclusions conditionnelles :
flush ruleset
include "custom-*.nft"
include "inet-filter.nft"
include "ip-nat.nft"
include "ip6-nat.nft"
Il est mentionné comme destiné à être utilisé pour des déploiements Puppet :
“puppet.nft is real configuration that the nftables service uses. To process either the -I flag must be specified.”
🔍 Analyse :
-
Puppet est installé sur le système, mais n'est ni activé ni en cours d'exécution :
â—Ź puppet.service - Puppet agent Loaded: loaded (/lib/systemd/system/puppet.service; disabled) Active: inactive (dead) -
Aucun mécanisme automatisé (cron ou systemd timer) ne semble déclencher Puppet de façon périodique.
-
Risque identifié : si Puppet venait à être redémarré manuellement ou par un autre mécanisme, le fichier
puppet.nftpourrait écraser la configuration actuelle denftables, entraînant une perte des règles en place.
✅ Action recommandée :
-
Laisser
puppet.servicedésactivé tant qu’il n’est pas utilisé intentionnellement. -
Documenter ou archiver les fichiers
puppet.nft,inet-filter.nft, etc. -
Supprimer Puppet s’il est confirmé qu’il n’est plus utilisé par l’organisation, afin d’éviter toute collision future dans la gestion du pare-feu.
-
Ce système a vraisemblablement utilisé Puppet pour gérer nftables à une certaine époque
📌 Indices concordants d’une gestion centralisée par Puppet :
-
Nom explicite du fichier :
/etc/nftables/puppet.nft→ Il est courant dans les déploiements Puppet d’avoir des fichiers nommés ainsi pour distinguer les règles générées ou validées par l’agent de configuration.
-
Commentaires typiques d’un usage Puppet :
Le fichier contient :# puppet-preflight.nft is only used by puppet for validating new configs # puppet.nft is real configuration that the nftables services uses.→ Ces commentaires sont manifestement rédigés pour un système Puppet actif qui applique la configuration automatiquement.
-
Structure modulaire par includes :
include "custom-*.nft" include "inet-filter.nft" include "ip-nat.nft" include "ip6-nat.nft"→ Structure hautement modulaire, typique des configurations générées ou gérées par un moteur comme Puppet, qui assemble dynamiquement les règles selon des rôles ou des classes.
-
Le service
puppetest présent mais désactivé :puppet.service; disabled; Active: inactive (dead)→ Tout laisse croire qu’il a été utilisé par le passé, puis désactivé, soit volontairement (changement de méthode de gestion), soit accidentellement (ex. : coupure d’un orchestrateur).
-
nftables.servicene référence pas explicitement ce fichier Puppet :
→ Cela signifie que le fichier/etc/nftables/puppet.nftn’est plus automatiquement appliqué au démarrage, ce qui confirme l’abandon de Puppet sans nettoyage complet.
🎯 Conclusion :
Il est quasi certain que ce serveur utilisait Puppet pour gérer le pare-feu nftables, et que cette gestion a été abandonnée sans désinstaller proprement l’agent Puppet ni supprimer les fichiers de configuration associés.
🚨 Risque actuel :
-
Si quelqu’un exécute à nouveau un
puppet agent --testou réactivepuppet.service, cela risque d’écraser toutes les règles actuelles de pare-feu avec unflush rulesetsuivi de règles peut-être désuètes ou incomplètes.
âś… Recommandations :
-
Faire un backup de tous les fichiers
puppet*.nftet*.nftdans/etc/nftables. -
Supprimer le paquet Puppet (
apt remove puppet) si sa présence est inutile. -
Documenter dans le rapport final cette source de conflit potentiel.