1. Чому важливо моніторити користувачів?
Linux, як і будь-який інший сервер (або навіть зла коробка з веб-сайтами), надає можливість працювати багатьом користувачам одночасно. Але що, якщо ваш сервер зазнав проникнення? Або якийсь колега-зловмисник вночі вирішить "випадково" видалити важливі файли? Моніторинг активності користувачів допомагає нам зрозуміти, хто, коли і звідки заходив у систему, а також які процеси вони виконували. Це як відеокамера, тільки для вашого сервера.
Основні інструменти моніторингу
Щоб оцінити активність користувачів на сервері, у Linux доступні три ключові команди:
who— показує поточних користувачів, що працюють у системі.w— дає трохи більше інформації: дії користувачів та навантаження на систему.last— надає історію входів у систему.
Кожна з цих команд має свої нюанси і застосовується у різних сценаріях. Розберемо їх на прикладах.
2. Команда who
Команда who показує список користувачів, які в даний момент увійшли в систему. Це як "книга реєстрації", куди можна зазирнути та побачити, хто зараз на сервері.
who
Приклад виведення команди:
user1 pts/0 2023-10-20 09:10 (192.168.1.100)
root pts/1 2023-10-20 09:15 (192.168.1.101)
Що тут ми бачимо:
- Ім'я користувача
user1,root. - Термінал, через який вони підключені
pts/0,pts/1. - Час входу
2023-10-20 09:10. - Звідки підключення
192.168.1.100.
Ключі для who:
who -a: Показує також дані системи, такі як час завантаження, працюючі процеси та користувачів.who am i: Показує тільки інформацію про користувача, який запустив команду.
3. Команда w
Якщо who просто реєструє, хто увійшов, то w дає більше інформації – вона розповідає, чим зараз займається користувач. Це корисно, щоб зрозуміти, чи займається він корисною справою чи тим, що потрібно негайно припинити.
w
Приклад виводу:
10:20:42 up 1 day, 5:12, 2 users, load average: 0.00, 0.01, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
user1 pts/0 192.168.1.100 09:10 1:00 0.01s 0.01s nano app.py
root pts/1 192.168.1.101 09:15 2:00 0.02s 0.02s htop
Що тут відбувається:
- Верхній рядок дає системну інформацію: поточний час, час роботи сервера, кількість користувачів та навантаження системи
load average. - Таблиця показує:
- Ім'я користувача
user1,root. - Середовище, через яке підключений користувач
pts/0,pts/1. - IP-адресу користувача
192.168.1.100. - Час входу в систему
09:10. - Час простою
IDLE. - Зайняття користувача зараз
WHAT, наприклад, редагування файлуapp.pyза допомогоюnano.
- Ім'я користувача
Ключі для w:
w -h: Прибирає заголовки таблиці.w username: Показує інформацію лише про конкретного користувача.
4. Команда last
Якщо who та w говорять про теперішнє, то last дозволяє зазирнути в минуле. Вона виводить історію всіх входів у систему. Ця команда читає файл /var/log/wtmp, куди записуються всі входи користувачів.
last
Приклад виводу:
user1 pts/0 192.168.1.100 Fri Oct 20 09:10 - 09:30 (00:20)
root pts/1 192.168.1.101 Fri Oct 20 09:15 - down (00:15)
Що тут ми бачимо:
- Ім'я користувача
user1,root. - Термінал
pts/0,pts/1. - IP-адреса або ім'я хоста
192.168.1.100,192.168.1.101. - Час входу
Fri Oct 20 09:10. - Час виходу
09:30і загальний час сесії00:20.
Ключі для last:
last -n 10: Показує лише останні 10 записів.last username: Історія входів для конкретного користувача.last reboot: Показує, коли був запущений сервер.
5. Практичний приклад: аналіз активності користувачів
Давайте уявимо, що ви хочете дізнатися, хто працював на сервері вночі, щоб зрозуміти, чи не відбувалося чогось підозрілого. Почнемо з перегляду поточних користувачів:
who
Тепер перевіримо, чим вони займаються:
w
Якщо ви виявили щось дивне (наприклад, невідомий процес), потрібно перевірити, хто логінився вночі. Для цього використовуємо:
last
Переглянемо записи для конкретного користувача, який привернув увагу:
last user1
Якщо бачимо аномалію, наприклад, вхід з незнайомого IP, потрібно вжити заходів: обмежити доступ, встановити двофакторну автентифікацію або заблокувати користувача.
6. Особливості та типові помилки
Працюючи з командами моніторингу, важливо пам’ятати, що:
Файл логів може бути очищений. Якщо хтось зловмисно видалив записи з
/var/log/wtmp, командаlastнічого не покаже. Це одна з причин, чому важливо регулярно робити резервні копії логів або відправляти їх на віддалений сервер.Полегшення розуміння виводу. Іноді вивід команд може бути перевантаженим (наприклад, якщо багато користувачів). Використовуйте фільтри, такі як
grep, для пошуку потрібної інформації:last | grep user1Залежність від налаштувань системи. Деякі системи можуть не вести логи входів, якщо це вимкнено через налаштування. Переконайтесь, що
/var/log/wtmpоновлюється регулярно.
Як ці знання застосовуються на практиці?
- Адміністрування серверів. Наприклад, ви адміністратор компанії і вам потрібно слідкувати за безпекою системи, щоб ніхто випадково чи навмисно не "зламав усе".
- Виявлення загроз. Інструменти моніторингу допоможуть вам виявити спроби несанкціонованого доступу.
- Аудит системи. Під час перевірки серверів на відповідність стандартам безпеки ці команди часто використовуються для аналізу активності користувачів.
- Діагностика. Ви помічаєте, що сервер став повільним? Подивіться, хто і що там робить!
Тепер ви готові моніторити свою систему, як шеф! Не забувайте, що захист системи починається з розуміння того, що відбувається під її капотом.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ