auditd は、Linux 監査システムのユーザー空間コンポーネントです。監査レコードをディスクに書き込む役割を果たします。ログを表示するには、ausearch または aureport ユーティリティを使用します。監査ルールの構成は、auditctl ユーティリティを使用して行います。起動時に、/etc/audit/rules.d/audit.rules (CentOS/RHEL 7 の場合) のルールが auditctl によって読み取られます。監査デーモン自体には、管理者がカスタマイズできるいくつかの構成オプションがあります。それらは auditd.conf ファイルにあります。
この投稿では、Linux サーバーの再起動/シャットダウンに使用されるユーザー資格情報とコマンドを取得するためのサンプル監査ルールを提供しています。このルールは必要に応じて変更できます。
監査ルールを追加するための主要な構成ファイルは「/etc/audit/audit.rules」であり、必要なルールで同じものを更新する必要があります。
注意 :CentOS/RHEL 7 では、構成ファイルは /etc/audit/audit.rules ではなく /etc/audit/rules.d/audit.rules です。
監査構成
以下は CentOS/RHEL 6 に基づく例ですが、手順は CentOS/RHEL 7 でも同じです。
1. 既存の構成のバックアップを取ります。
# cp /etc/audit/audit.rules /etc/audit/audit.rules.bkp
2. ファイル /etc/audit/audit.rules を編集し、次のルールを追加して永続化します。
# vi /etc/audit/audit.rules -a exit,always -F arch=b64 -S execve -F path=/sbin/reboot -k reboot [ -k Filter key ] -a exit,always -F arch=b64 -S execve -F path=/sbin/init -k reboot -a exit,always -F arch=b64 -S execve -F path=/sbin/poweroff -k reboot -a exit,always -F arch=b64 -S execve -F path=/sbin/shutdow -k reboot
3. auditd サービスを再起動して、変更を有効にします。
# service auditd restart
4. 追加されたルールをリストします。
# auditctl -l LIST_RULES: exit,always arch=3221225534 (0xc000003e) watch=/sbin/reboot key=reboot syscall=execve LIST_RULES: exit,always arch=3221225534 (0xc000003e) watch=/sbin/init key=reboot syscall=execve LIST_RULES: exit,always arch=3221225534 (0xc000003e) watch=/sbin/poweroff key=reboot syscall=execve LIST_RULES: exit,always arch=3221225534 (0xc000003e) watch=/sbin/shutdow key=reboot syscall=execve
確認
監査ログから再起動イベントをフィルターするには、フィルター キーを指定する必要があります。
# ausearch -k reboot time->Mon Jan 4 11:48:20 2016 type=PATH msg=audit(1451926100.004:17): item=1 name=(null) inode=1368522 dev=fc:00 mode=0100755 ouid=0 ogid=0 rdev=00:00 type=PATH msg=audit(1451926100.004:17): item=0 name="/sbin/init" inode=1792404 dev=fc:00 mode=0100755 ouid=0 ogid=0 rdev=00:00 type=CWD msg=audit(1451926100.004:17): cwd="/root" type=EXECVE msg=audit(1451926100.004:17): argc=2 a0="init" a1="6" type=SYSCALL msg=audit(1451926100.004:17): arch=c000003e syscall=59 success=yes exit=0 a0=12706f0 a1=1271190 a2=1268ec0 a3=8 items=2 ppid=2830 pid=2879 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=1 comm="init" exe="/sbin/init" key="reboot
ここで、
uid – ユーザー ID を表します。
gid – グループ ID を表す
exe=”/sbin/init” – コマンドが実行されました