尝试弄清楚应该在之后重新启动哪些服务修补 openssl对抗 Heartbleed。至少有一篇帖子提到了重启:
sshd、apache、nginx、postfix、dovecot、courier、pure-ftpd、bind、mysql
- 是否有一个命令可以运行来查看哪些正在运行的服务依赖于 openssl?
- 是否有针对 apache/nginx 运行的命令来查看补丁是否有效,以便不需要重新启动服务?
- 我们是否应该安排停机时间并彻底重启每台服务器?
编辑:这个帖子建议使用:lsof -n | grep ssl | grep DEL
显示仍在使用标记为删除的旧版本 OpenSSL 的进程
答案1
在缓解许多程序使用的库中的主要漏洞时,一般规则是:重启服务器是确保重启所有受影响的程序,并且没有程序使用旧的(易受攻击的)代码的最简单方法。
您不应该害怕重启系统(无论如何,当您安装补丁时,您应该经常这样做!) - 定期重启服务器意味着您可以确信它们会毫无问题地重新启动,并且如果您为适当的容错设计环境,则重启并不意味着中断。 (就此而言,即使您的环境不具备容错能力,我们谈论的也可能是 10 分钟 - 考虑到我们正在讨论的 heartbleed 安全问题的规模,这是一个微小的中断......)
如果由于某种原因您无法重新启动,您可以使用它lsof
来确定哪些程序正在运行并且使用了 OpenSSL 库:sudo lsof -n | grep ssl
要查找使用旧(已删除)库的库,您可以执行sudo lsof -n | grep ssl | grep DEL
。
每个受影响的程序都需要使用适合该程序的程序重新启动。