Menu Close

Red Hat Training

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

4.13.2. SELinux での MLS の有効化

注記
X Window System を実行しているシステムで MLS ポリシーを使用することは推奨されません。
以下の手順に従って、システムで SELinux MLS ポリシーを有効にします。

手順4.19 SELinux MLS ポリシーの有効化

  1. selinux-policy-mls パッケージをインストールします。
    ~]# yum install selinux-policy-mls
  2. MLS ポリシーを有効にする前に、ファイルシステムの各ファイルに MLS ラベルでラベルを付ける必要があります。ファイルシステムの再ラベルが追加されると、制限のあるドメインへのアクセスが拒否される可能性があります。これにより、システムが正常に起動できなくなる可能性があります。これが発生しないようにするには、/etc/selinux/config ファイルで SELINUX=permissive を設定します。また、SELINUXTYPE=mls を設定して MLS ポリシーを有効にします。設定ファイルは以下のようになります。
    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    #       enforcing - SELinux security policy is enforced.
    #       permissive - SELinux prints warnings instead of enforcing.
    #       disabled - No SELinux policy is loaded.
    SELINUX=permissive
    # SELINUXTYPE= can take one of these two values:
    #       targeted - Targeted processes are protected,
    #       mls - Multi Level Security protection.
    SELINUXTYPE=mls
    
  3. SELinux が Permissive モードで実行されていることを確認します。
    ~]# setenforce 0
    ~]$ getenforce
    Permissive
    
  4. fixfiles スクリプトを使用して、- F オプションを含む /.autorelabel ファイルを作成し、次回の再起動時にファイルが再ラベル付けされるようにします。
    ~]# fixfiles -F onboot
  5. システムを再起動します。次回の起動時に、MLS ポリシーに従ってすべてのファイルシステムの再ラベル付けが行われます。ラベルプロセスでは、適切な SELinux コンテキストですべてのファイルにラベルを付けます。
    *** Warning -- SELinux mls policy relabel is required.
    *** Relabeling could take a very long time, depending on file
    *** system size and speed of hard drives.
    ***********
    
    一番下の行の * (アスタリスク)文字は、ラベル付けされている 1000 ファイルを表します。上記の例では、eleven * 文字はラベルが付けられた 11000 ファイルを表します。すべてのファイルにラベルを付けるのにかかる時間は、システム上のファイル数やハードディスクドライブの速度によって異なります。最新のシステムでは、このプロセスに 10 分程度かかる場合があります。ラベル付けプロセスが完了すると、システムが自動的に再起動します。
  6. Permissive モードでは、SELinux ポリシーは実行されませんが、Enforcing モードで実行している場合に拒否されたアクションの拒否がログに記録されます。Enforcing モードに切り換える前に、root で以下のコマンドを実行して、SELinux が最後の起動時にアクションを拒否していないことを確認します。SELinux が最後の起動時にアクションを拒否しなかった場合、このコマンドは出力を返しません。システムの起動時に SELinux がアクセスを拒否した場合は、トラブルシューティングに関する情報は、「 11章トラブルシューティング 」を参照してください。
    ~]# grep "SELinux is preventing" /var/log/messages
  7. /var/log/messages ファイルに拒否メッセージがない場合や、既存のすべての拒否を解決した場合は、/ etc/selinux/config ファイルで SELINUX=enforcing を設定します。
    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    #       enforcing - SELinux security policy is enforced.
    #       permissive - SELinux prints warnings instead of enforcing.
    #       disabled - No SELinux policy is loaded.
    SELINUX=enforcing
    # SELINUXTYPE= can take one of these two values:
    #       targeted - Targeted processes are protected,
    #       mls - Multi Level Security protection.
    SELINUXTYPE=mls
    
  8. システムを再起動して、SELinux が Enforcing モードで実行されていることを確認します。
    ~]$ getenforce
    Enforcing
    
    MLS ポリシーが有効化されます。
    ~]# sestatus |grep mls
    Policy from config file:        mls