Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

16.6. 乱数ジェネレーターデバイス

オペレーティングシステムのセキュリティーには、乱数ジェネレーターが非常に重要です。仮想オペレーティングシステムのセキュリティーを保護するために、Red Hat Enterprise Linux 7 には virtio-rng が含まれています。仮想ハードウェアの乱数ジェネレーターデバイスでは、要求時に新しいエントロピーを提供することができます。
ホストの物理マシンで、ハードウェア RNG インターフェースは /dev/hwrng に chardev を作成し、これを開き、ホストの物理マシンからエントロピーをフェッチできます。rngd デーモンとの連携では、ホストの物理マシンからのエントロピーはランダム性のプライマリーソースであるゲスト仮想マシンの /dev/random にルーティングできます。
乱数ジェネレーターの使用は、キーボード、マウス、その他の入力などのデバイスが、ゲスト仮想マシンで十分なエントロピーを生成するのに十分な場合にとくに便利です。仮想乱数ジェネレーターデバイスを使用すると、ホストの物理マシンは、ゲスト仮想マシンのオペレーティングシステムにエントロピーを通過できます。 この手順は、コマンドラインまたは virt-manager インターフェースを使って実行できます。手順は、以下を参照してください。virtio-rng の詳細は、「Red Hat Enterprise Linux Virtual Machines: Access to Random Numbers Made Easy 」を参照してください。

手順16.11 Virtual Machine Manager を使用した virtio-rng の実装

  1. ゲスト仮想マシンをシャットダウンします。
  2. ゲスト仮想マシンを選択し、Edit メニューから Virtual Machine Details を選択し、指定されたゲスト仮想マシンの Details ウィンドウを開きます。
  3. ハードウェアの追加 ボタンをクリックします。
  4. Add New Virtual Hardware ウィンドウで RNG を選択し、Random Number Generator ウィンドウを開きます。

    図16.20 乱数ジェネレーターウィンドウ

    乱数ジェネレーターウィンドウ
    目的のパラメーターを入力し、終了したら「完了 」をクリックします。virtio-rng 要素

手順16.12 コマンドラインツールを使用した virtio-rng の実装

  1. ゲスト仮想マシンをシャットダウンします。
  2. virsh edit domain-name コマンドを使用して、目的のゲスト仮想マシンの XML ファイルを開きます。
  3. <devices> 要素を編集して以下を追加します。

    図16.21 乱数ジェネレーターデバイス

    
      ...
      <devices>
        <rng model='virtio'>
          <rate period='2000' bytes='1234'/>
          <backend model='random'>/dev/random</backend>
          <!-- OR -->
          <backend model='egd' type='udp'>
            <source mode='bind' service='1234'/>
            <source mode='connect' host='1.2.3.4' service='1234'/>
          </backend>
        </rng>
      </devices>
      ...
    乱数ジェネレーターデバイスは、以下の XML 属性および要素を許可します。

    virtio-rng 要素

    • <model> - 必要な model 属性は、RNG デバイスのタイプを指定します。
    • <バックエンドモデル>: <バックエンド要素は>、ゲストに使用するエントロピーのソースを指定します。ソースモデルは model 属性を使用して設定されます。サポートされているソースモデルには、'random' および 'egd' が含まれます。
      • <backend model='random'> - <このバックエンド種別は>、非ブロッキング文字デバイスが入力であることを想定します。このようなデバイスの例は、/dev/random および /dev/urandom です<ファイル名は、backend> 要素の内容として指定されます。ファイル名を指定しないと、ハイパーバイザーのデフォルトが使用されます。
      • <backend model='egd': このバックエンドは>、EGD プロトコルを使用してソースに接続します。ソースはキャラクターデバイスとして指定されます。詳細は、キャラクターデバイスホストの物理マシンインターフェース を参照してください。

このページには機械翻訳が使用されている場合があります (詳細はこちら)。