web-dev-qa-db-fra.com

Que dois-je configurer pour m'assurer que mon logiciel utilise / dev / urandom?

Lors de la configuration d'un serveur, quelles modifications de configuration dois-je faire pour m'assurer que tous les logiciels utilisent /dev/urandom au lieu de /dev/random?

Certains serveurs n'ont pas beaucoup d'entropie dans le pool d'entropie (par exemple, les VPS). Si un composant logiciel utilise /dev/random, cela peut bloquer et ralentir mystérieusement le serveur. Existe-t-il des logiciels prêts à l'emploi utilisant /dev/random par défaut? Si oui, comment puis-je le configurer pour le forcer à utiliser /dev/urandom? Ce serait bien d'avoir une liste de contrôle des paramètres de configuration à définir lors de la configuration d'un nouvel environnement VPS.

28
D.W.

Conseils généraux

Tout programme écrit en Java

Ajouter

-Djava.security.egd=file:///dev/urandom switch

ou

-Djava.security.egd=file:/dev/./urandom

à l'invocation de ligne de commande utilisée pour démarrer le processus Java. (Sans cela, Java utilise /dev/random pour amorcer son SecureRandom class, ce qui peut entraîner un blocage inattendu de Java Java.)

Alternativement, dans le fichier de configuration $Java_HOME/jre/lib/security/Java.security, ajoutez la ligne

securerandom.source=file:/dev/./urandom

Footnote: Dans les exemples ci-dessus, vous avez besoin du nom de fichier au look fou, par exemple, le /./ supplémentaire, pour tromper Java en acceptant votre nom de fichier . Si vous utilisez simplement /dev/urandom, Java décide que vous ne le pensiez pas vraiment et remplace ce que vous avez écrit par /dev/random. Craziness!

Chroot

Si vous démarrez un service dans un environnement chroot, n'oubliez pas de créer le périphérique /dev/urandom dans votre répertoire chroot.

Logiciels spécifiques

Apache mod_ssl

Utilisation

SSLRandomSeed startup file:/dev/urandom 512
SSLRandomSeed connect file:/dev/urandom 512

dans le fichier de configuration mod_ssl. Évitez d'utiliser file:/dev/random avec SSLRandomSeed.

Cyrus POP3, IMAPD et SASL

Compilez Cyrus SASL (libsasl) avec l'indicateur de configuration --with-devrandom=/dev/urandom.

Par défaut, Cyrus POP3 lit à partir de /dev/random. Je n'ai trouvé aucun paramètre de configuration pour changer cela, à moins de recompiler.

OpenLDAP

Ajouter

TLSRandFile /dev/urandom

dans le fichier de configuration slapd.conf. (Cela devrait être la valeur par défaut, mais certains guides suggèrent de manière trompeuse d'utiliser /dev/random, donc vous voudrez peut-être revérifier.)

Postfix

Utilisation

tls_random_source = dev:/dev/urandom

dans le fichier de configuration main.cf, ou

Sudo postconf -e 'tls_random_source = dev:/dev/urandom'

à partir de la ligne de commande.

25
D.W.

Tout:

En tant que root, faites simplement ceci:

rm /dev/random
mknod /dev/random c 1 9

Maintenant /dev/random accédera en fait à la même logique sous-jacente que /dev/urandom.

Après cette modification, les deux /dev/random et /dev/urandom tirera du pool non bloquant. Le pool non bloquant puisera dans le pool bloquant, que le système remplira toujours.

19
David Schwartz

Grande initiative de D.W. pour lister différentes configurations logicielles (je suis déjà fan de D.W.)

MAIS - Comme je l'ai mentionné sur mon commentaire précédent , Sur mes serveurs VPS, je préfère personnellement toujours installer un seul composant ( forgé ) qui fait tout fonctionner correctement.

Peut-être que la suggestion de @ DavidSchwartz est la seule qui pourrait être encore plus facile, mais je ne l'ai pas essayée.

La configuration individuelle de chaque composant au lieu du pool d'entropie sous-jacent me semble un peu idiot pour être parfaitement honnête. Quand j'ai un problème, j'essaie de résoudre la cause profonde et de garder le principe SEC .

8
Yoav Aner

[~ # ~] php [~ # ~]

Pour les sessions PHP vous pouvez utiliser/dev/urandom comme source d'entropie

session.entropy_file = /dev/urandom
3
rook