auditdを使用してディレクトリへの変更を監視しようとしています。問題は、ルールを設定すると、指定したディレクトリだけでなく、その下にあるすべてのサブディレクトリとファイルも監視し、冗長性が無限にあるために監視が役に立たなくなることです。
ルールの設定方法は次のとおりです。
auditctl -w /home/raven/public_html -p war -k raven-pubhtmlwatch
を使用してログを検索すると
ausearch -k raven-pubhtmlwatch
public_html
の下のすべてをリストするログから数千行を取得します。
指定されたディレクトリのみの変更にルールを制限するにはどうすればよいですか?
クレジットは、 linux-audit メーリングリストで私の質問に答えたSteve @redhatに送られます。
時計は実際には偽装したシステムコールルールです。ディレクトリにウォッチを配置すると、auditctlはそれを次のように変換します。
-a exit,always -F dir=/home/raven/public_html -F perm=war -F key=raven-pubhtmlwatch
-F
dirフィールドは再帰的です。ただし、ディレクトリエントリを監視するだけの場合は、それを-F
パスに変更できます。-a exit,always -F path=/home/raven/public_html -F perm=war -F key=raven-pubhtmlwatch
これは再帰的ではなく、ディレクトリが占めるiノードを監視するだけです。
ルールを/etc/audit/audit.rules
に手動で追加してから、auditdを再起動する必要がありました。
/etc/init.d/auditd restart
これでルールが追加され、うまく機能します!
Ubuntu 12.04は、システムオブジェクトに対して同じように動作するようには見えません。このウォッチを/ etcまたは/ usr/libに配置してみてください(別の投稿では、トップレベルのディレクトリをウォッチしようとすると問題が発生するようです)。次に、これらのディレクトリの1つに何かを作成すると、audit.logにキーワードが何も表示されません。この項目は、PCI DSS 3.110.2.7のテストに関連しています。