Désactiver le service rpcbind
Garantit que le service rpcbind.service (mappeur de ports ONC RPC) n'est ni activé au démarrage ni en cours d'exécution, sauf si l'hôte a réellement besoin de services RPC tels que NFS.
Vérifié sur l’état résolu en cours d’exécution (ex. sshd -T, sysctl, systemctl show), attrape les drop-ins et Include qu’une lecture de fichier raterait. Réserve : runtime ≠ persistance ; une valeur correcte maintenant peut ne pas survivre à un redémarrage.
Pavois vérifie la configuration effective, l’état résolu et réellement appliqué, pas un fichier. Les scanners basés fichier (OVAL/SCAP, Lynis) ratent les Include, drop-ins et défauts runtime ; ce check voit ce qui est réellement en vigueur.
Un mapping est une référence croisée vers l’endroit où chaque norme situe cette exigence, ancrée et recoupée, pas une affirmation d’équivalence. Un check réussi est une preuve vers ces références, comment le lire.
Pourquoi cette règle
rpcbind est le mappeur de ports des services ONC RPC (NFSv3, NIS, rquotad…) : il écoute sur les ports TCP/UDP 111 et indique aux clients distants quels ports dynamiques ces services utilisent. C'est une cible bien connue, il a été détourné pour des attaques DDoS par réflexion/amplification UDP et a historiquement porté des vulnérabilités RPC, en plus de divulguer l'ensemble des services RPC tournant sur l'hôte. Sur tout système qui n'est ni client ni serveur NFSv3/NIS, rpcbind est un poids mort qui expose inutilement le port 111 au réseau. Le désactiver réduit la surface d'attaque et supprime un vecteur d'amplification répandu.
Ce que vérifie Pavois
Pavois lit l'état effectif de rpcbind.service depuis systemd, en vérifiant qu'il n'est ni enabled ni running. Point clé : rpcbind est activé par socket : rpcbind.socket peut démarrer le démon à la demande même quand l'unité de service paraît au repos. Auditer l'état systemd réel (plutôt qu'un fichier de configuration ou la présence d'un paquet) reflète ce qui écoute effectivement sur le port 111. À compléter avec ss -lnp | grep :111 pour confirmer qu'aucun service n'est lié.
describe service('rpcbind.service') do
it { should_not be_enabled }
it { should_not be_running }
endComment vérifier qu’elle est appliquée
Exécutez systemctl is-enabled rpcbind.service et systemctl is-active rpcbind.service ; attendez disabled/masked et inactive. Vérifiez aussi le socket : systemctl is-active rpcbind.socket et ss -lnp | grep :111 (ne doit rien retourner).
Inspecter et investiguer
Inspectez journalctl -u rpcbind.service -u rpcbind.socket pour les événements d'activation et d'arrêt. systemctl show rpcbind.service -p ActiveState -p UnitFileState donne l'état lisible par machine. Confirmez la fermeture du port avec ss -tulnp | grep :111.
Remédiation
Le plan de durcissement de Pavois agit sur la ressource service nommée rpcbind avec les actions disable puis stop : il supprime l'activation au démarrage et arrête le démon en cours. Appliqué avec pavois harden apply. Remarque : si rpcbind.socket est aussi actif, il peut être nécessaire de le masquer également pour fermer totalement le port 111.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| action | disable, stop |
|---|---|
| name | rpcbind |
| resource | service |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Désactiver rpcbind cassera NFSv3, NIS et tout service dépendant de RPC (rquotad, rpc.statd, certains agents de sauvegarde). NFSv4 n'a pas besoin de rpcbind, donc les montages NFSv4 purs ne sont pas affectés. Avant d'appliquer : confirmez l'absence de montages NFSv3 (findmnt -t nfs,nfs3), d'exports NFS (exportfs -v) et de configuration cliente NIS. Si l'hôte est client/serveur NFSv3, excluez cette règle ou migrez d'abord vers NFSv4 pour éviter les échecs de montage.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| CIS | 2.1.12, 2.2.4 | direct | per OS, see the benchmark table | haute |
| PCI DSS | 2.2.4 | support | 4.0.1 | moyenne |
Chaque référence est une référence croisée ancrée dans le benchmark amont et recoupée avec le SCAP Security Guide et ansible-lockdown, pas une affirmation d’équivalence. Direct = une exigence prescriptive au niveau de la ligne ; support = une famille de contrôle abstraite (NIST) vers laquelle le check apporte une preuve. Comment lire un mapping.