Home » Отслеживание активности пользователей: whois, w, last
Отслеживание активности пользователей: whois, w, last

Отслеживание активности пользователей: 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 вместо bsdmainutilsutil-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 — базовые команды никто не отменял. Пользуйся, автоматизируй, и пусть твои сервера будут всегда под контролем!


Официальная документация и полезные ссылки:


В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.

Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.

Leave a reply

Your email address will not be published. Required fields are marked