🧩 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 de nftables, 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 :

  1. 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.

  2. 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.

  3. 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.

  4. 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).

  5. 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Ă©active puppet.service, cela risque d’écraser toutes les règles actuelles de pare-feu avec un flush ruleset suivi de règles peut-ĂŞtre dĂ©suètes ou incomplètes.


âś… Recommandations :

  1. Faire un backup de tous les fichiers puppet*.nft et *.nft dans /etc/nftables.

  2. Supprimer le paquet Puppet (apt remove puppet) si sa présence est inutile.

  3. Documenter dans le rapport final cette source de conflit potentiel.