4.4. SELinux のステータスおよびモードの永続的変更
「SELinux のステータスおよびモード」 で説明したように、SELinux は有効または無効にできます。有効にした場合の SELinux のモードには、Enforcing および Permissive の 2 つがあります。
getenforce コマンドまたは sestatus コマンドを使用して、SELinux が実行しているモードを確認します。getenforce コマンドは、
Enforcing、Permissive、または Disabled を返します。
sestatus コマンドは SELinux のステータスと、使用されている SELinux ポリシーを返します。
注記
SELinux を Permissive モードで実行すると、ユーザーにファイルにラベルを誤って付けることができます。SELinux が無効になっている間に作成されるファイルにはラベル付けされません。この動作により、ファイルが誤ってラベル付けされないか、または全くラベル付けされないため、Enforcing モードへの変更時に問題が発生します。ラベルが誤って設定されていたり、ファイルにラベルが付いていないために問題が発生するのを防ぐために、Disabled 状態から Permissive モードまたは Enforcing モードに変更すると、ファイルシステムのラベルが自動的に再設定されます。
4.4.1. SELinux の有効化 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
SELinux が有効になっている場合は、Enforcing モードまたは Permissive モードのいずれかで実行できます。以下のセクションでは、これらのモードに永続的に変更する方法を説明します。
SELinux が無効になっていたシステムで SELinux を有効にする際に、システムが起動できない、プロセスが失敗するなどの問題を回避するには、Red Hat は以下の手順に従うことを推奨しています。
- SELinux を Permissive モードで有効にします。詳細は、「Permissive モードに設定する場合:」 を参照してください。
- システムを再起動します。
- SELinux 拒否メッセージを確認します。詳細は、「拒否の検索と表示」を参照してください。
- 拒否がない場合は、Enforcing モードに切り替えます。詳細は、「Enforcing モードに設定する場合:」 を参照してください。
Enforcing モードで SELinux を使用してカスタムアプリケーションを実行するには、次のいずれかのシナリオを選択してください。
unconfined_service_tドメインでアプリケーションを実行します。詳細は、「制限のないプロセス」 を参照してください。- アプリケーションに新しいポリシーを記述します。詳細は、ナレッジベースの記事 カスタム SELinux ポリシーの作成 を参照してください。
4.4.1.1. Permissive モードに設定する場合: リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
SELinux を Permissive モードで実行していると、SELinux ポリシーは強制されません。システムは動作し続け、SELinux がオペレーションを拒否せず AVC メッセージをログに記録できるため、このログを使用して、トラブルシューティングやデバッグ、ならびに SELinux ポリシーの改善に使用できます。この場合、各 AVC は一度だけログに記録されます。
モードを Permissive へ永続的に変更するには、以下の手順に従ってください。
手順4.2 Permissive モードへの変更
- 以下のように
/etc/selinux/configファイルを編集します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - システムを再起動します。
reboot
~]# rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.1.2. Enforcing モードに設定する場合: リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
SELinux を Enforcing モードで実行している場合は、SELinux ポリシーが強制され、SELinux ポリシールールに基づいてアクセスが拒否されます。Red Hat Enterprise Linux では、システムに SELinux を最初にインストールした時に、Enforcing モードがデフォルトで有効になります。
SELinux が無効の場合は、以下の手順に従って、再度 Enforcing モードに変更してください。
手順4.3 Enforcing モードへの変更
この手順では、selinux-policy-targeted、selinux-policy、libselinux、libselinux-python、libselinux-utils、policycoreutils、および policycoreutils-python パッケージがインストールされていることを前提としています。パッケージがインストールされていることを確認するには、以下のコマンドを使用します。
rpm -q package_name
rpm -q package_name
- 以下のように
/etc/selinux/configファイルを編集します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - システムを再起動します。
reboot
~]# rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次にシステムを起動する際に、SELinux はシステム内のファイルおよびディレクトリーのラベルを再設定し、SELinux が無効になっている間に作成したファイルおよびディレクトリーに SELinux コンテキストを追加します。
注記
Enforcing モードに変更したあと、SELinux ポリシールールが間違っていたか、設定されていなかったため、SELinux が一部のアクションを拒否する場合があります。SELinux に拒否されるアクションを表示するには、root で以下のコマンドを実行します。
ausearch -m AVC,USER_AVC,SELINUX_ERR -ts today
~]# ausearch -m AVC,USER_AVC,SELINUX_ERR -ts today
または、setroubleshoot-server パッケージがインストールされている場合は、root で以下のコマンドを入力します。
grep "SELinux is preventing" /var/log/messages
~]# grep "SELinux is preventing" /var/log/messages
SELinux が一部のアクションを拒否する場合は、11章トラブルシューティング でトラブルシューティングを参照してください。
モードの一時的な変更は、「SELinux のステータスおよびモード」 で説明されています。
4.4.2. SELinux の無効化 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
SELinux が無効になっていると、SELinux ポリシーは読み込まれません。ポリシーは強制されず、AVC メッセージはログに記録されません。したがって、「SELinux を実行する利点」 に記載されている SELinux を実行する利点はすべて失われます。
重要
Red Hat は、SELinux を永続的に無効にする代わりに、Permissive モードを使用することを強く推奨します。Permissive モードの詳細は、「Permissive モードに設定する場合:」 を参照してください。
SELinux を永続的に無効にするには、以下の手順を行います。
手順4.4 SELinux の無効化
/etc/selinux/configファイルにSELINUX=disabledを設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - システムを再起動します。再起動したら、getenforce コマンドが
Disabledを返すことを確認します。getenforce Disabled
~]$ getenforce DisabledCopy to Clipboard Copied! Toggle word wrap Toggle overflow