第2章 SELinux のステータスおよびモードの変更
SELinux を enforcing モード、permissive モード、または disabled モードに設定することで、システムがセキュリティーポリシーをどのように適用するかを制御できます。これらの状態は、永続的に適用することも、起動時に適用することもできます。これにより、アクセス拒否のトラブルシューティングや、SELinux を有効にする際にファイルシステムが正しくラベル付けされるようにします。
SELinux が有効になっている場合は、Enforcing モードまたは Permissive モードのいずれかで実行できます。デフォルトでは、SELinux は有効になっており、enforcing モードで実行されます。SELinux を無効にしたり、permissive モードに設定したりすると、SELinux によるシステムの保護ができなくなります。setenforce コマンドを使用して SELinux ステータスを変更した場合は、変更は一時的で、再起動後に元に戻ります。SELinux ステータスを永続的に変更するには、SELinux 設定ファイルまたはカーネルパラメーターを変更する必要があります。
2.1. SELinux のステータスおよびモードの永続的変更 リンクのコピーリンクがクリップボードにコピーされました!
SELinux モードは、システムがセキュリティーポリシーをどのように適用し、アクセス違反をどのようにログに記録するかを決定します。正しいモードを設定することで、システムのセキュリティーが確保され、SELinux を無効状態から有効にした際にファイルシステムのラベル変更によって発生する起動障害を防ぐことができます。
SELinux は、有効状態または無効状態のどちらかで動作します。有効にすると、SELinux は enforcing モードまたは permissive モードで実行されます。これらのモードの詳細は、SELinux の状態とモード を参照してください。
getenforce コマンドは、現在のモードとして Enforcing、Permissive、または Disabled のいずれか報告します。
sestatus コマンドは、SELinux の状態とロードされている SELinux ポリシーに関する情報を報告します。
$ sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Memory protection checking: actual (secure)
Max kernel policy version: 31
Permissive モードで SELinux を実行すると、ユーザーやプロセスにより、さまざまなファイルシステムオブジェクトのラベルが間違って設定される可能性があります。SELinux が無効になっている間に作成されたファイルシステムのオブジェクトには、ラベルが追加されません。ただし、SELinux では、ファイルシステムオブジェクトのラベルが正しいことが必要になるため、これにより Enforcing モードに変更したときに問題が発生します。
SELinux では、誤ったラベル付けやラベル付けされていないファイルが問題を引き起こすことを防ぐため、Disabled 状態から Permissive モードまたは Enforcing モードに変更すると、ファイルシステムのラベルが自動的に再設定されます。root として fixfiles -F onboot コマンドを使用して /.autorelabel ファイルを作成します。-F オプションを指定することで、次回の再起動時にファイルが強制的に再ラベル付けされるようにします。
再ラベル付けのためにシステムを再起動する前に、enforcing=0 カーネルオプションを使用するなどして、システムが Permissive モードで起動することを確認します。これにより、selinux-autorelabel サービスを起動する前に、systemd が必要とするラベルのないファイルがシステムにある場合に、システムが起動に失敗することを防ぎます。詳細は、RHBZ#2021835 を参照してください。