CentOS4.x CentOS5.x CentOS6.x SELinux

SELinuxを一時的に有効または無効にするにはsetenforceコマンドを使いますが、再起動すると元に戻ってしまいます

再起動後も設定を維持させる場合は設定ファイル(/etc/sysconfig/selinux)に設定を行う必要があります

SELinuxとは

SELinuxは、プロセスに「ドメイン」、リソース(ファイルやディレクトリ等)に「タイプ」というラベルを付与し、ドメインとタイプ間のパーミッションチェックを行うことにより、システムのセキュリティを高める仕組みです

SELinuxの動作モード

SELinuxの動作モードには以下があります

EnforcingSELinuxを有効にする - パーミッションのチェックを行い、アクセスを拒否する
PermissiveSELinuxパーミッションのチェックはするが実際にアクセスの拒否はしない
disabledSELinuxを無効にする

Permissiveモードはとても便利なモードです

最終的にはSELinuxを有効にしてサーバを運用したいが、SELinuxが原因でFTPサーバ等がなかなかうまく動作してくれない等といった場合にこのモードにしておくと良いです

Permissiveモードは、SYSLOGにSELinuxのパーミッションエラーをプリントするがアクセス拒否はしない為、サーバがすべて組み上がった後に、エラー内容からSELinuxのルールを生成するなどして、SELinux周りの問題を解決することもできます

SELinuxの現在の動作モードを確認するには

SELinuxの現在の動作モードを確認するには getenforce コマンドを使います

# getenforce
Enforcing

上の例では Enforcing とでていますので、SELinuxは有効な状態の様です

SELinuxの動作モードを一時的に変更してみる

SELinuxの動作モードを一時的に変更するにはsenenforceコマンドを使います

動作モードには以下の二種類があります

Permissiveモード

Permissiveモードとは、「SELinuxは有効だが、警告だけでアクセス拒否はしない」モードです

他ソフトウェアの設定作業の中で、SELinuxが原因でうまく動作していないのかどうかの問題を切り分ける時に使用すればよいかと思います

#setenforce 0

Enforcingモード

SELinuxを有効にし、実際のアクセス拒否も行う場合はEnforcingモードにします

# setenforce 1

SELinuxの動作モードの設定を再起動後も有効にするには

setenforceコマンドはSELinuxの動作モードを変更しますが、マシンを再起動すると元に戻ってしまいます

マシンを再起動してもSELinuxの動作モードが維持される様にするには設定ファイルを編集する必要があります

設定ファイルは、/etc/sysconfig/selinuxです

同ファイルの「SELINUX=」に値を設定します

SELINUX=disabled   : 無効にする
SELINUX=Enforcing  : SELinuxパーミッションのチェックを行い、アクセスを拒否する
SELINUX=Permissive : SELinuxパーミッションのチェックはするが実際にアクセスの拒否はしない

設定後、マシンを再起動すれば完了です

SELinuxを無効にした場合の注意点

SELinuxを無効にした後、再び有効にする場合はラベルの再構築が必要です

また、再起動する前にラベルの再構築を行わないと、最悪システムが起動しなくなりますので注意して下さい

関連ページ