Contents
SELinux とは
SELinux とは、ざっくりいうと「システムへの侵入といったセキュリティリスクをアクセスコントロールなどの技術により限定した範囲内にとどめる」カーネルのセキュリティモジュールです。
SELinux を無効化していいのか
そんな SELinux ですが、サーバベンダのインストレーションマニュアルには「SELinux を無効にしてください」と記載されることもあり、無効化した状態で運用するは珍しくありません。(それが良いのか悪いのかはともかく)
(SELinuxは)システムのセキュリティを強固にすることができるため、インターネット上のサーバ運用等にはメリットがありますが、信頼できる内部ネットワークでの使用や、開発環境やテスト環境として使用する際には、無効にしておく方が良い場合もあります。
標準テキスト CentOS 7 構築・運用・管理パーフェクトガイド より引用
標準テキスト CentOS 7 構築・運用・管理パーフェクトガイド
SELinux を一時的/永続的に無効化する方法
SELinux を無効化する方法の前に、SELinux の状態は有効と無効の2つではなく、3つの状態(ステータス)があります。それぞれの違いをまずは理解しましょう。
SELinux 3つのステータス
SELinux のステータスは以下の3つです。
状態 | 説明 |
enforcing | SELinux のセキュリティポリシーを強制実行する |
permissive | SELinux のセキュリティポリシーを強制せず、ポリシーに反した場合は警告メッセージを出す |
disabled | SELinux のセキュリティポリシーをロードしない |
つまり、SELinux を無効化したい場合はステータスを「permissive」もしくは「disabled」にする必要があります。
SELinux の現在の状態を確認する
現在の SELinux の状態は以下のコマンドで確認することができます。
getenforce
より詳細な内容を確認するには以下のコマンドを実行します。
sestatus
SELinux を一時的に無効にする
SELinux を一時的に無効化したい場合は以下のコマンドを実行します。
setenforce 0
SELinux を永続的に無効にする
SELinux を永続的に無効化する場合は、以下のコマンドを実行後ファイルを編集します。
vi /etc/selinux/config
上記ファイルの「SELINUX=enforcing」となっている箇所を、「SELINUX=permissive」もしくは「SELINUX=disabled」に変更します。
変更後は reboot コマンドで再起動します。
【注意】やってはいけないこと
「SELINUX=disabled」ではなく、誤って「SELINUXTYPE=disabled」にしてしまうと Linux が起動しなくなります。
※この設定は絶対やってはいけません!
SELINUX=enforcing
SELINUXTYPE=disabled
詳しくは「SELINUX カーネルパニック」で検索してください。
まとめ
- 現在の状態確認 → getenforce
- 一時的に無効化 → setenforce 0
- 永続的に無効化 → vi /etc/selinux/config → SELINUX=[permissive | disabled]