Гид по технологиям

Мониторинг входов в систему на Linux

5 min read Безопасность Обновлено 29 Dec 2025
Мониторинг входов на Linux
Мониторинг входов на Linux

Двое инженеров мониторят системные логи на Linux

TL;DR

Мониторинг входов помогает вовремя заметить несанкционированные попытки доступа, проверить активных пользователей и подготовиться к аудиту. Используйте команды last, lastlog, w и системные логи (/var/log/auth.log, /var/log/syslog). Настройте подробное логирование SSH и автоматические правила блокировки, например fail2ban.

Зачем следить за входами в Linux

Коротко: логирование входов — базовая мера безопасности и соответствия. Оно помогает:

  • Быстро обнаружить попытки подборов пароля и брутфорс.
  • Выявить заброшенные учётные записи и подозрительную активность.
  • Упростить расследования и подготовку к аудитам.
  • Решать проблемы с доступом для пользователей.

Важно: логирование не заменяет защиту (например, MFA и надёжные ключи SSH), но даёт видимость и сигнал для реакции.

Какие типы входов отслеживать

  • Успешные входы (кто и откуда вошёл).
  • Неудачные попытки входа (Failed/Invalid).
  • SSH-подключения — основной вектор удалённого доступа.
  • FTP и другие сервисы передачи файлов.

Команды для просмотра прошлых и текущих подключений

Команда last — история входов и перезагрузок

Команда last показывает список последних логинов, а также перезагрузки и завершения сессий.

last

Пример фильтрации: показать записи с текстом “logged in” можно так:

last | grep 'logged in'

Для быстрого просмотра текущих пользователей используйте команду w:

w

w показывает список текущих сессий и то, что делают пользователи.

Список входов в систему, выведенный командой last

Команда lastlog — когда последний раз заходил каждый пользователь

lastlog выводит время последнего входа для всех учётных записей на системе: обычных, системных и сервисных.

sudo lastlog

Вывод аккуратно показывает имя пользователя, порт, источник (IP) и метку времени последнего входа. Для подробностей посмотрите man:

man lastlog

Вывод lastlog с информацией о входах пользователей

Мониторинг SSH-подключений

SSH — наиболее распространённый способ удалённого доступа. Контролируйте его по двум направлениям: предотвратить неподобающие авторизации и логировать события.

  1. Включите подробное логирование в /etc/ssh/sshd_config: найдите строку LogLevel и измените её на VERBOSE.
# в файле /etc/ssh/sshd_config
LogLevel VERBOSE

Включение подробного логирования SSH в файле sshd_config

  1. Перезапустите службу SSH:
sudo systemctl restart ssh
  1. Просматривайте лог входов и ошибок в /var/log/auth.log:
cat /var/log/auth.log
  1. Фильтрация неудачных попыток:
sudo grep 'Failed' /var/log/auth.log

Для подозрительной активности ищите повторяющиеся попытки с одного IP или попытки входа под разными пользователями.

Совет: отключите парольную аутентификацию и используйте ключи SSH + ограничьте доступ по файрволу.

Мониторинг FTP и других сервисов

FTP-записи часто попадают в /var/log/syslog. Фильтруйте по ключевому слову ftp:

grep ftp /var/log/syslog

Если используется vsftpd, proftpd или другой сервер, проверьте отдельные логи этих сервисов (обычно /var/log/vsftpd.log, /var/log/proftpd/ и т. п.).

Практическая методика проверки — быстрый чек-лист

Ежедневный короткий чек-лист для администратора:

  • Проверить текущих пользователей: w
  • Просмотреть последние входы: last | head -n 50
  • Просмотреть последние неудачные попытки: sudo grep ‘Failed’ /var/log/auth.log | tail -n 100
  • Проверить новые аккаунты и изменения в /etc/passwd
  • Обновления безопасности и патчи

Ролевая разбивка:

  • Системный администратор: настраивает LogLevel, ротацию логов, fail2ban, правила файрвола.
  • ИТ-менеджер: просматривает агрегированную статистику входов и утверждает политики доступа.
  • Обычный пользователь: проверяет своё время последнего входа через lastlog и сообщает о подозрениях.

Playbook — что делать при обнаружении подозрительной активности

  1. Идентифицировать активность: IP, пользователь, время, метод (ssh/ftp).
  2. Изолировать: временно заблокировать IP в файрволе или через fail2ban.
  3. Сменить пароли/ротация ключей у затронутых учётных записей.
  4. Собрать логи за период (auth.log, syslog, last, lastlog).
  5. Оценить ущерб: проверка sudo/cron/job-файлов, новых пользователей, изменённых файлов.
  6. Восстановление: откат изменений, патчи, улучшение правил доступа.
  7. Отчёт и уроки: обновление процедур и уведомление заинтересованных лиц.

Автоматизация ответных действий

  • fail2ban: блокирует IP по шаблонам в логах. Простая и эффективная защита против брутфорса.
  • SIEM/лог-агрегаторы (ELK, Graylog): дают централизованную корреляцию событий.
  • Cron + скрипты: отправка ежедневных отчётов по email или в систему оповещений.

Примеры фильтров и полезные команды

Показать последние 100 записей auth.log с контекстом:

sudo tail -n 100 /var/log/auth.log

Найти попытки входа по конкретному пользователю:

sudo grep 'username' /var/log/auth.log

Подсчитать количество неудачных попыток по IP за сутки:

sudo grep 'Failed' /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr

(в зависимости от формата лога поле с IP может отличаться — проверьте вывод).

Когда мониторинг может не сработать — ограничения и подводные камни

  • Логи могут быть стерты локально злоумышленником при наличии прав root.
  • Контейнеры и облачные инстансы могут писать логи в разные места — проверьте конфигурацию окружения.
  • Некоторые сервисы ведут собственные логи в другом формате.
  • Большие объёмы логов требуют агрегатора для понятной аналитики.

Критерии приёмки

  • Логи SSH пишутся в /var/log/auth.log и содержат записи с LogLevel VERBOSE.
  • Есть автоматический механизм блокировки (fail2ban или эквивалент).
  • Ротация логов настроена (logrotate) и старые логи сохраняются минимум 90 дней или по политике организации.
  • Ежедневный/еженедельный отчёт по входам доступен ответственным лицам.

Наглядная модель принятия решений

flowchart TD
  A[Обнаружена подозрительная попытка входа] --> B{Повторяемость?}
  B -- Да --> C[Заблокировать IP через fail2ban/файрвол]
  B -- Нет --> D[Проверить учётную запись и время входа]
  C --> E[Собрать логи и уведомить команду]
  D --> E
  E --> F{Есть следы компрометации?}
  F -- Да --> G[Запустить план реагирования и откат]
  F -- Нет --> H[Внести запись в журнал и мониторить]

Краткий словарь

  • auth.log — системный лог аутентификации (SSH, sudo и др.).
  • last — показывает историю логинов и перезагрузок.
  • lastlog — показывает время последнего входа по каждому пользователю.
  • fail2ban — инструмент для автоматической блокировки злонамеренных IP.

Рекомендации по безопасности

  • Отключите парольную аутентификацию для SSH и используйте ключи.
  • Включите LogLevel VERBOSE в sshd_config и перезапустите ssh.
  • Настройте fail2ban и лог-агрегатор для централизованного анализа.
  • Настройте ротацию логов и удалённое хранение (например, централизованный syslog).

Итог

Мониторинг входов — простая и эффективная мера для повышения безопасности Linux-систем. Он позволяет быстро выявлять аномалии, реагировать на инциденты и сохранять след аудита для расследований. Настройте базовые команды (last, lastlog, w), включите подробные SSH-логи и автоматизируйте реакцию (fail2ban, агрегаторы). Регулярно проверяйте результаты и обновляйте правила по мере изменения инфраструктуры.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Настройки видео для DSLR и беззеркальных камер
Видео

Настройки видео для DSLR и беззеркальных камер

Доступ к редактору групповой политики в Windows Home
Windows

Доступ к редактору групповой политики в Windows Home

YPOPs и Thunderbird: как читать Yahoo Mail офлайн
Почта

YPOPs и Thunderbird: как читать Yahoo Mail офлайн

Как полностью удалить приложение на Mac
macOS

Как полностью удалить приложение на Mac

Кнопки действий в PowerPoint — создание и настройка
Презентации

Кнопки действий в PowerPoint — создание и настройка

Пользовательские сочетания клавиш в Excel
Excel

Пользовательские сочетания клавиш в Excel