JavaRush /Курси /Docker SELF /Моніторинг активних користувачів і входів: команди `who`,...

Моніторинг активних користувачів і входів: команди `who`, `w`, `last`

Docker SELF
Рівень 5 , Лекція 4
Відкрита

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. Особливості та типові помилки

Працюючи з командами моніторингу, важливо пам’ятати, що:

  1. Файл логів може бути очищений. Якщо хтось зловмисно видалив записи з /var/log/wtmp, команда last нічого не покаже. Це одна з причин, чому важливо регулярно робити резервні копії логів або відправляти їх на віддалений сервер.

  2. Полегшення розуміння виводу. Іноді вивід команд може бути перевантаженим (наприклад, якщо багато користувачів). Використовуйте фільтри, такі як grep, для пошуку потрібної інформації:

    last | grep user1
    
  3. Залежність від налаштувань системи. Деякі системи можуть не вести логи входів, якщо це вимкнено через налаштування. Переконайтесь, що /var/log/wtmp оновлюється регулярно.

Як ці знання застосовуються на практиці?

  • Адміністрування серверів. Наприклад, ви адміністратор компанії і вам потрібно слідкувати за безпекою системи, щоб ніхто випадково чи навмисно не "зламав усе".
  • Виявлення загроз. Інструменти моніторингу допоможуть вам виявити спроби несанкціонованого доступу.
  • Аудит системи. Під час перевірки серверів на відповідність стандартам безпеки ці команди часто використовуються для аналізу активності користувачів.
  • Діагностика. Ви помічаєте, що сервер став повільним? Подивіться, хто і що там робить!

Тепер ви готові моніторити свою систему, як шеф! Не забувайте, що захист системи починається з розуміння того, що відбувається під її капотом.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ