RHEL9では、/etc/selinux/config による SELinux の無効化に対応しなくなりました。
マジか?
更に読み進めるとこんなことも書いてありました。
今回のリリースで、/etc/selinux/config ファイルの SELINUX=disabled オプションを使用した SELinux の無効化に対応する機能がカーネルから削除されました。/etc/selinux/config でのみ SELinux を無効にすると、システムは SELinux が有効化されますが、ポリシーが読み込まれずに開始します。
さらに、Anaconda インストールプログラムおよび対応する man ページが更新され、この変更が反映されました。この変更により、LSM (Linux Security Module) フックの初期化後の読み取り専用保護も有効になります。
SELinux を無効にする必要がある場合は、selinux=0 パラメーターをカーネルコマンドラインに追加します。
というわけで、手順をまとめてみました。
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: 33
OSブート時に、Kernelに渡されたパラメータを確認します。
# cat /proc/cmdline
BOOT_IMAGE=(hd0,gpt2)/vmlinuz-5.14.0-70.13.1.el9_0.x86_64 root=UUID=a74b7791-1377-4474-ae5b-XXXXXXXX66af ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=UUID=bd9d076c-981c-4615-b41a-XXXXX0d rhgb quiet
grubbyコマンドで、すべてのエントリーを表示させ現在の状態を確認します。
# grubby --info=ALL
index=0
kernel="/boot/vmlinuz-5.14.0-70.13.1.el9_0.x86_64"
args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=UUID=96cba0ce-818f-4d1a-9adb-9e1XXXXXXX625 rhgb quiet"
root="UUID=87706924-cb8a-466d-8963-7XXXXXXXa2b0"
initrd="/boot/initramfs-5.14.0-70.13.1.el9_0.x86_64.img"
title="Red Hat Enterprise Linux (5.14.0-70.13.1.el9_0.x86_64) 9.0 (Plow)"
id="d2534e6efb584d95aeXXXXXcb8e94ccd-5.14.0-70.13.1.el9_0.x86_64"
index=1
kernel="/boot/vmlinuz-0-rescue-d2534e6efb584d95ae20332cb8e94ccd"
args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=UUID=96cba0ce-818f-4d1a-9adb-9e1542c5d625 rhgb quiet"
root="UUID=87706924-cb8a-466d-8963-70280c04a2b0"
initrd="/boot/initramfs-0-rescue-d2534e6eXXXXXXX95ae20332cb8e94ccd.img"
title="Red Hat Enterprise Linux (0-rescue-XXXXXXXb584d95ae20332cb8e94ccd) 9.0 (Plow)"
id="d2534e6efb584d95aeXXXXXcb8e94ccd-0-rescue""
grubbyコマンドで、カーネルパラメータへ (selinux=0)を追加します。
grubby --update-kernel=ALL --args="selinux=0"
grubbyコマンドで、すべてのエントリーを表示させコマンド実行後の状態を確認します。(selinux=0 が追加されている。)
# grubby --info=ALL
index=0 kernel="/boot/vmlinuz-5.14.0-70.13.1.el9_0.x86_64"
args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=UUID=96cba0ce-818f-4d1a-9adb-9e1XXXXXXX625 rhgb quiet selinux=0"
root="UUID=87706924-cb8a-466d-8963-7XXXXXXXa2b0"
initrd="/boot/initramfs-5.14.0-70.13.1.el9_0.x86_64.img"
title="Red Hat Enterprise Linux (5.14.0-70.13.1.el9_0.x86_64) 9.0 (Plow)"
id="d2534e6efb584d95aeXXXXXcb8e94ccd-5.14.0-70.13.1.el9_0.x86_64"
index=1
kernel="/boot/vmlinuz-0-rescue-d2534e6efb584d95ae20332cb8e94ccd"
args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=UUID=96cba0ce-818f-4d1a-9adb-9e1542c5d625 rhgb quiet selinux=0"
root="UUID=87706924-cb8a-466d-8963-70280c04a2b0"
initrd="/boot/initramfs-0-rescue-d2534e6eXXXXXXX95ae20332cb8e94ccd.img"
title="Red Hat Enterprise Linux (0-rescue-XXXXXXXb584d95ae20332cb8e94ccd) 9.0 (Plow)"
id="d2534e6efb584d95aeXXXXXcb8e94ccd-0-rescue""
設定を有効にするため、OSを再起動します。
# reboot
SELinuxの状態を確認します。
# sestatus
SELinux status: disabled
OSブート時に、Kernelに渡されたパラメータを確認します。(selinux=0が追加されている。)
# cat /proc/cmdline
BOOT_IMAGE=(hd0,gpt2)/vmlinuz-5.14.0-70.13.1.el9_0.x86_64 root=UUID=a74b7791-1377-4474-ae5b-43fc014e66af ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=UUID=bd9d076c-981c-4615-b41a-18bd44b5300d rhgb quiet selinux=0
こんな感じで、Red Hat Linux 9 の SELinux 無効化のご紹介でした。