it-swarm-eu.dev

Was muss ich konfigurieren, um sicherzustellen, dass meine Software / dev / urandom verwendet?

Welche Konfigurationsänderungen muss ich beim Einrichten eines Servers vornehmen, um sicherzustellen, dass die gesamte Software /dev/urandom Anstelle von /dev/random Verwendet?

Einige Server haben nicht viel Entropie im Entropiepool (z. B. VPSs). Wenn eine Softwarekomponente /dev/random Verwendet, blockiert sie möglicherweise und führt dazu, dass der Server auf mysteriöse Weise langsamer wird. Gibt es eine Software, die standardmäßig mit /dev/random Ausgeliefert wird? Wenn ja, wie kann ich es so konfigurieren, dass es die Verwendung von /dev/urandom Erzwingt? Es wäre schön, eine Checkliste mit Konfigurationseinstellungen zu haben, die beim Einrichten einer neuen VPS-Umgebung festgelegt werden müssen.

28
D.W.

Allgemeine Hinweise

Jedes in Java geschriebene Programm

Hinzufügen

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

oder

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

zum Befehlszeilenaufruf, der zum Starten des Prozesses Java) verwendet wird. (Ohne dies Java verwendet /dev/random, um seinen SecureRandom class, was dazu führen kann, dass Java Code unerwartet blockiert wird.)

Alternativ können Sie in der Konfigurationsdatei $Java_HOME/jre/lib/security/Java.security Die Zeile hinzufügen

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

Fußnote : In den obigen Beispielen benötigen Sie den verrückt aussehenden Dateinamen, z. B. den zusätzlichen /./, Um Java) dazu zu bringen, Ihren Dateinamen zu akzeptieren. Wenn Sie nur /dev/urandom Verwenden, Java entscheidet, dass Sie es nicht wirklich gemeint haben, und ersetzt das, was Sie geschrieben haben, durch /dev/random. Verrücktheit!

Chroot

Wenn Sie einen Dienst in einer Chroot-Umgebung starten, vergessen Sie nicht, das Gerät /dev/urandom In Ihrem Chroot-Verzeichnis zu erstellen.

Spezifische Software

Apache mod_ssl

Verwenden

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

in der Konfigurationsdatei mod_ssl. Vermeiden Sie die Verwendung von file:/dev/random Mit SSLRandomSeed.

Cyrus POP3, IMAPD und SASL

Kompilieren Sie Cyrus SASL (libsasl) mit dem Konfigurationsflag --with-devrandom=/dev/urandom.

Standardmäßig liest Cyrus POP3 aus /dev/random. Ich konnte keine Konfigurationseinstellung finden, um dies zu ändern, außer beim erneuten Kompilieren.

OpenLDAP

Hinzufügen

TLSRandFile /dev/urandom

in die Konfigurationsdatei slapd.conf. (Dies sollte hoffentlich die Standardeinstellung sein, aber einige Anleitungen schlagen irreführend die Verwendung von /dev/random Vor, sodass Sie dies möglicherweise noch einmal überprüfen möchten.)

Postfix

Verwenden

tls_random_source = dev:/dev/urandom

in der Konfigurationsdatei main.cf oder

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

von der Kommandozeile.

25
D.W.

Alles :

Führen Sie als root einfach Folgendes aus:

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

Jetzt /dev/random greift tatsächlich auf dieselbe zugrunde liegende Logik zu wie /dev/urandom.

Nach dieser Änderung werden beide /dev/random und /dev/urandom wird aus dem nicht blockierenden Pool gezogen. Der nicht blockierende Pool wird aus dem blockierenden Pool gezogen, den das System noch füllt.

19
David Schwartz

Großartige Initiative von D.W. um verschiedene Softwarekonfigurationen aufzulisten (ich bin bereits ein ausgestorbener Fan von D.W.)

ABER - Wie ich bereits erwähnt habe mein vorheriger Kommentar , auf meinen VPS-Servern bevorzuge ich persönlich immer noch die Installation einer einzelnen Komponente ( haveged ), mit der alles reibungslos funktioniert.

Vielleicht ist der Vorschlag von @ DavidSchwartz der einzige, der noch einfacher sein könnte, aber ich habe es nicht versucht.

Die individuelle Konfiguration jeder Komponente anstelle des zugrunde liegenden Entropiepools klingt für mich ein wenig albern, um ganz ehrlich zu sein. Wenn ich ein Problem habe, versuche ich, die Grundursache zu lösen und das Prinzip TROCKEN zu halten.

8
Yoav Aner

[~ # ~] php [~ # ~]

Für PHP Sitzungen können Sie/dev/urandom als Entropiequelle verwenden

session.entropy_file = /dev/urandom
3
rook