Чи замислювалися ви коли-небудь, хто і коли увійшов у вашу Linux-систему? Історія входу користувачів у систему в Linux – це скарбниця інформації, що містить докладні відомості про те, хто увійшов у систему, коли він увійшов, звідки він увійшов і багато іншого. Чим не привід для захоплення? Ну, хіба що журнали стають занадто великими і займають занадто багато дорогоцінного дискового простору. Але це вже історія для іншого дня.
Яка інформація зберігається в історії входу в систему Linux?
Linux збирає значну кількість детальних даних щоразу, коли користувач входить у систему або виходить з неї. Це робить її справжнім джерелом інформації як для системних адміністраторів, так і для фахівців з безпеки.
Давайте подивимося на приклад виведення команди ‘last’:
john pts/0 192.168.0.102 Thu Jul 13 20:42 still logged in
Цей єдиний рядок інформації містить безліч цінних даних. Ось що означає кожне поле:
Ім’я користувача
Перше поле, ‘john’ у нашому прикладі, – це ім’я користувача. Це ідентифікатор користувача, який увійшов у систему. У Linux ведеться облік усіх користувачів, які увійшли в систему, навіть root. Це дає змогу бачити, хто і коли входив у систему.
Термінал
Далі йде запис ‘pts/0’, що являє собою термінал, з якого користувач увійшов у систему. ‘pts’ означає pseudo-terminal slave. Простіше кажучи, це вікно емулятора термінала, подібне до того, що з’являється під час відкриття термінального додатка.
Віддалена IP-адреса
Частина ‘192.168.0.102’ показує віддалену IP-адресу, з якої користувач звернувся до вашої системи. Це особливо важливо під час роботи з віддаленими з’єднаннями, оскільки дає змогу побачити, звідки відбуваються спроби входу в систему.
Штамп часу
Розділ ‘Thu Jul 13 20:42’ являє собою дату і час, коли стався вхід у систему. Ця тимчасова мітка дуже важлива, оскільки дає змогу співвіднести системні події з часом входу в систему, що допомагає під час налагодження та адміністрування системи.
Статус входу в систему
Нарешті, фраза ‘still logged in’ позначає поточний статус сесії. Якщо користувач ще увійшов у систему, то буде написано ‘все ще увійшов’. В іншому разі буде показано тривалість сеансу входу в систему або час його закінчення.
Вивчення історії входу в систему Linux дає змогу отримати повне уявлення про активність користувачів у системі. Це не тільки допомагає підтримувати систему в робочому стані, а й відіграє важливу роль у виявленні та усуненні потенційних загроз безпеці. Пам’ятайте, що знання всіх тонкощів роботи системи – це перший крок до підтримки безпечного та ефективного середовища Linux.
Інструменти для перевірки історії входу користувачів у систему
Коли мова заходить про перевірку історії входу в систему, Linux, будучи швейцарським армійським ножем операційних систем, надає безліч інструментів. Однак мені найбільше подобаються дві команди last і lastb.
Команда ‘last’
Ця команда є моїм основним інструментом, коли я хочу перевірити історію входу користувачів у систему. Команда last читає файл /var/log/wtmp, в якому зберігається історія всіх дій по входу і виходу з системи.
Припустимо, ви хочете подивитися історію входу в систему користувача з ім’ям ‘john’. Просто відкрийте термінал і введіть:
last john
Ви побачите список записів, що показують кожен раз, коли “john” входив у систему, із зазначенням дати, часу, тривалості сеансу і терміналу. Поговоримо про ретельність, чи не так?
Команда ‘lastb’
Якщо команда ‘last’ дає досить багато інформації, то команда ‘lastb’ розширює її, показуючи всі невдалі спроби входу в систему. Це особливо зручно, коли ви підозрюєте несанкціоновані спроби доступу до системи. Просто введіть:
lastb
І ось, будь ласка! Ви отримаєте докладний запис усіх невдалих спроб входу в систему. Дуже наочно, чи не так?
Практичний приклад
Дозвольте поділитися практичним прикладом із власного досвіду. Одного разу було помічено незвичайну поведінку системи і була підозра про несанкціонований доступ. Тому було переглянуто історію входу в систему за допомогою команди ‘last’:
last
Команда виводить довгий список записів. Однак один із них привертає увагу:
root pts/1 172.16.254.1 Thu Jul 13 15:15 still logged in
Це було незвично, оскільки ніхто не входив у систему з цього IP як користувач root. Потім використовується команда ‘lastb’ і виявляється кілька невдалих спроб увійти в систему під ім’ям root безпосередньо перед успішним входом.
Загальні рекомендації щодо усунення несправностей
Хоча функції ‘last’ і ‘lastb’ досить надійні, під час їх використання можуть виникнути деякі проблеми.
Усічений висновок
Якщо команда ‘last’ видає неповний або усічений результат, це може бути пов’язано з тим, що файл /var/log/wtmp став занадто великим. Розв’язати цю проблему можна, періодично архівуючи та очищаючи цей файл за допомогою такої команди:
cat /dev/null > /var/log/wtmp
Однак слід пам’ятати, що при цьому буде видалено всю інформацію про історію входу в систему.
Відсутність виведення для ‘lastb’
Іноді програма ‘lastb’ може не виводити жодної інформації, навіть якщо відомо, що були невдалі спроби входу в систему. Це може бути пов’язано з тим, що файл /var/log/btmp, який читає ‘lastb’, не існує. Вирішити цю проблему можна, створивши такий файл:
touch /var/log/btmp
Поради професіоналів
Тепер наведемо кілька порад, які допоможуть зробити перевірку історії входу користувачів ще більш ефективною:
Обмеження виведення ‘last’
Якщо команда ‘last’ виводить занадто багато записів, можна обмежити їхню кількість, вказавши після команди число. Наприклад, якщо потрібно вивести 10 останніх записів, то потрібно набрати:
last -10
Перевірка наявності записів про перезавантаження
Ви також можете використовувати команду ‘last’, щоб дізнатися, коли систему було перезавантажено. Наступна команда покаже всі записи про перезавантаження:
last reboot
Це може бути особливо корисно під час усунення проблем зі стабільністю системи.
Експорт історії входу в систему Linux у CSV-файл
Тепер, коли ми з’ясували всі тонкощі перевірки історії входів користувачів у систему, настав час зробити дещо ще цікавіше: експортувати ці дані у файл CSV (Comma-Separated Values). Це може здатися складним завданням, але повірте мені, в Linux це просто як пиріг.
Експорт історії входу в систему Linux у CSV-файл може бути корисним у кількох випадках. Можливо, Ви хочете провести автономний аналіз, а можливо, плануєте імпортувати дані в базу даних або навіть в електронну таблицю для кращої візуалізації. Яка б не була Ваша мета, щойно Ви освоїте цей метод, він стане зручним інструментом у Вашому арсеналі засобів Linux.
Команда ‘last’, хоча і є дуже корисною, не підтримує експорт даних у CSV-файл. Але не варто боятися, ми можемо використовувати можливості командного рядка Linux для досягнення цієї мети. Ми скористаємося командою ‘awk’ – потужним інструментом обробки тексту, який дає змогу маніпулювати текстовими даними та перетворювати їх у дуже цікаві форми.
Ось проста команда, яка перетворює виведення ‘last’ у формат CSV:
last | awk '{ print $1 "," $2 "," $3 "," $4 "," $5 "," $6 "," $7 "," $8 "," $9 }' > login_history.csv
Ця команда працює таким чином:
- Команда ‘last’ витягує історію входу в систему.
- Оператор pipe (‘|’) передає виведення команди ‘last’ команді ‘awk’.
- Команда ‘awk’ використовує свою функцію print для виведення кожного поля команди ‘last’, розділеного комами.
- Потім виведення перенаправляється (‘>’) у файл з ім’ям ‘login_history.csv’.
У результаті ми отримаємо CSV-файл, у якому кожен запис про вхід у систему буде розташовуватися на новому рядку, а дані (ім’я користувача, термінал, віддалений IP, дата і час) будуть розділені комами. Якраз те, що ми хотіли, чи не так?
Якщо відкрити файл ‘login_history.csv’, то він матиме приблизно такий вигляд:
john,pts/0,192.168.0.102,Thu,Jul,13,20:42,still,logged in
Важливо зазначити, що команда ‘awk’ дуже гнучка і може бути скоригована відповідно до ваших потреб. Наприклад, якщо ви хочете включити в CSV ім’я хоста, ви можете додати в команду ‘awk’ ще одне поле.
Експорт історії входу в систему Linux у CSV-файл – це потужна техніка, що дає змогу надалі аналізувати й інтерпретувати дані про вхід у систему. Щойно ви освоїте цю техніку, вона стане незамінною частиною вашого набору інструментів для адміністрування Linux.
Висновок
У результаті проведеного дослідження ми переконалися, що історія входу в систему Linux – це не просто список тих, хто і коли входив у систему. Це повний звіт про використання системи і найважливіший інструмент для її адміністрування та забезпечення безпеки.