Linuxの設定をしている際に、SELinuxのコマンドはよく必要になるけれど、よく忘れるのでSELinuxの無効化の方法やコマンド類をメモしておきました。
SELinux (エスイーリナックス) とは何か
SELinuxは、Security Enhanced Linuxの略で、文字通り、Linuxのセキュリティを向上させるための仕組みです。
おおよその仕組みは以下の通りです。
Linuxに限らず、多くのオペレーティングシステムでは管理者と呼ばれるユーザーでログインするとすべてのアクセスが可能となります。
このことは、逆に見れば、管理者を乗っ取られれば、すべてのアクセスを許してしまうことを意味します。
Linux(UNIX)の場合、管理者はrootと呼ばれます。
SELinuxでは、このrootにセキュリティが一極集中することを避けて、rootにすべてのアクセス権限を許すのではなくて、HTTPやFTPといったプロセスごとにアクセス権限を設けることができます。
CentOSを初め多くのLinuxのディストリビューションではSELinuxはデフォルトで有効化されています。
SELinuxの仕組みは、かなり雑な言い方をすれば、WindowsのUAC、User Account Control、ユーザーアカウント制御と同じです。
SELinuxの有効化・無効化の方法
SELinuxの動作確認方法
Permissive
このコマンドの結果の意味は以下の通りです。
disabled:SELinuxを無効
enforcing:ポリシーに違反するアクセスに対し、ログに書き出して拒否(SELinuxは有効)
permissive:ポリシーに違反するアクセスに対し、ログに書き出して許可(SELinuxは無効)
ちょっと分かりにくいですが、enforcingは、SELinuxが有効化されており、disabled、permissiveはSELinuxが無効化されている状態です。
SELinuxを一時的に無効化
以下のコマンドでSELinuxを一時的に無効化できます。
何かの問題が発生した時にSELinuxを一時的に無効にして問題の切り分けを行います。
注意点として、再起動すると再度初期設定に戻ります。
初期設定は、/etc/selinux/configに書いてある設定です。
SELinuxを一時的に有効化
以下のコマンドでSELinuxを一時的に有効化できます。
SELinuxの設定
/etc/selinux/config を編集します。
SELINUXのところをdisabledにしておけば、Linuxを再起動したときに、SELinuxは無効化されています。
1 2 3 4 5 6 7 8 9 10 11 12 |
# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. #SELINUX=enforcing SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted |
SELinuxは必要か?
誤解されることを恐れずに書けば、SELinuxは大規模サーバーを運用する場合を除けば、不要と考えます。
なぜなら、SELinuxの設計思想であるrootのパスワードが漏えいしても、システムに致命的な被害を与えないという発想は、現実的にはありえないと思うからです。
rootのパスワードが漏えいしたことが分かったら、サーバーの管理者が行うべきことは、まずパスワードが漏えいした原因を調べて、次に対策を立てて、rootのパスワードを変更して、システムを再起動すべきです。
当たり前ですね。
rootのパスワードが漏えいしたこと自身がもはや致命的な出来事で、真っ先に対策を行うべきことなのです。
むしろシステム管理者に取って困るのは、SELinuxが有効であると、ファイルアクセスに対して色々と制約を受けることです。
私自身は、Fedora6以降のLinuxで、SELinuxがデフォルトで有効であったために、Webサーバーの運用中に何度もトラブルで悩まされたことがあります。
もちろん、それらのトラブルの多くは、SELinuxに対する知識が無知であったために起こっていることは事実ですが、SELinuxが最初から無効だったら時間を無駄にすることはなかったと思います。
私なら、SELinuxが有効であった時のメリットと無効であった時のメリットを天秤にかけると無効の方を取ります。
したがって、私はLinuxをインストールすると真っ先に、SELinuxを無効にしています。
さくらのVPSサーバー
↓月額685円からの低価格&高パフォーマンスのVPS、さくらのVPSはコチラ
SSDプランが月々685円から使える!さくらのVPS
コメント
[…] 参考: SELinuxをCentOS 7で有効化・無効化(disabled, enforcing, permissive) | urashita.com […]
[…] SELinuxをCentOS 7で有効化・無効化(disabled, enforcing, permissive) | urashita.com […]
[…] […]
[…] […]
[…] […]
[…] ➡SELinuxをCentOS7で有効化・無効化 […]