SELinuxの基礎知識と確認・設定方法
SELinux
Security-Enhanced Linuxの略。
米NSA(National Security Agency=米国国家安全保障局)が中心となって、不正侵入の被害を極力少なくすることを目的に開発。
オープンソースとして提供されており、主要なLinuxディストリビューションに組み込まれている。
基本的にはすべてのアクセスを拒否し、ポリシー(アクセス制御設定)でアクセスコントロールを行う仕組み。
root権限も無効化する。
Permissiveモード
デフォルトのポリシーで通常は動作するが、インストールしたソフトウェアやWebコンテンツなどがうまく動作しない場合がある。
その際の問題切り分け(SELinuxのせいなのか、他に原因があるか)に、一時的にSELinuxをPermissiveモードにして確認を行ったりする。
状態の確認
$ getenforce
現在の状態を表示する。
状態 | 説明 |
---|---|
Enforcing | 有効化されており、ポリシーに違反するアクセスを拒否する |
Permissive | 有効化されているが、ポリシー違反はログに出力するのみ |
Disable | 無効化されている |
$ getenforce
Permissive
/etc/sysconfig/selinux
システム起動時の設定が書かれている。
システム再起動後も設定を反映させる場合は、このファイルの定義を変更すること。
$ sudo vi /etc/sysconfig/selinux
# 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=permissive
...
設定変更(一時的)
一時的な変更は $ setenforce
コマンドを使用する。
※Disableにする場合は、/etc/sysconfig/selinuxファイルの値を変更する。
引数 | 説明 |
---|---|
0 | Permissiveへ |
1 | Enforcingへ |
# Permissiveに変更
$ sudo setenforce 0
# Enforcingに変更
$ sudo setenforce 1
設定変更(恒久的)
/etc/sysconfig/selinuxファイルの定義を変更する。
# 変更する
$ sudo vi /etc/sysconfig/selinux
# 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=permissive
...
# Linuxを再起動する
$ shutdown -r now