Cosa devo configurare, per assicurarmi che il mio software usi / dev / urandom?

28

Quando imposti un server, quali modifiche alla configurazione devo fare per assicurarmi che tutto il software utilizzi /dev/urandom invece di /dev/random ?

Alcuni server non hanno molta entropia nel pool di entropia (ad esempio, VPS). Se un componente software utilizza /dev/random , potrebbe bloccarsi e causare il misterioso rallentamento del server. C'è un software che viene fornito in modo predefinito usando /dev/random ? 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 imposta un nuovo ambiente VPS.

    
posta D.W. 01.05.2012 - 00:58
fonte

4 risposte

25

Consigli generali

Qualsiasi programma scritto in Java

Aggiungi

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

o

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

alla chiamata da riga di comando utilizzata per avviare il processo Java. (Senza questo, Java usa /dev/random per inizializzare SecureRandom class , il che può causare il blocco inaspettato del codice Java.)

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 di file dall'aspetto pazzo, ad esempio% extra_de%, per ingannare Java nell'accettare il nome file. Se utilizzi solo /./ , Java decide che non lo hai davvero inteso e sostituisce ciò che hai scritto con /dev/urandom . Craziness!

chroot

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

Software specifico

Apache mod_ssl

Usa

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

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

Cyrus POP3, IMAPD e SASL

Compila Cyrus SASL (libsasl) con il flag di configurazione SSLRandomSeed .

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

OpenLDAP

Aggiungi

TLSRandFile /dev/urandom

al file di configurazione /dev/random . (Questo spero dovrebbe essere l'impostazione predefinita, ma alcune guide suggeriscono in modo fuorviante di usare slapd.conf , quindi potresti voler ricontrollare.)

Postfix

Usa

tls_random_source = dev:/dev/urandom

nel file di configurazione /dev/random o

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

dalla riga di comando.

    
risposta data 01.05.2012 - 01:15
fonte
18

Tutto:

Come root , fai questo:

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

Ora /dev/random accederà effettivamente alla stessa logica sottostante come /dev/urandom .

Dopo questa modifica, sia /dev/random che /dev/urandom tracceranno dal pool non bloccante. Il pool non bloccante trarrà dal pool di blocchi, che il sistema continuerà a riempire.

    
risposta data 01.05.2012 - 08:05
fonte
7

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

MA - Come ho detto su il mio commento precedente , sui miei server VPS personalmente preferisco ancora installarne uno componente singolo ( haveged ) 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 singolarmente ciascun componente al posto del sottostante entropico mi sembra un po 'sciocco per essere perfettamente onesto. Quando ho un problema, cerco di risolvere la causa principale e di mantenere il principio DRY .

    
risposta data 01.05.2012 - 10:45
fonte
3

PHP

Per le sessioni PHP puoi usare / dev / urandom come entropy fonte

session.entropy_file = /dev/urandom
    
risposta data 01.05.2012 - 03:06
fonte

Leggi altre domande sui tag