6

У меня есть сервер, который не может генерировать достаточно энтропии для поддержки /dev/random . Конкретная часть программного обеспечения, имеющая проблемы, не может быть настроена для использования /dev/urandom .

Я пытался переместить /dev/random в /dev/realrandom и символическую ссылку /dev/random в /dev/urandom , но lsof /dev/realrandom все еще показывает процессы, использующие его.

Имеет ли «урандом» ту же энтропию «случайного»? предлагается использовать mknod /dev/random 1 9 . Будет ли это продлить перезапуски? Должен ли я как-то использовать udev?

5 ответов5

18

Все, что вам нужно сделать, это создать что-то вроде /etc/udev/rules.d/70-disable-random-entropy-estimation.rules со следующим содержимым:

# /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"
7

Вам следует подумать о том, чтобы добавить больше энтропии , чем ставить под угрозу вашу систему.

1

Я использовал egd для решения этой проблемы. Держу пари, что вы используете это с gpg . Мне нужно было скомпилировать gpg из исходного кода, чтобы заставить его работать с egd, но как только я это сделал, он работал очень хорошо.

Еще одно предложение: зарегистрируйтесь здесь и загрузите набор случайных чисел. Я думаю, что вы можете добавить энтропию с простым cat file_with_random_numbers > /dev/random . На этом сайте также есть утилита под названием qrand (должна быть скомпилирована IIRC), которая будет загружать из сервиса и заполнять ваш /dev /random для вас.

0

Вы можете настроить символическую ссылку

ln -s /dev/urandom /dev/random

Прежде чем сделать это, может быть целесообразно перенести исходный случайный случай куда-нибудь еще, если он вам понадобится снова:

mv /dev/random /dev/chaos

После перезапуска изменения исчезнут, но вы можете настроить правила udev, чтобы сделать его постоянным. См. Https://n0tablog.wordpress.com/2007/11/24/running-out-of-entropy-in-debian-etch/

0

реализуя идею @Kent, это должно сделать это:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .