サーバーをセットアップするときに、すべてのソフトウェアが/dev/urandom
ではなく/dev/random
を使用するようにするには、どのような構成変更が必要ですか?
一部のサーバーは、エントロピープール(VPSなど)に多くのエントロピーを持っていません。ソフトウェアコンポーネントが/dev/random
を使用している場合、それがブロックされ、サーバーが不思議なほど遅くなることがあります。デフォルトで/dev/random
を使用してすぐに使用できるソフトウェアはありますか?その場合、/dev/urandom
を使用するように強制するにはどうすればよいですか?新しいVPS環境をセットアップするときに、構成設定のチェックリストを用意しておくと便利です。
追加
-Djava.security.egd=file:///dev/urandom switch
または
-Djava.security.egd=file:/dev/./urandom
Javaプロセスを開始するために使用されるコマンドライン呼び出しに追加します。(これがない場合、Javaは/dev/random
を使用してSecureRandom class
をシードしますJavaコードが予期せずブロックする可能性があります。)
または、$Java_HOME/jre/lib/security/Java.security
構成ファイルに次の行を追加します
securerandom.source=file:/dev/./urandom
脚注:上記の例では、クレイジーなファイル名、たとえば、追加の/./
を使用して、Javaをだましてファイル名を受け入れるようにします。 /dev/urandom
を使用するだけで、Javaは、それが本当に意味していないと判断し、書き込んだ内容を/dev/random
に置き換えます。クレイジーです!
Chroot環境でサービスを開始する場合は、chrootディレクトリ内に/dev/urandom
デバイスを作成することを忘れないでください。
使用する
SSLRandomSeed startup file:/dev/urandom 512
SSLRandomSeed connect file:/dev/urandom 512
mod_ssl構成ファイル内。 SSLRandomSeed
でfile:/dev/random
を使用しないでください。
Cyrus SASL(libsasl)を構成フラグ--with-devrandom=/dev/urandom
でコンパイルします。
デフォルトでは、Cyrus POP3は/dev/random
から読み取ります。これを変更するための構成設定が見つかりませんでした。再コンパイルが必要です。
追加
TLSRandFile /dev/urandom
slapd.conf
構成ファイルに。 (これがデフォルトであるべきですが、ガイドによっては/dev/random
の使用を誤解を招く可能性があるため、再確認することをお勧めします。)
使用する
tls_random_source = dev:/dev/urandom
main.cf
構成ファイル内、または
Sudo postconf -e 'tls_random_source = dev:/dev/urandom'
コマンドラインから。
すべて:
root
として、次のようにします。
rm /dev/random
mknod /dev/random c 1 9
これで/dev/random
は実際には/dev/urandom
と同じ基本ロジックにアクセスします。
この変更後、/dev/random
と/dev/urandom
の両方が非ブロッキングプールから取得されます。非ブロッキングプールは、システムが引き続き満たすブロッキングプールから取得されます。
D.W.による素晴らしいイニシアチブさまざまなソフトウェア構成を一覧表示します(私はすでにD.W.の熱狂的なファンです)
しかし、私が 私の以前のコメント で述べたように、私のVPSサーバーでは、個人的に、すべてをスムーズに実行する単一のコンポーネント( haveged )をインストールすることを好みます。
おそらく、@ DavidSchwartzの提案は、もっと簡単にできる唯一の提案ですが、私は試していません。
根本的なエントロピープールの代わりに各コンポーネントを個別に構成することは、完全に正直であると私には少しばかげているように思えます。問題が発生したときは、根本的な原因を解決し、 [〜#〜] dry [〜#〜] の原則を守ります。