Ubuntu 12.04以降、/ dev / urandomはrootのみが読み取り可能であり、「修正」できるのはなぜですか?


10

以前は、多くのサーバーでUbuntu 10.04テンプレートを使用していました。12.04に変更してから、現在は問題を切り分けています。

/ dev / urandomデバイスはrootのみがアクセスできます。

これにより、少なくともPHPではSSLエンジン、たとえばfile_get_contents(https:// ...)が失敗しました。

また、レッドマインを壊しました。

chmod 644の後は正常に動作しますが、再起動しても残りません。

だから私の質問。

  1. どうしてこれなの?セキュリティリスクはないので...ランダムデータを盗むのですか?

  2. どうすれば「修正」できますか?サーバーは分離され、1つのアプリケーションだけで使用されるため、openvzを使用しています。ランレベルスクリプトなどのことを考えていますが、どうすれば効率的に実行できますか?dpkgまたはaptのMaby?

  3. / dev / shmでも同様です。この場合、なぜアクセスできないのかを完全に理解していますが、/ dev / urandomを修正するのと同じ方法で「修正」できると思います


ls -l /dev/urandom権限を変更する前に何が表示されますか?あなたは、カスタマイズしたの任意の /etc/udev/rules.dまたは/lib/udev/rules.dファイルを?
David Schwartz

root@idle:~# ls -l /dev/urandom crw------- 1 root root 1, 9 May 22 14:15 /dev/urandom-何も設定していません。これはプレーンなバージンサーバーであり、まだapt-get updateを実行していません。
Shurrican、

3
ドキュメントは、具体的なアクセス許可があるべきと言います0644。問題は、なぜそうではないのかということです。
David Schwartz

1
FWIW、新しくインストールしたPreciseでは、/ dev / urandomは0666です。インストール中、唯一の役割オプションとして「opensshサーバー」を選択しました。おそらく、セットアップ内の一部のパッケージが何かばかげています。
cjc

同意する。私のudevルールもそうあるべきだと言っています。仮想化と関係があると思います。
Shurrican、

回答:


3

udevからの過剰な読み取りにより、ランダムプールを排出して、予測可能な乱数を生成できます。おそらく、これが/ dev / urandomを誰もが読むことができない理由です。 (Graeme Donaldsonが正しいため削除されました)

それでもパーミッションを変更したい場合は、initスクリプトを台無しにするのではなく、/ dev / urandomでモードを設定する責任があるudevルールを調べてください。

Debianでは、有罪のルールを見つけるのは簡単です。

$ dpkg -L udev | xargs grep urandom
/lib/udev/rules.d/91-permissions.rules:KERNEL=="urandom", MODE="0666"

あなたの場合、MODEは間違いなく0666ではありません。

必要に応じて、udev設定ルールに従って変更します。

注:http : //lists.centos.org/pipermail/centos/2009-July/079134.htmlは、udevの変更に役立つ場合があります。

正しいモードが設定されていることを除いて、基本的にはgrepの結果のようなルールを作成し、/ etc / udev / rules.d /にルールファイルとして追加する必要があります(UbuntuとDebianで可能な違いに注意してください) !)


/ dev / urandomがrootのみが読み取り可能である場合、OpenSSHおよびOpenSSL、GnuTLS、その他の暗号化ライブラリとリンクするソフトウェアは、rootとして実行するか、rootとして起動してから特権を削除する必要があります。どういうわけかそれははるかに悪いですね。
ジェラルドコームズ2012年

3
/ dev / urandomはエントロピープールに依存しません。/ dev / randomからの読み取りのみがエントロピープールの枯渇を引き起こします。
ThatGraemeGuy 2012年

Gerald:sshdはrootとして起動します。たとえば、ポート22をバインドしたり、ログインしているユーザーにsuidしたりするには
asdmin

root @ redmine:〜#dpkg -L udev | xargs grep urandom /lib/udev/rules.d/50-udev-default.rules:KERNEL=="null|zero|full|random|urandom "、MODE =" 0666 "root @ redmine:〜#ls -lha / dev / urandom crw ------- 1 root root 1、9 Jul 2 12:39 / dev / urandom設定ミスはないようですが、バグですが、新しいopenvzインストールテンプレートで修正されています!
Shurrican

@ThatGraemeGuy私はパーティーに遅れたことに気づきましたが、それは完全に正しくはありません。エントロピー推定値が低い場合は/dev/random ブロックし、エントロピー推定値が低い/dev/urandom場合でも疑似乱数を生成し続けます。とはいえ、エントロピープールの概念全体は、どういうわけか「ランダム性が不足する」と誤解を招き、意味がありません。
Stephen Touset 2014

1

あなたがそれを修正する方法については、一時的なバンドエイドはちょうど

cat "chmod 666 /dev/urandom" >> /etc/rc.local

私が試しましたが、うまくいきませんでした。今私は/etc/rc0.d/S30urandomのすぐ下にchmodコマンドを追加しました...うまくいった
Shurrican

/etc/rc.localがUbuntuで適切に供給されない原因となるいくつかの問題があります-その許可を含みます(実行可能としてマークする必要があります)。ここを参照してください:bugs.launchpad.net/ubuntu/+source/sysvinit/+bug/882254
michel-slm

有望に見えたが助けにはならない。また、rc.localが実行されないようです。単純なファイルをtmpに書き込もうとしましたが、それもうまくいきませんでした。権限は正しいです。rootのみの実行、残りの読み取り、および777で実行してみました
Shurrican

2
ソリューションはおそらくUbuntu固有であるため、この時点ではおそらくAskUbuntuの方が適しています。私は幸いにもsystemdを使用しており、/
etc

/etc/rc.localファイルを編集する必要があることに注意してください。私の場合(Ubuntu 16.04)、ファイルは終了0で終了したため、行を追加しただけでは実際には機能しません。
Alexis Wilke 2017

1

実際には、ubuntu 12.04 openvzテンプレートが公開され、uraondmとshmデバイスのアクセス権も修正されました


1

udevtriggerが起動していない問題。/etc/init.d/udevtrigger restart...で再起動してみて、問題が解決した場合は... /etc/init/udevtrigger.confファイルを変更してください:

-     and not-container)
+     )

0

RHELの場合:/etc/security/console.perms.d/に権限オーバーライドを含むセキュリティルールを追加します

Ubuntuで類似している必要があります

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.