Мониторинг входов в систему на 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:
ww показывает список текущих сессий и то, что делают пользователи.
Команда lastlog — когда последний раз заходил каждый пользователь
lastlog выводит время последнего входа для всех учётных записей на системе: обычных, системных и сервисных.
sudo lastlogВывод аккуратно показывает имя пользователя, порт, источник (IP) и метку времени последнего входа. Для подробностей посмотрите man:
man lastlogМониторинг SSH-подключений
SSH — наиболее распространённый способ удалённого доступа. Контролируйте его по двум направлениям: предотвратить неподобающие авторизации и логировать события.
- Включите подробное логирование в /etc/ssh/sshd_config: найдите строку LogLevel и измените её на VERBOSE.
# в файле /etc/ssh/sshd_config
LogLevel VERBOSE- Перезапустите службу SSH:
sudo systemctl restart ssh- Просматривайте лог входов и ошибок в /var/log/auth.log:
cat /var/log/auth.log- Фильтрация неудачных попыток:
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 — что делать при обнаружении подозрительной активности
- Идентифицировать активность: IP, пользователь, время, метод (ssh/ftp).
- Изолировать: временно заблокировать IP в файрволе или через fail2ban.
- Сменить пароли/ротация ключей у затронутых учётных записей.
- Собрать логи за период (auth.log, syslog, last, lastlog).
- Оценить ущерб: проверка sudo/cron/job-файлов, новых пользователей, изменённых файлов.
- Восстановление: откат изменений, патчи, улучшение правил доступа.
- Отчёт и уроки: обновление процедур и уведомление заинтересованных лиц.
Автоматизация ответных действий
- 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, агрегаторы). Регулярно проверяйте результаты и обновляйте правила по мере изменения инфраструктуры.
Похожие материалы
Настройки видео для DSLR и беззеркальных камер
Доступ к редактору групповой политики в Windows Home
YPOPs и Thunderbird: как читать Yahoo Mail офлайн
Как полностью удалить приложение на Mac
Кнопки действий в PowerPoint — создание и настройка