Sur un système Linux, certaines applications ont besoin d’entropie pour gérer le chiffrement. Sans trop rentrer dans les détails, c’est ce qui caractérise le degré de désorganisation ou d’imprédictibilité du contenu en information d’un système. Sous CentOS, cette entropie est fournie par le service RNGD (Random Number Generator Daemon).
J’ai installé CentOS 7 sur pas mal de machines depuis sa sortie, et je constate que sur certains systèmes, RNGD ne démarre pas comme prévu. À en juger par les blogs divers et variés sur la toile, je ne suis pas le seul à avoir ce problème.
Voici une installation fraîche de CentOS 7 sur un de mes serveurs. Apparemment, tous les services du système n’ont pas démarré comme prévu.
# systemctl status ● amandine State: degraded Jobs: 0 queued Failed: 1 units ...
Afficher le service fautif.
# systemctl --failed UNIT LOAD ACTIVE SUB DESCRIPTION ● rngd.service loaded failed failed Hardware RNG Entropy Gatherer Daemon
Dans sa configuration par défaut, RNGD se base sur un périphérique /dev/hwrandom
qui n’existe pas sur notre machine. Pour corriger ce comportement, il faut éditer le fichier de configuration du service.
# /usr/lib/systemd/system/rngd.service [Unit] Description=Hardware RNG Entropy Gatherer Daemon [Service] ExecStart=/sbin/rngd -f -r /dev/urandom [Install] WantedBy=multi-user.target
Recharger la configuration.
# systemctl daemon-reload
Démarrer le service et vérifier son statut.
# systemctl start rngd # systemctl status rngd ● rngd.service - Hardware RNG Entropy Gatherer Daemon Loaded: loaded (/usr/lib/systemd/system/rngd.service; ...