it-swarm.it

Cosa devo configurare per essere sicuro che il mio software usi / dev / urandom?

Quando si configura un server, quali modifiche alla configurazione sono necessarie per assicurarsi che tutto il software utilizzi /dev/urandom invece di /dev/random?

Alcuni server non hanno molta entropia nel pool di entropia (ad es. VPS). Se un componente software utilizza /dev/random, quindi potrebbe bloccarsi e rendere il server misteriosamente più lento. Esiste un software pronto all'uso che utilizza /dev/random per impostazione predefinita? In tal caso, come posso configurarlo per forzarlo a utilizzare /dev/urandom? Sarebbe bello avere un elenco di controllo delle impostazioni di configurazione da impostare, quando si configura un nuovo ambiente VPS.

28
D.W.

Consiglio generale

Qualsiasi programma scritto in Java

Inserisci

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

o

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

all'invocazione della riga di comando utilizzata per avviare il processo Java. (Senza questo, Java utilizza /dev/random per eseguire il seeding del suo codice SecureRandom class, che può causare Java si blocca in modo imprevisto).

In alternativa, nel file di configurazione $Java_HOME/jre/lib/security/Java.security, aggiungi la riga

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

Nota a piè di pagina: Negli esempi precedenti, è necessario il nome del file dall'aspetto folle, ad esempio, il /./ extra, per ingannare Java nell'accettare il nome del file Se usi semplicemente /dev/urandom, Java decide che non lo intendevi davvero e sostituisce ciò che hai scritto con /dev/random. Pazzia!

Chroot

Se stai avviando un servizio in un ambiente chroot, non dimenticare di creare il dispositivo /dev/urandom all'interno della tua directory chroot.

Software specifico

Apache mod_ssl

Uso

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

nel file di configurazione mod_ssl. Evita di usare file:/dev/random con SSLRandomSeed.

Cyrus POP3, IMAPD e SASL

Compilare Cyrus SASL (libsasl) con il flag di configurazione --with-devrandom=/dev/urandom.

Per impostazione predefinita, Cyrus POP3 legge da /dev/random. Non sono riuscito a trovare alcuna impostazione di configurazione per modificare questo, a meno di ricompilare.

OpenLDAP

Inserisci

TLSRandFile /dev/urandom

nel file di configurazione slapd.conf. (Speriamo che questo sia il valore predefinito, ma alcune guide suggeriscono fuorviante l'uso di /dev/random, quindi potresti voler ricontrollare.)

Postfix

Uso

tls_random_source = dev:/dev/urandom

nel file di configurazione main.cf oppure

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

dalla riga di comando.

25
D.W.

Everything:

Come root, basta fare questo:

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

Adesso /dev/random accederà effettivamente alla stessa logica sottostante di /dev/urandom.

Dopo questa modifica, entrambi /dev/random e /dev/urandom trarrà dal pool non bloccante. Il pool non bloccante verrà estratto dal pool bloccante, che il sistema continuerà a riempire.

19
David Schwartz

Grande iniziativa di D.W. per elencare diverse configurazioni software (sono già un fan sfegatato di D.W.)

MA - Come ho già detto su il mio commento precedente , Sui miei server VPS personalmente preferisco ancora installare un singolo componente ( cancellato ) che fa funzionare tutto senza intoppi.

Forse il suggerimento di @ DavidSchwartz è l'unico che potrebbe essere ancora più semplice, ma non l'ho provato.

Configurare individualmente ogni componente invece del pool di entropia sottostante suona un po 'sciocco per essere perfettamente onesto. Quando ho un problema, provo a risolvere la causa principale e mantenere il principio DRY .

8
Yoav Aner

[~ ~ #] php [~ ~ #]

Per PHP puoi usare/dev/urandom come entropy source

session.entropy_file = /dev/urandom
3
rook