5.5. Audit ログの SELinux 拒否
Linux Audit システムは、デフォルトで /var/log/audit/audit.log
ファイルにログエントリーを保存します。
SELinux 関連の記録のみをリスト表示するには、メッセージタイプパラメーターの AVC
および AVC_USER
(並びに必要に応じたパラメーター) を付けて ausearch
コマンドを実行します。
# ausearch -m AVC,USER_AVC,SELINUX_ERR,USER_SELINUX_ERR
Audit ログファイルの SELinux 拒否エントリーは次のようになります。
type=AVC msg=audit(1395177286.929:1638): avc: denied { read } for pid=6591 comm="httpd" name="webpages" dev="0:37" ino=2112 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:nfs_t:s0 tclass=dir
このエントリーで最も重要な部分は以下の通りです。
-
avc: denied
- SELinux によって実行され、アクセスベクターキャッシュ (AVC) で記録されるアクション -
{ read }
- 拒否の動作 -
pid=6591
- 拒否されたアクションの実行を試みたサブジェクトのプロセス ID -
comm="httpd"
- 分析しているプロセスを呼び出すのに使用されたコマンドの名前 -
httpd_t
- プロセスの SELinux タイプ -
nfs_t
- プロセスのアクションに影響するオブジェクトの SELinux タイプ -
tclass=dir
- ターゲットオブジェクトクラス
このログエントリーは、以下のように解釈できます。
SELinux が、nfs_t
タイプのディレクトリーから読み込む PID 6591 および httpd_t
タイプの httpd
プロセスを拒否します。
Apache HTTP Server が Samba スイートのタイプでラベル付けされたディレクトリーにアクセスしようとすると、以下の SELinux 拒否メッセージが発生します。
type=AVC msg=audit(1226874073.147:96): avc: denied { getattr } for pid=2465 comm="httpd" path="/var/www/html/file1" dev=dm-0 ino=284133 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:samba_share_t:s0 tclass=file
-
{ getattr }
-getattr
エントリーは、ターゲットファイルのステータス情報をソースプロセスが読み取ろうとしているのを示します。これは、ファイルを読み取る前に発生します。プロセスがファイルにアクセスし、適切なラベルがないため、SELinux はこのアクションを拒否します。一般的に表示されるパーミッションには、getattr
、read
、write
などが含まれます。 -
path="/var/www/html/file1"
- アクセスを試みたオブジェクト (ターゲット) へのパス。 -
scontext="unconfined_u:system_r:httpd_t:s0"
- 拒否されたアクションを試みたプロセス (ソース) の SELinux コンテキスト。この場合、Apache HTTP Server はhttpd_t
タイプで実行している SELinux コンテキストです。 -
tcontext="unconfined_u:object_r:samba_share_t:s0"
- プロセスがアクセスを試みたオブジェクト (ターゲット) の SELinux コンテキストです。この例では、これがfile1
の SELinux コンテキストです。
この SELinux 拒否は、以下のように解釈できます。
SELinux は、samba_share_t
タイプの /var/www/html/file1
ファイルにアクセスする PID 2465 の httpd
プロセスを拒否し、その他に許可するような設定がない場合は、httpd_t
ドメインで実行しているプロセスにアクセスできません。
関連情報
-
システムの
auditd(8)
およびausearch(8)
の man ページ