Як я можу використовувати ausearch для реєстрації IP-адреси користувача, коли вони змінюють файл через SSH?


0

Моя команда входить на сервер розробки, використовуючи той самий кореневий пароль; ми не створили окремих облікових записів користувачів.

Зараз я намагаюся створити журнал змін файлів і хочу розрізняти різних авторів, але ausearch завжди повертає ім’я користувача (так "root" завжди), навіть коли я передаю правило name_format=numeric, яке повинно було викрити IP-адреса замість "root".

Відповіді:


1

ПРИМІТКА: Це питання також було задано ОП на іншому місці проведення онлайн. Це відредагована версія моєї відповіді в тому іншому місці. Недоцільність декількох користувачів, які входили безпосередньо як корінь, вже було вирішено, і їх не потрібно переглядати.

Як я розумію, ви запитуєте, як змусити журнали аудиту показувати, з якої IP-адреси було взято кожну дію, що входило в систему. Ваше розчарування в тому , що більшість ліній аудиту не мають навіть hostnameі 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("сеансові") номери з аудиторських повідомлень USER_START, які sshd випромінює через PAM, а потім співвідносити їх з sesідентифікаторами повідомлень SYSCALL для потрібної діяльності відстежувати. Наприклад, це був аудиторський слід для echo hi > tmp/testing.txtтого ж сеансу SSH, як вище, і таким чином має той самий sesідентифікатор (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)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.