服务器突然耗尽熵

Cre*_*hal 5 linux tls entropy-pool

自从昨天重新启动以来,我们的一个虚拟服务器(Debian Lenny,使用 Xen 虚拟化)不断耗尽熵,导致尝试通过 SSH / TLS 启用协议进行连接时超时等。有没有办法检查哪个进程正在(/正在)吃掉所有的熵?

编辑:

我试过的:

  • 添加额外的熵源:time_entropyd、rng-tools 将 urandom 反馈回随机、伪随机文件访问——每秒获得大约 1 MiB 的额外熵,问题仍然存在
  • 通过 lsof、netstat 和 tcpdump 检查异常活动 – 没有。没有明显的负载或任何东西
  • 停止守护进程,重新启动永久会话,重新启动整个虚拟机——行为没有变化

什么最终奏效:

  • 等待。从昨天中午开始,不再有连接问题。熵仍然有点低(128 字节峰值),但 TLS/SSH 会话不再有明显的延迟。我正在慢慢地将我们的客户端切换回 TLS(所有五个!),但我认为现在行为不会有任何变化。所有客户端现在都再次使用 TLS,没问题。真的,真的很奇怪。

Mic*_*nik 1

也许lsof(列出打开的文件)可能会有所帮助。这显示了当前哪个进程保存着打开的文件。在您的情况下,只有当您捕获进程耗尽熵时,如果该进程不能将句柄保持打开更长时间,这才会有帮助。

$ lsof /dev/urandom
COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
xfce4-ses  1787   to   15r   CHR    1,9      0t0 8199 /dev/urandom
applet.py  1907   to    9r   CHR    1,9      0t0 8199 /dev/urandom
scp-dbus-  5028   to   10r   CHR    1,9      0t0 8199 /dev/urandom
firefox    6603   to   23r   CHR    1,9      0t0 8199 /dev/urandom
thunderbi 12218   to   23r   CHR    1,9      0t0 8199 /dev/urandom
Run Code Online (Sandbox Code Playgroud)

只是我工作站的一个示例。但深入研究 lsof 可能会有所帮助。