- Home »

Отслеживание активности пользователей: whois, w, last
В этой статье разберёмся, как отслеживать активность пользователей на сервере с помощью команд whois
, w
и last
. Если ты занимаешься администрированием, арендуешь VPS, поднимаешь Docker-контейнеры или просто хочешь знать, кто и когда был на твоём сервере — эта тема для тебя. Будет много практики, советов и лайфхаков, чтобы быстро внедрить мониторинг активности и не тратить время на рутину.
Зачем отслеживать активность пользователей?
Представь: твой сервер — не просто железка или облако, а живой организм. На нём кто-то работает, кто-то тестирует, кто-то (иногда) ломится не по делу. Чем больше пользователей, тем выше риск ошибок, конфликтов, и тем сложнее понять, кто что натворил. А если речь о продакшене — вообще must have: нужно знать, кто когда заходил, что делал, откуда подключался.
- Безопасность: быстро найти подозрительную активность.
- Аудит: понять, кто работал в определённое время.
- Техническая поддержка: узнать, кто и когда что-то сломал или изменил.
- Автоматизация: триггерить скрипты по входу/выходу пользователя.
Проблема и значимость
Многие думают, что мониторинг — это сложно, требует отдельного софта или интеграций. На деле, в Linux есть простые встроенные инструменты, которые дают кучу информации. Их часто недооценивают, хотя они отлично подходят для большинства задач. Особенно если ты только начал работать с серверами или хочешь быстро поднять контроль без лишнего геморроя.
Ключевые инструменты: whois, w, last
Давай разберёмся, что это за звери, как они работают, и чем отличаются друг от друга.
Как это работает? Алгоритмы и структура
whois
: Вопреки частому заблуждению,whois
не показывает, кто сейчас на сервере. Это утилита для получения информации о доменах и IP-адресах. Но она часто используется для выяснения, откуда к тебе ломятся пользователи (или боты). Например, увидел подозрительный IP — сразуwhois
, и знаешь, чей он.w
: Показывает, кто сейчас залогинен на сервере, с каких терминалов, сколько времени активен, какие команды выполняет. Работает через чтение системных файлов (/var/run/utmp
), в которых хранятся активные сессии.last
: История входа пользователей. Показывает, кто и когда заходил/выходил, с какого IP, сколько длилась сессия. Берёт данные из/var/log/wtmp
. Очень удобно для аудита и расследований.
Как быстро и просто всё настроить?
На большинстве Linux-систем эти утилиты уже есть из коробки. Но если вдруг нет — ставим так:
sudo apt update
sudo apt install whois bsdmainutils
(На CentOS/RHEL вместо bsdmainutils
— util-linux
)
Примеры использования
- Смотреть, кто залогинен прямо сейчас:
w
- Краткая инфа о всех сессиях:
who
- История входов/выходов (последние 10):
last -n 10
- Узнать, откуда пришёл пользователь:
whois 192.168.1.100
или
whois $(last -n 1 | awk '{print $3}')
Мини-скрипт для вывода активных пользователей и их IP:
who | awk '{print $1 " -> " $5}'
Примеры, кейсы — плюсы и минусы
Утилита | Плюсы | Минусы | Кейсы использования |
---|---|---|---|
w |
Моментальный статус, видны команды, время простоя | Нет истории, только текущие сессии | Проверить, кто “завис” на сервере, кто грузит CPU |
who |
Просто, быстро, минимум информации | Без деталей (нет команд, времени активности) | Лаконичный вывод для скриптов и автоматизации |
last |
История входов/выходов, IP, продолжительность сессий | Нет информации о командах, может быть много “noise” | Аудит, расследование инцидентов, контроль доступа |
whois |
Информация о владельце IP/домена, география | Не связан с пользователями напрямую, нужен для анализа IP | Анализ подозрительных подключений, блокировка по странам |
Ошибки новичков и мифы
- Миф:
whois
— для мониторинга пользователей.
Факт:whois
— только для информации об IP и доменах. - Миф: Достаточно только
w
иwho
— история не нужна.
Факт: Безlast
не узнать, кто был ночью или на выходных. - Миф: Всё это не нужно, если есть Fail2ban/SSH-ключи.
Факт: Даже с Fail2ban важно видеть, кто реально заходит, а не только кто ломится. - Миф: На Docker-контейнерах это не работает.
Факт: Работает, если контейнеры запускаются с полноценной ОС и поддержкой утилит.
Похожие решения и альтернативы
- journalctl: В системах с systemd можно смотреть логи входа через
journalctl _COMM=sshd
- auditd: Глубокий аудит, но сложнее в настройке
- utmpdump: Для дампа и анализа
utmp/wtmp
файлов - psacct/acct: Для логирования команд пользователей
- SSHd logs:
/var/log/auth.log
(Debian/Ubuntu),/var/log/secure
(CentOS) - Glances, htop: Для мониторинга процессов, не только сессий
Статистика: производительность и охват
- Команды
w
,who
,last
работают мгновенно и не грузят сервер - Не требуют отдельного демона или базы данных
- Работают на всех популярных дистрибутивах Linux и BSD
- В отличие от сложных SIEM-решений, не требуют настройки и лицензий
Интересные факты и нестандартные способы
- Можно сделать пуш-уведомления в Telegram при каждом входе пользователя, используя связку
last
+inotifywait
+ скрипт. - Для Docker-контейнеров удобно монтировать
/var/log
хоста внутрь контейнера для аудита. lastb
— показывает неудачные попытки входа (полезно для поиска брутфорса).- Можно парсить вывод
last
и строить графики активности пользователей по времени. w -i
покажет IP-адреса пользователей (вместо hostnames).who -u
— дополнительно показывает PID процесса сессии (можно убить зависшую сессию).
Автоматизация и скрипты: новые возможности
- Мониторинг SSH-сессий: Запускать скрипты при появлении новых сессий. Например, автоматически монтировать сетевые диски или запускать резервное копирование.
- Аналитика: Собирать статистику по времени активности пользователей, строить отчёты.
- Безопасность: Автоматически блокировать IP, с которых идёт подозрительная активность (в связке с
whois
). - Интеграция с SIEM: Передавать данные в центральную систему безопасности.
- Slack/Telegram-боты: Отправлять алерты о входе root или других важных пользователей.
Выводы и рекомендации
Если тебе нужен быстрый и надёжный способ отслеживать, кто и когда был на сервере — w
, who
и last
— твои лучшие друзья. Их легко поставить, они не требуют настройки, работают на любом VPS, выделенном сервере или облаке. Для анализа IP-адресов — whois
(особенно, если есть подозрительная активность).
- Используй
w
для мониторинга активных сессий в реальном времени. last
— для аудита и расследований.whois
— для анализа IP, особенно при инцидентах безопасности.- Не забывай про автоматизацию: скрипты с этими утилитами — мощный инструмент.
- Если нужна аренда VPS или выделенного сервера — смотри VPS и выделенные серверы.
Встроенные средства Linux — не только для олдскула. Они реально экономят время и нервы, особенно если нужно быстро что-то проверить или автоматизировать. Не забывай: даже если у тебя fancy облако или супер-Docker — базовые команды никто не отменял. Пользуйся, автоматизируй, и пусть твои сервера будут всегда под контролем!
Официальная документация и полезные ссылки:
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.