まめぞうの技術メモ

IT関連で勉強したことをメモします

SELinuxを無効化する方法【CentOS7】

SELinuxを無効化する方法
検証などで引っかかりがちなSELinuxを無効化

Linuxのセキュリティ強化のためにアクセス制御をかけてくれるSELinux

しかし、CentOS7にはデフォルトでインストール&有効化されているために、しばしば強力なアクセス制御で我々の行く手を阻んできます。

いっその事、SELinuxを無効化してしまえ、という時のやり方を書いておきます。

どんな時に無効化すべき?

SELinuxは、折角CentOS側でセキュリティ面を心配してくれて入れておいてくれてるので、出来れば無効化しない方が安全です。

無効化するのは、開発のためにいろんなソフトを入れたり、プロセスやサービスを起動したりする時に、一々SELinuxで引っかかるのを防止するためにするのが良いでしょう。

検証のために無効化するのがベストで、最終的にはSELinuxを有効化して動くように設計した方がいいですね。

まずは今の設定を確認

無効化する前に、現在の設定を確認しましょう。

getenforce」コマンドで状態が確認できます。

例えば以下のサンプルのようになります。

[centos@ip-172-31-39-61 ~]$ getenforce
Enforcing

各レスポンスの意味は、以下の通りです。

  • enforcing - SELinuxセキュリティポリシーが強制されます。
  • permissive - SELinuxは強制ではなく警告を表示します。
  • disabled - SELinuxポリシーはロードされていません。

一時的にSELinuxを無効化する

再起動するまでの間、一時的にSELinuxを無効化する方法は「setenforce」コマンドを使います。sudoでないと、権限不足で怒られるかもしれません。

以下はサンプルです。

sudo setenforce permissive

さて、getenforceしてみると、ちゃんと適用されています。

[centos@ip-172-31-39-61 ~]$ getenforce
Permissive

永続的にSELinuxを無効化する

さて、一時的に適用するには「setenforce」コマンドで良かったですが、永続的に適用するには「/etc/selinux/config」を編集して、サーバー再起動する必要があります。

「/etc/selinux/config」を編集するにはviで開きましょう。sudoで実行した方が権限不足になりにくいです。

sudo vi /etc/selinux/config

実行すると、以下のようなファイルが開きます。

SELinux設定

編集モード(iボタン押下)で、以下の部分を書き換えましょう。

SELINUX=enforcing

enforcing(強制)から、permissive(警告のみ)かdisabled(無効)に変更しましょう。以下は例です。

SELINUX=disabled

終わったら保存(:wq)して下さい。

※viの使い方が分からない方はググってください

その後は、サーバーを再起動しましょう。

以下のコマンドで再起動できます。

sudo shutdown -r now

サーバーはすぐに再起動されます。

getenforceしてみると、設定が適用されていると思います。

[centos@ip-172-31-39-61 ~]$ getenforce
Disabled

これでSELinuxの無効化は完了です!