このチュートリアルでは、CentOSサーバーでSELinux(Security-Enhanced Linux)を無効にする方法を紹介する。CentOSのバージョンは7または8である必要がある。バージョンは問わない。

SELinuxとは?

SELinuxはカーネルが直接制御するセキュリティメカニズムだ。管理者とユーザーがSELinuxポリシーに基づいてアクセス制御をより詳細に制御できるようにする。

SELinuxには3つの異なる動作モードがある。以下がそれだ:

  1. Enforcing: SELinuxポリシーとポリシールールに基づいてアクセスを許可する。
  2. Permissive: SELinuxはEnforcingモードで実行されていた場合に拒否されたであろうアクションをログに記録するのみ。
  3. Disabled: メッセージはログに記録されず、サーバー上でSELinuxポリシーは有効になっていない。ほとんどの場合、cPanelやPleskなどのウェブコントロールパネルを使用する際にDisabledモードが使われる。

前提条件

rootユーザーまたはsudo権限を持つユーザーのみがSELinuxモードを更新できる。

SELinuxモードの確認

"sestatus"コマンドでSELinuxの状態を確認できる。出力にはSELinuxが有効で、モードがEnforcingに設定されていることが表示される。

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:      31

SELinuxを無効にする

モードをPermissiveに変更することを強く推奨する。アプリケーションによってはSELinuxを好まず、Disabledモードを要求する場合がある。

SELinuxモードをEnforcingからDisabledに恒久的に変更するには、まずviやnanoなどのテキストエディタを使用する。

/etc/selinux/configファイルを開き、以下のように6行目のSELINUX値をdisabledに変更する:

# 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.
SELINUX=disabled
# 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

これでファイルを保存してテキストエディタを終了できる。サーバーを再起動する時だ:

sudo reboot

SELinuxステータスの最終確認

これで、サーバー上でSELinuxが正常に無効になったことを確認する。"sestatus"コマンドを再度実行すると、出力は次のようになるはずだ:

SELinux status:                 disabled

結論

これで、自分に適したまたは必要なSELinuxモードに変更できるようになった。SELinuxは強制アクセス制御(MAC)を実装するセキュリティメカニズムだ。SELinuxはCentOS 7およびCentOS 8システムでデフォルトでEnforcingモードになっている。設定ファイルを編集してサーバーを再起動することで変更できる。

SELinuxに関する詳細情報は、CentOSのSELinuxページで確認できる。