Аудит входу користувачів на Linux-сервер

Поширте інформацію:

В CentOS протоколи активності користувачів зберігаються у таких файлах:

  • /var/run/utmp – протоколює сесії, відкриті в даний момент (використовується командами who і w)
  • /var/log/wtmp – зберігає історію входів у систему (використовується командою last)
  • /var/log/btmp – протоколює невдалі спроби входу (використовується командою lastb)
  • /var/log/lastlog – використовується командою lastlog

Ці файли зберігаються не в текстовому, а в двійковому форматі. Тип файла у Linux, до речі, можна подивитися командою file

# file /var/run/utmp
/var/run/utmp: data
# file /var/log/wtmp
/var/log/wtmp: dBase III DBT, version number 0, next free block index 7
# file /var/log/btmp
/var/log/btmp: dBase III DBT, version number 0, next free block index 7
# file /var/log/lastlog 
/var/log/lastlog: data

Тому переглядати зазначені напряму – неефективно. Для перегляду існують спеціальні команди:

who – виводить дані про користувачів, які зараз працюють в системі

[james@localhost ~] $ who
james   :0           2015-11-12 19:16 (:0)
james   pts/0        2015-11-12 23:10 (:0)

w – показує більше інформації, ніж who – не тільки, хто працює, але й що він робить

[james@localhost ~] $ w
 00:02:32 up  5:14,  2 users,  load average: 0.03, 0.13, 0.13
USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
james   :0        19:16   ?xdm?  30:16   0.15s gdm-session-worker [pam/gdm-password]
james   pts/0     23:10    0.00s  0.05s  0.00s w

last – з параметром username виводить час останніх реєстрацій користувача у системі; без параметра – показує реєстрації всіх користувачів

$ last | head -4
shs     pts/6  204.111.97.61  Sun Apr 26 12:38   still logged in
madman1 pts/3  wrong.ip.net   Sun Apr 26 12:00   still logged in
madman1 pts/10 wrong.ip.net   Sat Apr 25 16:13 - 22:12  (05:58)
shs     pts/7  204.111.97.61  Sat Apr 25 15:35 - 16:27  (00:52)

подивитися, хто коли входив останнього разу, зручніше командою lastlog

$ lastlog | more
Username    Port     From             Latest
root        pts/0    boson.parts.org  Tue Jul 22 21:56:07 -0400 2014
bin                                   **Never logged in**
daemon                                **Never logged in**
adm                                   **Never logged in**
lp                                    **Never logged in**
shs         pts/6    204.123.45.67    Sun Apr 26 12:38:53 -0400 2015
mia         pts/1    10.11.12.123     Mon Dec 17 11:15:07 -0500 2012
......................................................................

lastb – показує невдалі спроби входу

# lastb
james   :0           :0               Wed Nov 11 19:47 - 19:47  (00:00)
tony    :0           :0               Wed Nov 11 19:12 - 19:12  (00:00)
tony    :1           :1               Sun Nov  8 22:57 - 22:57  (00:00)

замість команд who, w, last, lastb можна використовувати одну команду utmpdump

# utmpdump /var/run/utmp
# utmpdump /var/log/wtmp
# utmpdump /var/log/btmp

За допомогою фільтрів можна навіть експортувати журнали у формат .csv

# utmpdump /var/log/wtmp | grep -E "\[7].*gacanepa" | awk -v OFS="," 'BEGIN {FS="] "}; {print $2,$4,$7,$8}' | sed -e 's/\[//g' -e 's/\]//g'

Credits:

Sandra Henry-Stocker

Gabriel Cánepa

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.