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обновляется регулярно.
Как эти знания применяются на практике?
- Администрирование серверов. Например, вы администратор компании, и вам нужно следить за безопасностью системы, чтобы никто случайно или намеренно не "сломал всё".
- Обнаружение угроз. Инструменты мониторинга помогут вам обнаружить попытки несанкционированного доступа.
- Аудит системы. При проверке серверов на соответствие стандартам безопасности эти команды часто используются для анализа активности пользователей.
- Диагностика. Вы замечаете, что сервер стал медленным? Посмотрите, кто и чем там занимается!
Теперь вы готовы мониторить свою систему, как шеф! Не забывайте, что защита системы начинается с понимания того, что происходит под её капотом.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ