前言
许多使用过廉价入门主机的朋友可能遇到过,系统花了很长时间才能连到VPS主机,许多新手并不知道为什么主机的启动速度如此缓慢。
名词解释
Entropy(熵,[shāng])在信息论中表示数据的混乱程度或者不确定性,可理解为随机数据。
在 GNU/Linux 中有两个虚拟设备专门用于生成随机数以供系统使用。分别为 /dev/random /dev/urandom,又称 PRNG(Pseudorandom Number Generator,伪随机数发生器),其中 /dev/random 数据来源为硬件设备的活动(键盘输入、磁盘读写、内存错误等)和其他操作系统资源,默认熵池随机数资源大小为 4kB ,由内核参数/proc/sys/kernel/random/poolsize控制。
系统熵值查询
可通过以下命令查看系统熵值
cat /proc/sys/kernel/random/entropy_avail
如果结果比较低 (<1000),建议进行优化
低熵影响
在使用 OpenSSL 或者 libsoduim 提供的加密解密工具时从虚拟设备(/dev/random)中取用随机数以供使用,与此同时由于linux内核从2.4升级到2.6时,处于安全性的考虑,废弃了一些外来噪音来源,噪音来源减少了,以及VPS是在虚拟主机环境过于安静而缺乏各种噪音,因此会出现随机数生成速度过慢所产生的阻塞现象,依赖随机数的业务(SSL,加密等)就出现运行缓慢。
解决方法
建议在主机上安装haveged或rng-tools来人为生产随机数填充系统熵池,这俩软件一般二选一即可。
注意:如果对安全要求较高,推荐使用硬件随机数生成器 rng-tools,但它需要CPU支持rdrand指令
通过以下命令查看CPU是否支持rdrand指令
cat /proc/cpuinfo |grep rdrand
以下命令来安装服务:
# CentOS
yum install rng-tools -y
yum install haveged -y
# Debian Or Ubuntu
apt install rng-tools -y
apt install haveged -y
Centos 可能无法安装rng-tools,则需要添加epel源:
yum -y install epel-release
启动服务并设置开机自启
#haveged
systemctl enable haveged --now
#rng-tools
systemctl enable rngd --now
安装后测试
再次执行查询系统熵池数值,可以看到,系统的熵池会增加到3000+,至此软件阻塞的情况将有明显缓解。
One comment
请问rng-tools有离线包吗?