linux熵

什么是熵

  • 从维基百科上来看:

      熵的概念最早起源于物理学,用于度量一个热力学系统的无序程度。在信息论里面,熵是对不确定性的测量。但是在信息世界,熵越高,则能传输越多的信息,熵越低,则意味着传输的信息越少。熵(信息论)

为什么要提到熵

  为什么要提到熵呢,主要是因为这次在部署netdata到我的主服务器时,发现我的熵(entropy) 非常的少,少到什么地步呢?正常来讲一台服务器至少熵应该在200以上,记住,是最少。但是我的熵却一直保留在20一下,每每到100左右的时候,就会出现大血崩,直接降为个位数。

  对于为什么会出现这种情况,我个人认为可能是我这台服务器没有跑什么有访问量的东西,却又使用了太多的加密造成的。

linux上对于熵的定义

  • 从维基百科上看:

      在UNIX操作系统(包括类UNIX系统)中,/dev/random是一个特殊的设备文件,可以用作随机数发生器或伪随机数发生器。/dev/random

  linux下使用/dev/random文件来定义随机数,与此同时还有/dev/urandom文件。

  这两个文件主要的区别就在于一个会导致使用随机数时造成数据拥塞,反之另一个却不会。当然,区别不仅仅是这样,对于随机数的安全性来讲urandom文件虽然不会使数据造成拥塞,但是却因为原理因素,他会重复使用噪音所生成的随机数,导致安全性有所下降。

  至此,为了防止由于熵值过低而造成的系统异常,或者应用暂停。我建议使用rngd守护进程来增加熵的总量。

什么是rng-tools

  • 从Archlinux百科上看:

      rng-tools是一组与内核中随机数生成相关的实用程序。 主程序是rngd ,一个开发的守护进程,用于检查并将随机数据从硬件设备提供给内核熵池。Rng-tools

  rngd这个应用能够通过硬件或者文件进行熵增,为了保证熵量的充足,建议将该应用设置为开机启动。

如何安装rngd

#Debian
apt install rng-tools
#Archlinux
yaourt -Ss rng-tools

  由于默认配置下rngd使用的是硬件来生成熵,但是苦于没有硬件的情况,只能使用urandom来重新生成熵。

  接下来修改/etc/default/rng-tools文件,添加 “HRNGDEVICE=/dev/urandom” 不加引号。
  然后使用:

systemctl restart rng-tools

  来启动rngd守护程序。至此,使用查看命令

cat /proc/sys/kernel/random/entropy_avail

  查看当前熵数,使用该应用可以保持熵维持在高数量上,以防止因熵造成的异常。










引用

熵(信息论)https://zh.wikipedia.org/wiki/%E7%86%B5_(%E4%BF%A1%E6%81%AF%E8%AE%BA

/dev/random https://zh.wikipedia.org/zh-hans//dev/random

Rng-tools https://wiki.archlinux.org/index.php/Rng-tools


linux熵
https://www.vieaw.com/2017/04/17/linux熵/
作者
solitudechn
发布于
2017年4月17日
许可协议