投資とプログラミングな日々

投資が趣味なITエンジニアの雑記ブログです。

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

f:id:toyo--104:20190117230506p:plain

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

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

f:id:toyo--104:20190117225208p:plain

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

SELINUX=enforcing

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

SELINUX=disabled

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

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

 

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

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

sudo shutdown -r now

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

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

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

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