CentOS 7 SELinux を永続的に無効化する方法

SELinux とは

SELinux とは、ざっくりいうと「システムへの侵入といったセキュリティリスクをアクセスコントロールなどの技術により限定した範囲内にとどめる」カーネルのセキュリティモジュールです。

SELinux を無効化していいのか

そんな SELinux ですが、サーバベンダのインストレーションマニュアルには「SELinux を無効にしてください」と記載されることもあり、無効化した状態で運用するは珍しくありません。(それが良いのか悪いのかはともかく)

(SELinuxは)システムのセキュリティを強固にすることができるため、インターネット上のサーバ運用等にはメリットがありますが、信頼できる内部ネットワークでの使用や、開発環境やテスト環境として使用する際には、無効にしておく方が良い場合もあります。

 

標準テキスト CentOS 7 構築・運用・管理パーフェクトガイド より引用

SELinux を一時的/永続的に無効化する方法

SELinux を無効化する方法の前に、SELinux の状態は有効と無効の2つではなく、3つの状態(ステータス)があります。それぞれの違いをまずは理解しましょう。

SELinux 3つのステータス

SELinux のステータスは以下の3つです。

状態説明
enforcingSELinux のセキュリティポリシーを強制実行する
permissiveSELinux のセキュリティポリシーを強制せず、ポリシーに反した場合は警告メッセージを出す
disabledSELinux のセキュリティポリシーをロードしない

つまり、SELinux を無効化したい場合はステータスを「permissive」もしくは「disabled」にする必要があります。

SELinux の現在の状態を確認する

現在の SELinux の状態は以下のコマンドで確認することができます。

getenforce

より詳細な内容を確認するには以下のコマンドを実行します。

sestatus

“getenforce” と “sestatus” を実行するとこんな感じ

SELinux を一時的に無効にする

SELinux を一時的に無効化したい場合は以下のコマンドを実行します。

setenforce 0

setenforce だと「Disabled」状態にすることはできない

SELinux を永続的に無効にする

SELinux を永続的に無効化する場合は、以下のコマンドを実行後ファイルを編集します。

vi /etc/selinux/config

上記ファイルの「SELINUX=enforcing」となっている箇所を、「SELINUX=permissive」もしくは「SELINUX=disabled」に変更します。

変更後は reboot コマンドで再起動します。

disabled にする場合

【注意】やってはいけないこと

「SELINUX=disabled」ではなく、誤って「SELINUXTYPE=disabled」にしてしまうと Linux が起動しなくなります

※この設定は絶対やってはいけません!

SELINUX=enforcing
SELINUXTYPE=disabled

起動時に「Failtd」となる

ここから先に進まない

詳しくは「SELINUX カーネルパニック」で検索してください。

まとめ

  • 現在の状態確認 → getenforce
  • 一時的に無効化 → setenforce 0
  • 永続的に無効化 → vi /etc/selinux/config → SELINUX=[permissive | disabled]

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)