← Toutes les règles
SOCLE-RUN-SVC-022// systemd servicesfaibleruntime effectif

Activer le service collecteur d'entropie du générateur matériel d'aléa (RNG)

Garantit que le service rngd.service (collecteur d'entropie du RNG matériel) est activé au démarrage et en cours d'exécution, alimentant le pool d'entropie du noyau avec de l'aléa matériel.

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.

Un PASS prouve✓ actif maintenant? sur disque? survit au rebootle verdict qualifié →
FedoraRHEL 8 / Rocky 8 / AlmaLinux 8CIS 4.0.0RHEL 9 / Rocky 9 / AlmaLinux 9CIS 2.0.0

Pourquoi cette règle

rngd transfère de l'aléa depuis une source matérielle (instruction CPU RDRAND, un TPM ou un HWRNG dédié) vers le périphérique aléatoire du noyau. Une entropie suffisante est le socle de toute la cryptographie : clés de session TLS, clés d'hôte SSH, sels de hachage de mots de passe et génération de tokens en dépendent tous. Sur les serveurs et surtout dans les VM, le pool d'entropie peut s'épuiser au démarrage, provoquant une génération de clés lente ou bloquante et, dans le pire des cas, des valeurs aléatoires prévisibles qui affaiblissent les clés. Faire tourner rngd maintient le pool en bonne santé pour des opérations cryptographiques à la fois rapides et robustes.

Ce que vérifie Pavois

Pavois vérifie l'état effectif de rngd.service via systemd (service('rngd.service')), en contrôlant qu'il est à la fois enabled et running. Cela détecte un démon installé mais jamais démarré ou planté, une vérification de fichier ou de paquet signalerait un succès alors que le pool d'entropie ne reçoit en réalité rien.

describe service('rngd.service') do
  it { should be_enabled }
  it { should be_running }
end

Comment vérifier qu’elle est appliquée

Exécutez systemctl is-enabled rngd.service et systemctl is-active rngd.service ; attendez enabled et active. Confirmez la santé du pool avec cat /proc/sys/kernel/random/entropy_avail (doit rester confortablement élevé, plusieurs centaines et plus).

Inspecter et investiguer

Consultez journalctl -u rngd.service pour la source d'entropie sélectionnée et les éventuelles erreurs (par ex. aucun RNG matériel trouvé). systemctl show rngd.service -p ActiveState -p UnitFileState donne l'état lu par Pavois. Le niveau d'entropie en direct est visible dans /proc/sys/kernel/random/entropy_avail.

Remédiation

Le plan de durcissement de Pavois agit sur la ressource service nommée rngd avec les actions enable puis start : il active l'unité au démarrage et la lance immédiatement. Appliqué avec pavois harden apply.

Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :

actionenable, start
namerngd.service
resourceservice
pavois harden plan local

où la cible est local, un alias SSH user@hôte, ou un conteneur , Docs

Impact & précautions

Activer rngd est très peu risqué et améliore généralement la disponibilité des opérations cryptographiques. Seule réserve : sur du matériel ou des VM dépourvus de source RNG utilisable, rngd peut échouer à démarrer (aucune source), sans danger, mais la règle restera non conforme ; dans ce cas, appuyez-vous plutôt sur le jitterentropy/CRNG intégré au noyau, ou exposez un RNG virtualisé à l'invité (virtio-rng). Avant d'appliquer : sur bare metal confirmez l'existence d'un HWRNG ; en VM assurez-vous que l'hyperviseur expose virtio-rng pour que le démon ait une source à lire.

Sources & références