概要
CentOS7ではデフォルトでSELinuxが入っていて、SELinuxによって細かいアクセス制御が可能となる。よって運用するにあたり、何かの拍子に悪意のあるユーザーがサーバーに入った際の事後の防衛に役に立つ。
しかしながら、使う上で余計な挙動が起こって手順が増えたりすることもあり、一時的に無効化している時もある。
ここの記事では動いている状態の共有を円滑に行う為、SELinuxに関する文言を省略している。
どうしても一時的に無効化したいひとのための手順や、無効化するリスクについてをここでは記していく。
設定確認
まず、今自分が設定したいサーバーのSELinuxが今、どの状態なのかを確認する。下記のコマンドを実行すると、現在のSELinuxの状態が出力される。
# getenforce
具体的には
・Enforcing SELinuxが有効になっていて、アクセス制御が有効となる。
・Permissive アクセス制御は無効だが警告メッセージを表示する。
・Disabled SELinuxが無効になっている。 のどれかが出力されるはずだ。 ここで自分の思い通りの設定になっていない場合の手順をこれから記していく。
一時的に無効化する手順
まず、永続的に無効化する必要がないならするべきではない。なぜなら無効化していると、最悪サーバーに入られた際に防衛できないからだ。
よって、一時的に無効化するだけで良いならそちらを選択して欲しい。
実際に打つコマンドは
# setenforce 0
で一時的に無効化(Permissive)になるはずだ。
逆にpermissiveから元に戻す(有効化する)場合は
# setenforce 1
これで有効化(Enforcing)される。
永続的に無効化する方法
あまりお勧めはしないが、運用上で永続的に無効化する人は次の方法で永続的に無効化ができる。設定ファイルを書き換えるので不安な方はバックアップを取ることをお勧めする 変更前
# vi /etc/selinux/config
SELINUX=enforcing
このenforcingをdisabledに変更する。
変更後
SELINUX=disabled
変更を保存します。逆のことをすれば、有効化もできる。 変更した設定を反映させるためには再起動が必要なので、再起動をする。
# reboot
再起動が終了したら、念のため設定が反映されているか確認をしよう。
# getenforce
Disabled
これで永続的に無効化ができます。
何度も言いますが、一時的に無効化するほうがセキュリティ上良いので、特別な事情がない限りは永続的に無効化は行わないようにお願いします。
総括
本来であれば何度も言うが無効化はセキュリティ上あまりするべきではないが、変なところで制約がかかることもあるのでこの記事を書くに至った。無効化する際は慎重に考えた上で行ってほしい。