そのため、特定のディレクトリ内のすべてのファイルアクセス操作を記録するようにselinuxを設定しました。以下は、sftpでlsを実行したときのいくつかのサンプルログ出力です。
type=AVC msg=audit(1338465611.221:356): avc: granted { getattr } for pid=5973 comm="sftp-server" path="/polog" dev=dm-0 ino=1966081 scontext=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:polog_t:s0 tclass=dir
この場合、sftpはuser1として実行されています。 selinuxにこのユーザー名を記録させる方法はありますか、それとも別のアプローチを取る必要がありますか?
これは私のポリシーファイルです。
---polog.te---
policy_module(polog, 1.0.14)
require {
type fs_t;
type unconfined_t;
type sshd_t;
type setfiles_t;
class filesystem associate;
class dir relabelto;
}
type polog_t;
#============= polog_t ==============
allow polog_t fs_t:filesystem associate;
allow unconfined_t polog_t:dir relabelto;
allow setfiles_t polog_t:dir relabelto;
#====================================
auditallow unconfined_t polog_t : file *;
auditallow unconfined_t polog_t : dir *;
allow unconfined_t polog_t : file *;
allow unconfined_t polog_t : dir *;
---polog.fc---
/polog(/.*)? gen_context(system_u:object_r:polog_t)
答え1
SELinuxは既存のDACユーザー名では機能しないため、この情報をこの方法で表示することはできません。監査サブシステムとデーモンを調べる必要があります auditd
。これらのファイルへのアクセスを記録するには、SELinuxとは別に特定のルールセットを作成する必要があります。
始めるのに役立ついくつかのリンク:
- サブシステム監査のためのスライド;
- 監査ルールの定義(RHEL 6文書);
- audit.rules(7) (つまり
man 7 audit.rules
)。