我收到以下錯誤,當我試圖讓從chroot監牢中的SSL連接中:OpenSSL的一個chroot
twisted.internet.error.ConnectionLost: Connection to the other side was lost in a non-clean fashion.
我使用OpenSSL的0.9.6與pyopenssl使SSL連接,我在Linux上使用python 2.4的扭曲python庫(centos 5.5)。
經過一些故障排除後,我發現openssl失敗了,因爲它試圖讀取/ dev/random文件,並且由於chroot中沒有/ dev/random而失敗。我已經確認,如果我在chroot中創建一個/ dev/random文件,連接成功。
- 我想過安裝其中包含我的chroot的,但我的應用程序裏面的/ dev /隨機文件的devfs文件系統,它的系統管理員必須在刪除的chroot的根而不需要先卸載所有的壞習慣。
- 我想過在執行chroot之前從/ dev/random文件中讀取數據,但是我的當前設置是在我的二進制文件啓動之前調用chroot,並且改變chroot發生的位置將是一個太大的變化在應用程序中,我不確定何時或如何完成。
- 我想過在我的chroot jail之外運行一個程序,它只是從/ dev/random讀取並寫入一個名爲/ jail/dev/random的命名文件管道,可以從chroot jail中訪問,但我不比如不得不爲了訪問一個隨機源而運行一個單獨的進程。此外,它似乎剛剛初始化openssl過於複雜。
如果我無法從我的程序訪問/ dev/random,那麼初始化openssl的正確方法是什麼?
我不知道大多數應用程序如何在沒有devfs的chroot jail中執行。我敢打賭,會有一個名爲/ dev/null的文件,裏面有很多垃圾...... – 2011-12-21 14:46:40