Wie kann ich /dev/random auf /dev/urandom verweisen
Ich habe einen Server, der nicht genug Entropie erzeugen kann, um /dev/random
zu unterstützen. Die spezielle Software mit Problemen kann nicht für die Verwendung von /dev/urandom
konfiguriert werden.
Ich habe versucht, /dev/random
nach /dev/realrandom
und Symlink /dev/random
nach /dev/urandom
zu verschieben, aber lsof /dev/realrandom
zeigt immer noch Prozesse an, die es verwenden.
In Hat 'urandom' die gleiche Entropie von 'zufällig'?, der Vorschlag ist, mknod /dev/random 1 9
zu verwenden. Wird dies über Neustarts halten? Sollte ich udev irgendwie verwenden?
6 answers
Sie müssen lediglich etwas wie /etc/udev/rules.d/70-disable-random-entropy-estimation.rules
mit folgendem Inhalt erstellen:
# /etc/udev/rules.d/70-disable-random-entropy-estimation.rules
# Disables /dev/random entropy estimation (it's mostly snake oil anyway).
#
# udevd will warn that the kernel-provided name 'random' and NAME= 'eerandom'
# disagree. You can ignore this warning.
# Use /dev/eerandom instead of /dev/random for the entropy-estimating RNG.
KERNEL=="random", NAME="eerandom"
# Remove any existing /dev/random, then create symlink /dev/random pointing to
# /dev/urandom
KERNEL=="urandom", PROGRAM+="/bin/rm -f /dev/random", SYMLINK+="random"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-03-10 23:19:07
Sie sollten in Betracht ziehen, mehr Entropie hinzuzufügen, anstatt Ihr System zu kompromittieren.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-07-12 20:48:39
Ich habe egd verwendet, um dieses Problem zu lösen. Ich wette, Sie verwenden dies mit gpg
. Ich musste gpg aus der Quelle kompilieren, damit es mit egd funktioniert, aber sobald ich es getan habe, hat es sehr gut funktioniert.
Ein weiterer Vorschlag: Melden Sie sich für ein Konto hier und laden Sie eine gob von Zufallszahlen. Ich denke, Sie können Entropie mit einem einfachen cat file_with_random_numbers > /dev/random
hinzufügen. Es gibt auch ein Dienstprogramm auf dieser Site namens qrand
(muss kompiliert werden IIRC), das vom Dienst heruntergeladen und /dev/random gesetzt wird für dich.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-07-12 21:57:48
Sie können einen Symlink einrichten
ln -s /dev/urandom /dev/random
Bevor Sie dies tun, kann es ratsam sein, das ursprüngliche Zufallszeichen an eine andere Stelle zu senden, wenn Sie es erneut benötigen:
mv /dev/random /dev/chaos
Nach einem Neustart sind die Änderungen weg, aber Sie können udev-Regeln einrichten, um es zu einer dauerhaften Sache zu machen. Siehe https://n0tablog.wordpress.com/2007/11/24/running-out-of-entropy-in-debian-etch/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-07-13 11:51:57
Spätere Versionen von udev können Kernel-Geräteknoten nicht umbenennen, siehe https://unix.stackexchange.com/a/120272. Als Problemumgehung können Sie diese Regel verwenden (Dateiname könnte sein /etc/udev/rules.d/70-random-is-urandom.rules
):
KERNEL=="random", RUN+="/bin/ln -sf /dev/urandom /dev/random"
Es ist wahrscheinlich sicherer, KERNEL==random
als KERNEL=urandom
zu verwenden, da diese Version zwischen der Erstellung der Geräteknoten random
und urandom
frei von Rennbedingungen ist. Um beide Geräteknoten zu behalten, verwenden Sie Folgendes:
KERNEL=="random", RUN+="/bin/mv /dev/random /dev/eerandom", RUN+="/bin/ln -s /dev/urandom /dev/random"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-03-16 10:03:05
Implementierung von @Kent 's Idee, dies sollte es tun:
printf '#!/bin/sh\nmv /dev/random /dev/random_original\nln -s /dev/urandom /dev/random' > /etc/init.d/random_noblock.sh
chmod +x /etc/init.d/random_noblock.sh
update-rc.d random_noblock.sh defaults 100
/etc/init.d/random_noblock.sh
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-09-19 21:57:49