RHEL9のSELinuxを無効化してみた

どうも、Tです。

RHEL9のSELinuxを無効化してみたので備忘録です。

やりたいこと

SELinuxを有効にしておいた方が良いのですが、検証や特定の環境ではSELinuxが有効で動かすのが難しい場合もあります。

SELinuxの無効化は依然からみんな知っているだろ?的な内容なのに、なぜわざわざ記事にしたのかというとRHEL9からSELinuxの無効化の方法が変わっていたからです。

以前と同じように「/etc/selinux/config」を設定する方法ではなくなりました。詳しくは以下の方が詳しくまとめてくれています。

RHEL9での変更点(セキュリティ編:Part1 SELinuxの無効化について) - SIOS SECURITY BLOG
SELinuxを無効にするには「/etc/selinux/configでselinux=disabledとする」と言ったな、あれは嘘だ まもなくRed Hat Enterprise 9(以下RHEL9)が出るという事で、RHEL9での主な変更点がどうなっているかが気になるところだと思います。 ここではRHEL9 bet...

環境

今回は、下記のRHEL9で試しています。

  • Red Hat Enterprise Linux release 9.2 (Plow)

操作はrootユーザーで行っています。

設定

今回は、RHEL9の公式ドキュメントを参考に進めていきます。

2.5. SELinux の無効化 | Red Hat Product Documentation
2.5. SELinux の無効化 | Red Hat Documentation

事前作業

以下のコマンドを実行しSELinuxが有効であることを確認します。

# getenforce
Enforcing

SELinux無効化の設定に必要となる、grubbyパッケージが導入されていることを確認します。

# rpm -q grubby
grubby-8.40-63.el9.x86_64

SELinux無効化

下記のコマンドを実行してSELinuxを無効化します。

# sudo grubby --update-kernel ALL --args selinux=0

有効に戻したい場合は、下記のコマンドで行うことができます。

# sudo grubby --update-kernel ALL --remove-args selinux

設定反映のためにOSを再起動します。

# reboot

確認

下記のコマンドを実行してSELinuxが無効になっていることが確認できました。

# getenforce
Disabled

その他

以前使っていた設定ファイルの「SELINUX=enforcing」はそのままの状態です。

# cat /etc/selinux/config

--割愛--
# 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
--割愛--

grubbyコマンドではいくつかのファイルの設定変更を行っているようでした。詳細まで調べてませんが、とりあえず下記のコマンドを実行すればブート時のカーネルパラメーターargsの中に、selinux=0が追加されていることがわかります。

# grubby --info=ALL
index=0
kernel="/boot/vmlinuz-5.14.0-284.11.1.el9_2.x86_64"
args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet selinux=0"
root="/dev/mapper/rhel-root"
initrd="/boot/initramfs-5.14.0-284.11.1.el9_2.x86_64.img $tuned_initrd"
title="Red Hat Enterprise Linux (5.14.0-284.11.1.el9_2.x86_64) 9.2 (Plow)"
id="a8dbad134c0c45b88ce498176d6c2aa5-5.14.0-284.11.1.el9_2.x86_64"
index=1
kernel="/boot/vmlinuz-0-rescue-a8dbad134c0c45b88ce498176d6c2aa5"
args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet selinux=0"
root="/dev/mapper/rhel-root"
initrd="/boot/initramfs-0-rescue-a8dbad134c0c45b88ce498176d6c2aa5.img"
title="Red Hat Enterprise Linux (0-rescue-a8dbad134c0c45b88ce498176d6c2aa5) 9.2 (Plow)"
id="a8dbad134c0c45b88ce498176d6c2aa5-0-rescue"

参考

Red Hat Enterprise Linux で SELinux を無効にする方法 - Red Hat Customer Portal
Red Hat Enterprise Linux で SELinux を無効にするにはどうすればよいですか?

まとめ

無効にするよりSELinuxを有効にしたまま使いこなしたいものです。