この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。
はじめに
こんばんは。
今回はRHEL9におけるSELinuxを無効化する方法についての覚え書きです。
以前のバージョンまでは/etc/selinux/configファイルに
と追記する方法がとられていました。SELINUX=disabled
ところが、RHEL9からSElinuxの無効化方法に変更がありました。
そこで今回の記事というわけです。
※ RHEL8の公式ドキュメントにおいても、上記の方法はメモリリークの可能性があるため、以下で説明するselinux=0 パラメーターをカーネルコマンドラインに追加して SELinux を無効にする方法が推奨されています。
SElinuxの無効化手順
事前の設定確認
SELinuxが有効であることを確認します
[root@ip-10-0-2-46 ~]# getenforce
Enforcing
grubの設定ファイルを確認してみます。
[root@ip-10-0-2-46 ~]# cat /etc/default/grub
GRUB_CMDLINE_LINUX="console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295"
GRUB_TIMEOUT=0
GRUB_ENABLE_BLSCFG=true
GRUB_DEFAULT=saved
念のためgrubbyでも確認してみます。
[root@ip-10-0-2-46 ~]# grubby --info=ALL
index=0
kernel="/boot/vmlinuz-5.14.0-284.30.1.el9_2.x86_64"
args="console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M $tuned_params"
root="UUID=016e7284-31f6-4c28-bbb1-98c5b25fcdbf"
initrd="/boot/initramfs-5.14.0-284.30.1.el9_2.x86_64.img $tuned_initrd"
title="Red Hat Enterprise Linux (5.14.0-284.30.1.el9_2.x86_64) 9.2 (Plow)"
id="ffffffffffffffffffffffffffffffff-5.14.0-284.30.1.el9_2.x86_64"
設定変更
gubbyコマンドでパラメータをカーネルコマンドラインに追加します。
sudo grubby --update-kernel ALL --args selinux=0
設定を反映させるために再起動します。
reboot
設定変更後の確認
grubbyで確認してみます。
args行の最後に
のパラメータが追加されているのが分かります。selinux=0
[root@ip-10-0-2-46 ~]# grubby --info=ALL
index=0
kernel="/boot/vmlinuz-5.14.0-284.30.1.el9_2.x86_64"
args="console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M $tuned_params selinux=0"
root="UUID=016e7284-31f6-4c28-bbb1-98c5b25fcdbf"
initrd="/boot/initramfs-5.14.0-284.30.1.el9_2.x86_64.img $tuned_initrd"
title="Red Hat Enterprise Linux (5.14.0-284.30.1.el9_2.x86_64) 9.2 (Plow)"
id="ffffffffffffffffffffffffffffffff-5.14.0-284.30.1.el9_2.x86_64"
grubの設定ファイルも確認してみます。
GRUB_CMDLINE_LINUXの行末に
が追加されているのが分かります。selinux=0
[root@ip-10-0-2-46 ~]# cat /etc/default/grub
GRUB_CMDLINE_LINUX="console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 selinux=0"
GRUB_TIMEOUT=0
GRUB_ENABLE_BLSCFG=true
GRUB_DEFAULT=saved
最後に、SELinuxが無効であることを確認します。
[root@ip-10-0-2-46 ~]# getenforce
Disabled
ばっちりですね!
補足(RHEL9での/etc/selinux/configについて)
実際にファイルを見てみます。
ご覧の通り、コメントでもしっかりとkernel command lineを使ってねと書いています。
しかも親切に実行すべきコマンドラインまで書かれてありますね。
[root@ip-10-0-2-46 ~]# cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
# See also:
# https://docs.fedoraproject.org/en-US/quick-docs/getting-started-with-selinux/#getting-started-with-selinux-selinux-states-and-modes
#
# NOTE: In earlier Fedora kernel builds, SELINUX=disabled would also
# fully disable SELinux during boot. If you need a system with SELinux
# fully disabled instead of SELinux running with no policy loaded, you
# need to pass selinux=0 to the kernel command line. You can use grubby
# to persistently set the bootloader to boot with selinux=0:
#
# grubby --update-kernel ALL --args selinux=0
#
# To revert back to SELinux enabled:
#
# grubby --update-kernel ALL --remove-args selinux
#
SELINUX=enforcing
# SELINUXTYPE= can take one of these three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
おわりに
いかがだったでしょうか。
私自身最近の気づきになるのですが、設定ファイルのコメント部分にはかなり大切なことが書かれています。
ググるのもChat-GPTに質問するのも有用ですが、設定ファイルを編集するときは可能な限りコメント部分も押さえておきたいですね!
(なかなかどうしてそれも難しいなという思いつつ…)
それではまたお会いしましょう。
あでゅー!!
参考
-
RHEL8, SELinuxの使用, SELinux の無効化
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/8/html/using_selinux/enabling_and_disabling_selinux-disabling_selinux_changing-selinux-states-and-modes -
RHEL9, SELinuxの使用, 2.5. SELinux の無効化
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/9/html/using_selinux/enabling_and_disabling_selinux-disabling_selinux_changing-selinux-states-and-modes