91Linux - Entropy
type: channel
link: https://91linux.org/tag/Entropy/
items: 安装haveged或rng-tools增加系统熵池

安装haveged或rng-tools增加系统熵池
type: item
date: 2021-06-24T13:08:00+08:00
description: 前言许多使用过廉价入门主机的朋友可能遇到过，系统花了很长时间才能连到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 -yCentos 可能无法安装rng-tools，则需要添加epel源：yum -y install epel-release启动服务并设置开机自启#haveged systemctl enable haveged --now#rng-tools systemctl enable rngd --now安装后测试再次执行查询系统熵池数值，可以看到，系统的熵池会增加到3000+，至此软件阻塞的情况将有明显缓解。