6.3. SELinux ポリシーの MLS への切り替え

SELinux ポリシーをターゲットの MLS (Multi-Level Security) から Multi-Level Security (MLS) に切り替えるには、以下の手順に従います。

重要

Red Hat は、X Window System を実行しているシステムで MLS ポリシーを使用することは推奨していません。さらに、MLS ラベルでファイルシステムのラベルを変更すると、制限のあるドメインにアクセスできなくなる可能性があるため、システムが正常に起動しなくなる可能性があります。したがって、ファイルに再ラベルする前に、SELinux を Permissive モードに切り替えます。多くのシステムでは、MLS に移動後に SELinux の拒否が多く表示され、そのほとんどは修正するだけでは限りません。

手順

  1. selinux-policy-mls パッケージをインストールします。

    # dnf install selinux-policy-mls
  2. 任意のテキストエディターで /etc/selinux/config ファイルを開きます。以下に例を示します。

    # vi /etc/selinux/config
  3. SELinux モードを Enforcing から Permissive に変更し、ターゲットポリシーから MLS に切り替えます。

    SELINUX=permissive
    SELINUXTYPE=mls

    変更を保存し、エディターを終了します。

  4. MLS ポリシーを有効にする前に、MLS ラベルでファイルシステム上の各ファイルに再度ラベル付けする必要があります。

    # fixfiles -F onboot
    System will relabel on next boot
  5. システムを再起動します。

    # reboot
  6. SELinux 拒否を確認します。

    # ausearch -m AVC,USER_AVC,SELINUX_ERR,USER_SELINUX_ERR -ts recent -i

    上記のコマンドはすべてのシナリオに対応していないため、SELinux 拒否の識別、分析、修正のガイダンスは SELinux 関連の問題のトラブルシューティング を参照してください。

  7. システムに SELinux に関連する問題がないことを確認したら、/etc/selinux/config で該当するオプションを変更して、SELinux を Enforcing モードに切り替えます。

    SELINUX=enforcing
  8. システムを再起動します。

    # reboot
重要

システムが起動しなかったり、MLS に切り替えた後にログインできない場合は、enforcing=0 パラメーターをカーネルコマンドラインに追加します。詳細は、システムの起動時に SELinux モードの変更 を参照してください。

また、MLS では、sysadm_r SELinux ロールにマッピングされた root ユーザーとしての SSH ログインは staff_rroot としてログインするのとは異なります。MLS で初めてシステムを起動する前に、SELinux ブール値 ssh_sysadm_login1 に設定して、SSH ログインを sysadm_r として許可することを検討してください。後で すでに MLS に存在する ssh_sysadm_login を有効にするには、すでに MLS にいる場合、root として staff_r ログインし、newrole -r sysadm_r コマンドを使用して sysadm_rroot に切り替えてから、ブール値を 1 に設定します。

検証

  1. SELinux が Enforcing モードで実行されていることを確認します。

    # getenforce
    Enforcing
  2. SELinux のステータスが mls の値を返すことを確認します。

    # sestatus | grep mls
    Loaded policy name:             mls

関連情報

  • fixfiles(8)setsebool(8)、および ssh_selinux(8) の man ページ。