Хто, коли і звідки? Згідно з хорошими правилами безпеки ви повинні знати, хто має доступ до вашого комп'ютера Linux. Ми покажемо вам, як.
- Файл wtmp
- Остання команда
- Відображення певної кількості рядків
- Відображення імена мережі для віддалених користувачів
- Приховування IP-адрес та мережевих імен
- Вибір записів за датою
- Пошук до дати закінчення
- Формати часу і дати
- Пошук за відносними одиницями
- Вчора, сьогодні і зараз
- Справжній варіант
- Остання команда
- Останнє слово про справу
Файл wtmp
Linux та інші Unix-подібні операційні системи, такі як MacOS, дуже добре реєструють записи. Десь у надрах системи є журнал про все, що ви можете придумати. Файл журналу, який нас цікавить, називається wtmp. «W» може означати «коли» або «хто» - ніхто, схоже, не згоден. Частина «tmp», ймовірно, означає «тимчасовий», але вона також може позначати «позначку часу».
Що ми знаємо, так це те, що wtmp - це журнал, який реєструє і реєструє кожну подію входу і виходу. Перегляд даних у журналі wtmp - це базовий крок до підходу з точки зору безпеки до обов'язків системного адміністратора. Для типового сімейного комп'ютера це може бути не настільки критично з точки зору безпеки, але цікаво мати можливість проаналізувати спільне використання вами комп'ютера.
На відміну від багатьох текстових файлів журналів у Linux, wtmp є двійковим файлом. Щоб отримати доступ до даних у ньому, нам потрібно використовувати інструмент, призначений для цього завдання.
Цей інструмент - команда last.
Остання команда
last команда читає дані з журналу wtmp і відображає їх у вікні термінала.
Якщо ви наберете last і натиснете Enter, він відобразить всі записи з файла журналу.
останній
Кожен запис з wtmp буде показано у вікні термінала.
Зліва направо кожен рядок містить:
- Ім'я користувача, який увійшов до системи.
- Термінал, до якого вони увійшли. Термінальний запис:0 означає, що вони увійшли на сам комп'ютер Linux.
- IP-адреса комп'ютера, на якій вони були зареєстровані.
- Час входу і дата штамп.
- Тривалість сеансу.
Останній рядок повідомляє нам дату і час самого раннього записаного сеансу в журналі.
Вхід в систему для вигаданого користувача «reboot» вводиться в журнал кожен раз при завантаженні комп'ютера. Термінальне поле замінюється версією ядра. Тривалість сеансу, що увійшов до системи для цих записів, являє собою час роботи комп'ютера.
Відображення певної кількості рядків
Використання last команди саме по собі створює дамп всього журналу, велика частина якого просвистує за вікном термінала. Частина, яка залишається видимою, є найбільш ранніми даними в журналі. Це, ймовірно, не те, що ви хотіли побачити.
Ви можете сказати last, щоб дати вам певну кількість рядків виводу. Вкажіть кількість рядків у командному рядку. Зверніть увагу на дефіс. Щоб побачити п'ять рядків, вам потрібно набрати -5 а не 5:
останній - 5
Це дає перші п'ять рядків з журналу, який є найостаннішими даними.
Відображення імена мережі для віддалених користувачів
Параметр -d (Система доменних імен) визначає last спробувати перетворити IP-адреси віддалених користувачів на ім'я комп'ютера або мережі.
останній-г
last не завжди вдається перетворити IP-адресу в ім'я мережі, але команда зробить це, коли зможе.
Приховування IP-адрес та мережевих імен
Якщо вас не цікавить IP-адреса або назва мережі, використовуйте параметр -R (без назви вузла), щоб вимкнути це поле.
Оскільки це дає більш акуратний висновок без потворних циклів, цей параметр використовувався у всіх наступних прикладах. Якщо ви використовували last для визначення незвичайної або підозрілої активності, ви не заборонили б це поле.
Вибір записів за датою
Ви можете використовувати параметр -s (since), щоб обмежити вивід тільки подіями входу в систему, які відбулися з певної дати.
Якщо ви хочете бачити тільки події входу до системи, які відбулися з 26 травня 2019 року, ви повинні використовувати наступну команду:
останній - R - s 2019-05-26
Вихідні дані показують записи з подіями входу в систему, які відбулися з часу 00:00 у вказаний день, до останніх записів у файлі журналу.
Пошук до дати закінчення
Ви можете використовувати -t (до), щоб вказати дату закінчення. Це дозволяє вибрати набір записів для входу в систему, які мали місце між двома цікавими датами.
Ця команда просить last витягти і відобразити записи для входу в систему з 00:00 (світанок) 26-го до часу 00:00 (світанок) 27-го. Це звужує список до сеансів входу в систему, які мали місце тільки 26-го числа.
Формати часу і дати
Ви можете використовувати час і дати з параметрами -s і -t.
Різні формати часу, які можна використовувати з last параметрами, що використовують дати і час, (імовірно):
- YYYYMMDDhhmmss
- ГГГГ-ММ-ДД чч: мм: сс
- ГГГГ-ММ-ДД чч: мм - секунди встановлено на 00
- ММР-ММ-ДД - час встановлено на 00:00:00
- чч: мм: сс - дата встановлена на сьогодні
- чч: мм - дата буде встановлена на сьогодні, секунди - 00
- зараз
- вчора - час встановлено на 00:00:00
- сьогодні - час встановлено на 00:00:00
- завтра - час встановлено на 00:00:00
- + 5хв
- - 5 днів
Чому «нібито»?
Другий і третій формати у списку не працювали під час дослідження для цієї статті. Ці команди були протестовані в дистрибутивах Ubuntu, Fedora і Manjaro. Це похідні дистрибутиви Debian, RedHat і Arch відповідно. Це охоплює всі основні сімейства дистрибутивів Linux.
остання -R -s 2019-05-26 11:00 -t 2019-05-27 13:00
Як бачите, команда не повернула записів взагалі.
Використання першого формату дати і часу зі списку з тією ж датою і часом, що й попередня команда, повертає записи:
останній - R -s 20190526110000 -t 20190527130000
Пошук за відносними одиницями
Ви також вказуєте періоди часу, які вимірюються в хвилинах або днях відносно поточної дати і часу. Тут ми просимо записи від двох днів тому до одного дня тому.
останні -R -s -2days -t -1days
Вчора, сьогодні і зараз
Ви можете використовувати yesterday і tomorrow як скорочення для вчорашньої дати і сьогоднішньої дати.
останній - R вчора - t сьогодні
Не те щоб це не включало жодних записів на сьогодні. Це очікувана поведінка. Команда запитує записи від дати початку до дати закінчення. Він не включає записи з дати закінчення.
Параметр now є скороченням для слова «today at the current time». Щоб побачити події входу в систему, які відбулися з 00:00 (світанок) до часу, коли ви введете команду, використовуйте цю команду:
Останній -R-сьогодні -T зараз
Це покаже всі події входу в систему прямо в даний час, включаючи ті, які все ще зареєстровані.
Справжній варіант
Параметр -p (присутній) надає вам змогу дізнатися, хто увійшов до системи у певний момент часу.
Не має значення, коли вони увійшли в систему або вийшли з неї, але якщо вони були зареєстровані на комп'ютері в зазначений вами час, вони будуть включені в список.
Якщо ви вказуєте час без дати, last припускає, що ви маєте на увазі «сьогодні».
остання -R -p 09:30
Люди, які все ще увійшли в систему (очевидно), не мають часу виходу з системи; вони описані як still logged in. Якщо комп'ютер не було перезавантажено з вказаного вами часу, його буде вказано як still running.
Якщо ви використовуєте скорочення now з параметром -p (present), ви можете дізнатися, хто увійшов до системи під час виконання команди.
останній -R -p зараз
Це досить багатослівний спосіб досягнення того, що може бути досягнуто за допомогою команди who.
Остання команда
Команда lastb заслуговує згадки. Він читає дані з журналу btmp. Існує трохи більше консенсусу з цього імені журналу. «B» означає «погано», але частина «tmp» все ще обговорюється.
lastb перераховує невдалі (невдалі) спроби входу в систему. Він приймає ті ж параметри, що і в last. Оскільки вони були невдалими спробами входу, всі записи матимуть тривалість 00:00.
Вам слід використовувати sudo з lastb.
sudo lastb -R
Останнє слово про справу
Знаючи, хто увійшов до вашого комп'ютера з Linux, і коли, і звідки корисна інформація. У поєднанні з деталями невдалих спроб входу в систему ви отримуєте перші кроки в розслідуванні підозрілої поведінки.





