Bagaimana saya bisa menggunakan ausearch untuk mencatat IP pengguna ketika mereka memodifikasi file melalui SSH?

0

Tim saya masuk pada server pengembangan menggunakan kata sandi root yang sama; kami belum menyiapkan akun pengguna terpisah.

Saya sekarang mencoba untuk membuat log perubahan file dan saya ingin membedakan antara penulis yang berbeda, tetapi ausearch selalu mengembalikan nama pengguna (jadi "root" selalu), bahkan ketika saya melewati aturan name_format=numeric, yang seharusnya mengekspos Alamat IP alih-alih "root".

Guybrush Threepwood
sumber

Jawaban:

1

CATATAN: Pertanyaan ini juga ditanyakan oleh OP di tempat online lain. Ini adalah versi edit dari jawaban saya di lokasi lain itu. Ketidakmampuan beberapa pengguna masuk secara langsung karena root telah diatasi di sana, dan tidak perlu ditinjau kembali.

Seperti yang saya pahami, Anda bertanya bagaimana cara mendapatkan log audit untuk menunjukkan dari mana alamat IP setiap tindakan yang diambil. Frustrasi Anda adalah bahwa sebagian besar jalur audit bahkan tidak memiliki hostnamedan addrbidang, dan beberapa yang sebagian besar terlihat seperti ini:

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 [...]

yaitu dengan tidak diketahui hostnamedan addrnilai - nilai.

Subsistem audit Linux tidak secara otomatis mengisi entri dengan info hostname / IP terkait; daemon seperti sshd harus secara eksplisit menyediakannya untuk di auditd dalam beberapa cara (dalam kasus sshd, melalui panggilan 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'

Perintah tingkat pengguna seperti editor favorit Anda tidak akan melakukannya sama sekali, karena mereka tidak peduli dari mana Anda berasal.

Karena semua orang masuk secara langsung sebagai pengguna yang sama, Anda harus merekam sesnomor individual ("sesi") dari USER_START pesan audit yang sshd pancarkan melalui PAM, lalu menghubungkannya dengan sesID pesan SYSCALL untuk aktivitas yang Anda inginkan untuk melacak. Misalnya, ini adalah jejak audit untuk echo hi > tmp/testing.txtdari sesi SSH yang sama seperti di atas, dan berbagi sesID yang sama (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)
Adrian
sumber