SELinux 基本編
Rev.26を表示中。最新版はこちら。
現在の動作モードの確認
getenforceコマンドにより確認できる。"Enforcing"ならSELinuxが有効。"Permissive"なら抑止されている。"Permissive"の場合、アクセス制御は行われないが、ログの出力は行うので調査時に便利。# /usr/sbin/getenforce Enforcing
表示 | 状態 |
---|---|
Enforcing | 有効 |
Permissive | 無効(ログは出力) |
Disabled | 無効 |
一時的にSELinuxの動きを抑止するには
setenforceコマンドにより設定する。再度有効にする場合は引数に1を指定する。# /usr/sbin/setenforce 0 # /usr/sbin/getenforce Permissive
起動時の設定を変更する
/etc/sysconfig/selinuxのSELINUXのフィールドにenforcing/permissive/disabledのいずれかを設定しておけば、次回起動時にそのモードで立ち上がる。プロセスのドメイン/ファイルのタイプの確認
psコマンドで-Zオプションや--contextオプションを指定すると「ユーザ:ロール:ドメイン」の形式で表示される。# ps -Z LABEL PID TTY TIME CMD user_u:system_r:unconfined_t 4814 pts/6 00:00:00 su root:system_r:unconfined_t 4817 pts/6 00:00:00 bash root:system_r:unconfined_t 5438 pts/6 00:00:00 adsl-connect root:system_r:unconfined_t 5736 pts/6 00:00:00 ps
ファイルのラベルを確認する場合もlsに-Zオプションや--contextオプションを与えることで「ユーザ:ロール:タイプ」の形式で表示される。
ログの調査
ログは以下のファイルに吐かれる。/var/log/audit/audit.log
ログの中で"denied"になっているようなものがあると、SELinuxによってアクセスが拒否されたことを示す。
type=AVC msg=audit(1141465777.865:3330270): avc: denied { search } for pid=10848 comm="iiimd" name=/ dev=hda3 ino=2 scontext=root:system_r:i18n_input_t tcontext=system_u:object_r:home_root_t tclass=dir
上記のログはiiimdが/にアクセスして拒否されたことを示している。scontextはプロセスのコンテキスト。tcontextはファイルのコンテキスト。
ファイルのタイプの設定
ファイルのタイプは以下のファイルに記述されている。/etc/selinux/targeted/ contexts/files/ file_contexts file_contexts.homedirs src/policy/file_contexts/*例:
/home/[^/]* -d user_u:object_r:user_home_dir_t /home/[^/]*/.+ user_u:object_r:user_home_t
上記のファイルを修正した後、fixfilesコマンドにより再設定できる。
#/sbin/fixfiles relabel /home/apache (/home/apache配下のみ再設定する場合)
関連
SELinux ポリシー設定編