SELinuxは、プロセスに「ドメイン」、リソース(ファイルやディレクトリ等)に「タイプ」というラベルを付与し、ドメインとタイプ間のパーミッションチェックを行うことにより、システムのセキュリティを高める仕組みです
SELinuxの動作モードには以下があります
Enforcing | SELinuxを有効にする - パーミッションのチェックを行い、アクセスを拒否する |
Permissive | SELinuxパーミッションのチェックはするが実際にアクセスの拒否はしない |
disabled | SELinuxを無効にするPermissiveモードはとても便利なモードです |
最終的にはSELinuxを有効にしてサーバを運用したいが、SELinuxが原因でFTPサーバ等がなかなかうまく動作してくれない等といった場合にこのモードにしておくと良いです
Permissiveモードは、SYSLOGにSELinuxのパーミッションエラーをプリントするがアクセス拒否はしない為、サーバがすべて組み上がった後に、エラー内容からSELinuxのル ールを生成するなどして、SELinux周りの問題を解決することもできます
SELinuxの現在の動作モードを確認するには getenforce コマンドを使います
# getenforce Enforcing
上の例では Enforcing とでていますので、SELinuxは有効な状態の様です
SELinuxの動作モードを一時的に変更するにはsenenforceコマンドを使います
動作モードには以下の二種類があります
-Permissiveモード
Permissiveモードとは、「SELinuxは有効だが、警告だけでアクセス拒否はしない」モードです
他ソフトウェアの設定作業の中で、SELinuxが原因でうまく動作していないのかどうかの問題を切り分ける時に使用すればよいかと思います
# setenforce 0
-Enforcingモード
SELinuxを有効にし、実際のアクセス拒否も行う場合はEnforcingモードにします
# setenforce 1
setenforceコマンドはSELinuxの動作モードを変更しますが、マシンを再起動すると元に戻ってしまいます
マシンを再起動してもSELinuxの動作モードが維持される様にするには設定ファイルを編集する必要があります
設定ファイルは、/etc/sysconfig/selinuxです
同ファイルの「SELINUX=」に値を設定します
SELINUX=disabled : 無効にする SELINUX=Enforcing : SELinuxパーミッションのチェックを行い、アクセスを拒否する SELINUX=Permissive : SELinuxパーミッションのチェックはするが実際にアクセスの拒否はしない
設定後、マシンを再起動すれば完了です
SELinuxを無効にした後、再び有効にする場合はラベルの再構築が必要です
また、再起動する前にラベルの再構築を行わないと、最悪システムが起動しなくなりますので注意して下さい