6.3. SELinux ポリシーの MLS への切り替え
SELinux ポリシーをターゲットの MLS (Multi-Level Security) から Multi-Level Security (MLS) に切り替えるには、以下の手順に従います。
X Window System を実行しているシステムでは、MLS ポリシーを使用しないでください。さらに、MLS ラベルでファイルシステムのラベルを変更すると、制限のあるドメインにアクセスできなくなる可能性があるため、システムが正常に起動しなくなる可能性があります。したがって、ファイルに再ラベルする前に、SELinux を Permissive モードに切り替えます。多くのシステムでは、MLS に移動後に SELinux の拒否が多く表示され、そのほとんどは修正するだけでは限りません。
手順
selinux-policy-mlsパッケージをインストールします。dnf install selinux-policy-mls
# dnf install selinux-policy-mlsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 任意のテキストエディターで
/etc/selinux/configファイルを開きます。以下に例を示します。vi /etc/selinux/config
# vi /etc/selinux/configCopy to Clipboard Copied! Toggle word wrap Toggle overflow SELinux モードを Enforcing から Permissive に変更し、ターゲットポリシーから MLS に切り替えます。
SELINUX=permissive SELINUXTYPE=mls
SELINUX=permissive SELINUXTYPE=mlsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 変更を保存し、エディターを終了します。
MLS ポリシーを有効にする前に、MLS ラベルでファイルシステム上の各ファイルに再度ラベル付けする必要があります。
fixfiles -F onboot
# fixfiles -F onboot System will relabel on next bootCopy to Clipboard Copied! Toggle word wrap Toggle overflow システムを再起動します。
reboot
# rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow SELinux 拒否を確認します。
ausearch -m AVC,USER_AVC,SELINUX_ERR,USER_SELINUX_ERR -ts recent -i
# ausearch -m AVC,USER_AVC,SELINUX_ERR,USER_SELINUX_ERR -ts recent -iCopy to Clipboard Copied! Toggle word wrap Toggle overflow 上記のコマンドはあらゆる状況に対応したものではありません。そのため、SELinux に関連する問題のトラブルシューティング を参照し、SELinux 拒否の特定、分析、修正のガイダンスを確認してください。
システムに SELinux に関連する問題がないことを確認したら、
/etc/selinux/configで該当するオプションを変更して、SELinux を Enforcing モードに切り替えます。SELINUX=enforcing
SELINUX=enforcingCopy to Clipboard Copied! Toggle word wrap Toggle overflow システムを再起動します。
reboot
# rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow
システムが起動しなかったり、MLS に切り替えた後にログインできない場合は、enforcing=0 パラメーターをカーネルコマンドラインに追加します。詳細は、システム起動時の SELinux モードの変更 を参照してください。
また、MLS では、sysadm_r SELinux ロールにマッピングされた root ユーザーとしての SSH ログインは staff_r で root としてログインするのとは異なります。MLS で初めてシステムを起動する前に、SELinux ブール値 ssh_sysadm_login を 1 に設定して、SSH ログインを sysadm_r として許可することを検討してください。後ですでに MLS に存在する ssh_sysadm_login を有効にするには、すでに MLS にいる場合、root として staff_r ログインし、newrole -r sysadm_r コマンドを使用して sysadm_r で root に切り替えてから、ブール値を 1 に設定します。
検証
SELinux が Enforcing モードで実行されていることを確認します。
getenforce
# getenforce EnforcingCopy to Clipboard Copied! Toggle word wrap Toggle overflow SELinux のステータスが
mlsの値を返すことを確認します。sestatus | grep mls
# sestatus | grep mls Loaded policy name: mlsCopy to Clipboard Copied! Toggle word wrap Toggle overflow