Red Hat Training

A Red Hat training course is available for Red Hat Linux

3.2. SELinux と仮想化

SELinux (Security Enhanced Linux) は、Linux のセキュリティーを強化するために Linux コミュニティーの支援の下に NSA (米国の国家安全保障局) によって開発されました。SELinux は攻撃者の能力を制限して、バッファーオーバーフローアタックや権限エスカレーションなど多くの一般的なセキュリティー上の弱点を防止するために機能します。これらの利点により、すべての Red Hat Enterprise Linux システムは SELinux を有効にした状態で強制モードで実行する必要があります。

手順3.1 SELinux を有効にしたゲスト仮想マシン上での論理ボリュームの作成とマウント

  1. 論理ボリュームを作成します。この例では、volumegroup というボリュームグループ上に NewVolumeName という 5 ギガバイトの論理ボリュームを作成します。また、この例はディスク領域が十分にあることを前提としています。ネットワークデバイス上で追加のストレージを作成し、そのストレージへのアクセスをゲストに付与する必要がある場合があります。詳細は、14章ボリューム を参照してください。
    # lvcreate -n NewVolumeName -L 5G volumegroup
  2. ext3 などの拡張属性に対応できるファイルシステムで NewVolumeName 論理ボリュームをフォーマットします。
    # mke2fs -j /dev/volumegroup/NewVolumeName
  3. 新しい論理ボリュームをマウントする新規のディレクトリーを作成します。このディレクトリーはファイルシステムのどこに配置しても構いません。ただし、重要なシステムディレクトリー (/etc/var/sys) またはホームディレクトリー (/home/root など) 内には配置しないようにしてください。この例では、/virtstorage というディレクトリーを使用しています。
    # mkdir /virtstorage
  4. 論理ボリュームをマウントします。
    # mount /dev/volumegroup/NewVolumeName /virtstorage
  5. 作成したばかりのフォルダーの SELinux タイプを設定します。
    # semanage fcontext -a -t virt_image_t "/virtstorage(/.*)?"
    targeted ポリシー (targeted はデフォルトのポリシー) を使用すると、コマンドにより次のような 1 行が /etc/selinux/targeted/contexts/files/file_contexts.local ファイルに追加されます。この行によって変更が永続化されます。
    /virtstorage(/.*)?    system_u:object_r:virt_image_t:s0
  6. 次のコマンドを実行して、マウントポイント (/virtstorage) とその下のすべてのファイルのタイプを virt_image_t に変更します (restorecon コマンドと setfiles コマンドは /etc/selinux/targeted/contexts/files/ 内のファイルを読み込みます)。
    # restorecon -R -v /virtstorage

注記

ファイルシステム上に新しいファイルを作成します (touch コマンドを使用)。
# touch /virtstorage/newfile
次のコマンドを使用してファイルのラベルが変更されていることを確認します。
# sudo ls -Z /virtstorage
-rw-------. root root system_u:object_r:virt_image_t:s0 newfile
上記の出力は、新しいファイルが正しい属性の virt_image_t を持っていることを示しています。