我的服务器无法生成足够的熵来支持/dev/random
。出现问题的特定软件无法配置使用/dev/urandom
。
我尝试移动/dev/random
到/dev/realrandom
并符号链接/dev/random
到/dev/urandom
,但lsof /dev/realrandom
仍然显示正在使用它的进程。
在“urandom” 是否与“random”具有相同的熵?,建议使用mknod /dev/random 1 9
。重启后是否仍然有效?我应该以某种方式使用 udev 吗?
答案1
您需要做的就是创建类似/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"
答案2
你应该考虑增加更多熵而不是损害您的系统。
答案3
答案4
udev 的更高版本无法重命名内核设备节点,请参阅https://unix.stackexchange.com/a/120272。作为解决方法,您可以使用此规则(文件名可以是/etc/udev/rules.d/70-random-is-urandom.rules
):
KERNEL=="random", RUN+="/bin/ln -sf /dev/urandom /dev/random"
使用比 可能更安全,KERNEL==random
因为此版本不存在和设备节点KERNEL=urandom
创建之间的任何竞争条件。要保留两个设备节点,请使用以下命令:random
urandom
KERNEL=="random", RUN+="/bin/mv /dev/random /dev/eerandom", RUN+="/bin/ln -s /dev/urandom /dev/random"