SELinux の有効化
- /etc/selinux/config の SELINUX の値を enforcing に書き換える。
- sestatus で設定の記述に誤りがないかを確認する。
- fixfiles on boot を実行する。
- OS を再起動する。
Note:
標準で AppArmor や TOMOYOLinux 等の
アクセス制限機能が有効になっている場合は、
それらを無効化しなければならない。
設定ファイル
SELINUX={enforcing | permissive | disabled}
SELINUXTYPE=使用するポリシーセット
SELINUXTYPE
既定値は targeted 。
targeted ポリシーセットは、攻撃対象として
狙われやすいアプリケーションのみを SELinux の制御下に置く。
Note:
存在しないポリシーセットを指定するとカーネルパニックが発生する。
カーネルパニックが発生した場合は、
起動時に grub オプションへ selinux=0 を指定することで
SELinux を Disabled 状態で起動することができる。
セキュリティポリシーの構成
TE ファイル
セキュリティポリシーの本体。
セキュリティコンテキストの定義やアクセス許可を記述する。
FC ファイル
定義したセキュリティコンテキストをデフォルトで
どのファイル(パス)へ付与するかを記述する。
IF ファイル
他のドメインがモジュール内で定義したセキュリティコンテキストを
使用する為のインターフェイスを記述する。
コマンド
getenforce
SELinux の状態を確認する。
Enforcing
SELinux が有効になっており、実際のアクセス制限を行う状態。
セキュリティポリシーに従ってシステムコールの実行可否を
判断 / 制御し、アクセス拒否した際のログを出力する。
Permissive
SELinux は有効になっているが、実際のアクセス制限は行わない状態。
セキュリティポリシーに従ってシステムコールの実行可否を
判断するが制御は行わず、アクセス拒否のログだけを出力する。
Disabled
SELinux が無効になっている状態。
アクセス制限 / ログ出力 / 新規ファイルやプロセスに対して
セキュリティポリシーを適用しない。
setenforce{0 | 1}
SELinux の状態を変更する。
0=Permissive
1=Enforcing
sestatus
設定ファイルの設定を含めた状態を確認する。
設定ファイルの記述に誤りがないかを確認することができる。
Current mode
現在の状態を表す。
Mode from config file
設定ファイルで設定された状態を表す。
sesearch
システムに適用されているセキュリティポリシーを検索する。
TE ファイルを読み解くことなくアクセス権限を知ることができる。
semanage fcontext -l
FC ファイルの定義内容を確認する。
ls -Z
ファイルのセキュリティコンテキストを確認する。
ps -Z
プロセスのセキュリティコンテキストを確認する。
id -Z
ログインユーザのセキュリティコンテキストを確認する。
chcon
一時的にセキュリティコンテキストを付与する。
chcon で付与したセキュリティコンテキストは
SELinux を有効化する際に初期化される。
restorecon
システムを起動したまま SELinux の有効化を実行する。