chroot jail内からssl接続を確立しようとすると、次のエラーが発生します。
twisted.internet.error.ConnectionLost: Connection to the other side was lost in a non-clean fashion.
私はopenssl0.9.6とpyopensslを使用してssl接続を確立し、Linux(centos 5.5)上のpython2.4用のツイストpythonライブラリを使用しています。
いくつかのトラブルシューティングの結果、opensslが/ dev / randomファイルを読み取ろうとしているために失敗し、chroot内に/ dev/randomがないために失敗していることがわかりました。chroot内に/dev/ randomファイルを作成すると、接続が成功することを確認しました。
- chroot内に/dev/ randomファイルを含むdevfsファイルシステムをマウントすることを考えましたが、私のアプリとそのsysadminには、最初にすべてをアンマウントせずにchrootのルートを削除するという悪い習慣があります。
- chrootを実行する前に/dev/ randomファイルから読み取ることを考えましたが、現在の設定では、バイナリが開始される前にchrootを呼び出すようになっています。また、chrootが発生する場所を変更すると、アプリの変更が大きくなりすぎます。いつ、どのようにそれができるのかわかりません。
- / dev / randomから読み取り、/ jail / dev / randomという名前のファイルパイプに書き込むプログラムをchrootjailの外部で実行することを考えましたが、chrootjailの内部からアクセスできます。ランダム性のソースにアクセスするためだけに、別のプロセスを実行します。また、opensslを初期化するだけでは非常に複雑に見えます。
プログラムから/dev/ randomにアクセスできない場合、opensslを初期化する正しい方法は何ですか?