首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >openssl中的chroot

openssl中的chroot
EN

Stack Overflow用户
提问于 2011-12-21 14:27:20
回答 3查看 3.7K关注 0票数 3

当我试图从chroot监狱内部建立ssl连接时,我得到了以下错误:

代码语言:javascript
复制
twisted.internet.error.ConnectionLost: Connection to the other side was lost in a non-clean fashion.

我使用openssl 0.9.6和pyopenssl来建立ssl连接,在Linux (centos 5.5)上使用扭曲的python库python2.4。

经过一些故障排除后,我发现openssl失败是因为它试图读取/dev/随机文件,而它是因为chroot中没有/dev/随机文件而失败。我已经确认,如果我在chroot中创建一个/dev/随机文件,连接就会成功。

  • ,我考虑过安装devfs文件系统,其中包含/dev/随机文件在我的chroot中,但是我的应用程序和它的sysadmins有一个坏习惯,就是删除chroot的根而不首先卸载所有内容。
  • ,我已经考虑过在运行chroot之前从/dev/
  • 文件中读取,但是我现在的设置是在二进制文件启动之前调用chroot,改变chroot发生的位置将是应用程序中的一个太大的变化,我不知道它何时或如何完成。
  • 我曾想过在我的chroot监狱之外运行一个程序,它只从/dev/随机读取,并写入一个命名的文件管道中,名为/ for /dev/随机,可以从chroot监狱内部访问,但我不喜欢只因为能够访问随机性源而运行一个单独的进程。而且,仅仅初始化openssl.

似乎过于复杂了。

如果我没有从程序中访问/dev/随机的权限,那么初始化openssl的正确方法是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-12-27 11:57:39

也许更好的方法是按如下方式绑定-挂载设备文件:

代码语言:javascript
复制
# touch chroot/dev/random
# mount --bind /dev/random chroot/dev/random

也同样适用于乌兰地。

票数 3
EN

Stack Overflow用户

发布于 2012-03-20 06:29:36

您可以为openssl假装随机,例如命令行openssl:

代码语言:javascript
复制
[root@quilt /]# openssl s_client -h
usage: s_client args
...
 -rand file:file:...
...

无论如何,openssl需要一个随机性的来源,如果没有随机的现在,它就不可能是安全的,例如维基百科:

为了生成用于安全连接的会话密钥,客户端使用服务器的公钥加密一个随机数,并将结果发送给服务器。只有服务器能够用它的私钥解密它。

没有随机性的来源,SSL/TLS很容易被黑客攻击。

如果您担心chroot/dev/会被删除,为什么不创建只安装整个开发的chroot/dev/randomchroot/dev/urandom整数呢?

代码语言:javascript
复制
[root@quilt /]# mknod /dev/random c 1 8
[root@quilt /]# mknod /dev/urandom c 1 9

哦,顺便说一下,您还想复制system /etc/ copy以及可能的其他主机、服务、以太等.

票数 4
EN

Stack Overflow用户

发布于 2019-09-17 15:46:40

不要忘记在创建了urandom和随机之后的SELinux

cat /var/log/messages \ grep "SELinux正在防止“

代码语言:javascript
复制
SELinux is preventing /usr/sbin/php-fpm from read access on the chr_file urandom.

If you believe that php-fpm should be allowed read access on the urandom chr_file by default.
Then you should report this as a bug.
You can generate a local policy module to allow this access.
Do allow this access for now by executing:

ausearch -c 'php-fpm‘-原始

audit2allow -M my-phpfpm

信号模-i -phpfpm.pp

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8591394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档