🧩 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.nft
pourrait écraser la configuration actuelle denftables
, entraînant une perte des règles en place.
✅ Action recommandée :
-
Laisser
puppet.service
dé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
puppet
est 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.service
ne référence pas explicitement ce fichier Puppet :
→ Cela signifie que le fichier/etc/nftables/puppet.nft
n’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 --test
ou réactivepuppet.service
, cela risque d’écraser toutes les règles actuelles de pare-feu avec unflush ruleset
suivi de règles peut-être désuètes ou incomplètes.
✅ Recommandations :
-
Faire un backup de tous les fichiers
puppet*.nft
et*.nft
dans/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.