私のチームは同じルート パスワードを使用して開発サーバーにログインします。個別のユーザー アカウントは設定していません。
現在、ファイルの変更のログを作成し、異なる作成者を区別しようとしていますが、name_format=numeric
IP アドレスを公開するはずのルールを通過しても、ausearch は常にユーザー名 (つまり常に「root」) を返します。
答え1
注: この質問は、別のオンライン会場でも OP によって尋ねられました。これは、その別の場所での私の回答を編集したものです。複数のユーザーが直接 root としてログインすることは推奨されないという問題は、すでにそこで取り上げられているため、再度検討する必要はありません。
hostname
私が理解している限りでは、監査ログに、ログに記録された各アクションがどの IP アドレスから実行されたかを表示する方法を尋ねているのだと思います。ほとんどの監査行にはフィールドさえなくaddr
、フィールドがある数行も大部分が次のようになっていることに不満を感じています。
node=192.168.33.9 type=USER_START msg=audit(1422241281.664:263): pid=5912 uid=0 auid=1001 ses=18 msg='op=PAM:session_open acct="root" exe="/usr/bin/sudo" hostname=? addr=? terminal=/dev/pts/4 [...]
hostname
つまり、未知の値と値を持つaddr
。
Linux 監査サブシステムは、関連付けられたホスト名/IP 情報をエントリに自動的に入力しません。sshd などのデーモンは、何らかの方法で (sshd の場合は PAM 呼び出しを通じて) 明示的にそれらを監査に提供する必要があります。
node=192.168.33.9 type=CRED_ACQ msg=audit(1422240837.085:202): pid=5441 uid=0 auid=501 ses=18 msg='op=PAM:setcred acct="ratb" exe="/usr/sbin/sshd" hostname=canton.local addr=192.168.33.36 terminal=ssh res=success'
お気に入りのエディターなどのユーザー レベルのコマンドでは、ユーザーの出身地を考慮に入れないため、このようなことはまったく行われません。
ses
全員が同じユーザーとして直接ログインするため、ユーザー開始sshdがPAM経由で発行するメッセージを監査し、それses
をシステムコール追跡したいアクティビティのメッセージ。たとえば、これはecho hi > tmp/testing.txt
上記と同じ SSH セッションからの監査証跡なので、同じses
ID (18) を共有しています。
node=192.168.33.9 type=PATH msg=audit(1422241924.835:341): item=1 name="tmp/testing.txt" inode=2631940 dev=08:22 mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=CREATE
node=192.168.33.9 type=PATH msg=audit(1422241924.835:341): item=0 name="tmp/" inode=2621477 dev=08:22 mode=040755 ouid=0 ogid=0 rdev=00:00 nametype=PARENT
node=192.168.33.9 type=CWD msg=audit(1422241924.835:341): cwd="/root"
node=192.168.33.9 type=SYSCALL msg=audit(1422241924.835:341): arch=c000003e syscall=2 success=yes exit=3 a0=bc62a8 a1=241 a2=1b6 a3=10 items=2 ppid=5913 pid=5921 auid=1001 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts4 ses=18 comm="bash" exe="/bin/bash" key=(null)