使用rngd进程增加熵的实际操作过程

[root@iZm5ehqfjhnsbtxrzrnh2zZ ~]# yum install rng-tools
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * centos-sclo-rh: mirrors.cn99.com
 * centos-sclo-sclo: mirrors.cn99.com
base                                                                                                                                                                              | 3.6 kB  00:00:00     
centos-sclo-rh                                                                                                                                                                    | 3.0 kB  00:00:00     
centos-sclo-sclo                                                                                                                                                                  | 3.0 kB  00:00:00     
epel                                                                                                                                                                              | 4.7 kB  00:00:00     
extras                                                                                                                                                                            | 2.9 kB  00:00:00     
updates                                                                                                                                                                           | 2.9 kB  00:00:00     
Package rng-tools-6.3.1-5.el7.x86_64 already installed and latest version
Nothing to do
[root@iZm5ehqfjhnsbtxrzrnh2zZ ~]# cat /proc/sys/kernel/random/entropy_avail
140
[root@iZm5ehqfjhnsbtxrzrnh2zZ ~]# cat /usr/lib/systemd/system/rngd.service
[Unit]
Description=Hardware RNG Entropy Gatherer Daemon

[Service]
ExecStart=/sbin/rngd -f

[Install]
WantedBy=multi-user.target
[root@iZm5ehqfjhnsbtxrzrnh2zZ ~]# vi /usr/lib/systemd/system/rngd.service
[root@iZm5ehqfjhnsbtxrzrnh2zZ ~]# 
[root@iZm5ehqfjhnsbtxrzrnh2zZ ~]# 
[root@iZm5ehqfjhnsbtxrzrnh2zZ ~]# cat /usr/lib/systemd/system/rngd.service
[Unit]
Description=Hardware RNG Entropy Gatherer Daemon

[Service]
ExecStart=/sbin/rngd -f -r /dev/urandom -o /dev/random

[Install]
WantedBy=multi-user.target
[root@iZm5ehqfjhnsbtxrzrnh2zZ ~]# systemctl daemon-reload
[root@iZm5ehqfjhnsbtxrzrnh2zZ ~]# systemctl enable rngd.service
[root@iZm5ehqfjhnsbtxrzrnh2zZ ~]# systemctl start rngd.service
[root@iZm5ehqfjhnsbtxrzrnh2zZ ~]# cat /proc/sys/kernel/random/entropy_avail
3080
[root@iZm5ehqfjhnsbtxrzrnh2zZ ~]# cat /etc/redhat-release 
CentOS Linux release 7.7.1908 (Core)
[root@iZm5ehqfjhnsbtxrzrnh2zZ ~]# 

 

### 增加Linux系统中的池 #### 修改池最大容量 为了调整池的最大容量,可以通过修改`/proc/sys/kernel/random/poolsize`文件来实现。然而需要注意的是,在某些版本的Linux中,此参数可能无法直接通过写入新值的方式更改,因为它是只读属性[^1]。 #### 使用工具填充池 对于希望主动向池添加更多的情况,可以利用专门设计用于增强系统供应的应用程序,比如`rngd`或`rng-tools`。这些应用程序能够从硬件随机数生成器或其他高质量源收集数据并注入到操作系统池中[^2]。 #### 手动添加至/dev/random 还可以采用编程方式调用特定接口函数如`RNDADDENTROPY`来手动为池贡献额外的数据量,这通常涉及到编写C语言代码并与内核交互以执行该操作[^3]。 ```c #include <sys/ioctl.h> #include <linux/random.h> int main() { int fd = open("/dev/random", O_WRONLY); struct rand_pool_info rpi; /* Prepare data */ unsigned char buffer[8]; get_random_bytes(buffer, sizeof(buffer)); rpi.entropy_count = 64; // Add as much entropy (in bits) as you can justify. rpi.buffer_ptr = buffer; rpi.pool_words = sizeof(buffer)/sizeof(int); ioctl(fd, RNDADDENTROPY, &rpi); } ``` #### 提升自然输入设备活动频率 由于键盘和鼠标的动作是传统上重要的来源之一,因此鼓励用户适当增加与计算机物理互动的机会有助于间接提升可用的数量。尽管这种方法的效果取决于具体应用场景下的实际需求[^4]。 #### 应对极端情况下的枯竭风险 当面临长时间无人工干预可能导致匮乏的情形下——例如服务器长期运行而无外部扰动时,应当预先配置好可靠的备用方案确保即使在这种特殊条件下也能维持足够的安全性级别。一种策略是在必要时刻允许临时降低对高质素随机性的苛求标准,转而依赖于更易获取但质量稍逊的选择;另一种则是提前部署专用硬件模块持续不断地提供充足的新鲜供给[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值