Мониторинг логов аутентификации в Ubuntu

В Ubuntu все события, связанные с аутентификацией пользователей, фиксируются в системных логах. Эти записи позволяют отслеживать успешные и неудачные попытки входа, использование sudo, изменения учетных записей и другие действия, связанные с безопасностью.

Основной файл для анализа - /var/log/auth.log. В нем содержатся данные о входах в систему, SSH-сессиях и операциях с привилегиями.

Просмотр логов аутентификации

Для быстрого просмотра содержимого файла используется команда:

sudo less /var/log/auth.log

Откроется прокручиваемый вывод:

Mar 25 10:15:42 ubuntu sshd[1234]: Accepted password for user1 from 192.168.1.10 port 54321 ssh2
Mar 25 10:16:01 ubuntu sudo:   user1 : TTY=pts/0 ; PWD=/home/user1 ; USER=root ; COMMAND=/bin/apt update
Mar 25 10:17:22 ubuntu sshd[1250]: Failed password for invalid user admin from 203.0.113.5 port 41234 ssh2

Первая строка показывает успешный вход по SSH, вторая выполнение команды через sudo, а третья неудачную попытку входа.

Для просмотра последних строк используется:

sudo tail /var/log/auth.log

Пример вывода:

Mar 25 11:05:10 ubuntu sshd[1300]: Failed password for root from 198.51.100.23 port 50222 ssh2
Mar 25 11:05:12 ubuntu sshd[1300]: Connection closed by authenticating user root 198.51.100.23 port 50222 [preauth]

Фильтрация логов

Для поиска конкретных событий используется grep.

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

sudo grep "Failed password" /var/log/auth.log

Пример результата:

Mar 25 11:05:10 ubuntu sshd[1300]: Failed password for root from 198.51.100.23 port 50222 ssh2
Mar 25 11:06:45 ubuntu sshd[1312]: Failed password for invalid user test from 203.0.113.10 port 42311 ssh2

Поиск успешных входов:

sudo grep "Accepted password" /var/log/auth.log

Вывод:

Mar 25 10:15:42 ubuntu sshd[1234]: Accepted password for user1 from 192.168.1.10 port 54321 ssh2

Для просмотра активности sudo:

sudo grep "sudo" /var/log/auth.log

Пример:

Mar 25 10:16:01 ubuntu sudo:   user1 : TTY=pts/0 ; PWD=/home/user1 ; USER=root ; COMMAND=/bin/apt update

Использование journalctl

В системах с systemd можно работать с логами через journalctl.

Просмотр логов аутентификации:

sudo journalctl _COMM=sshd

Пример вывода:

Mar 25 10:15:42 ubuntu sshd[1234]: Accepted password for user1 from 192.168.1.10 port 54321 ssh2
Mar 25 10:17:22 ubuntu sshd[1250]: Failed password for invalid user admin from 203.0.113.5 port 41234 ssh2

Для фильтрации по времени:

sudo journalctl _COMM=sshd --since "1 hour ago"

Результат:

Mar 25 11:05:10 ubuntu sshd[1300]: Failed password for root from 198.51.100.23 port 50222 ssh2

Отслеживание в реальном времени

Для наблюдения за логами в реальном времени используется:

sudo tail -f /var/log/auth.log

При появлении новых событий они сразу выводятся:

Mar 25 11:10:01 ubuntu sshd[1400]: Accepted password for user2 from 192.168.1.20 port 53321 ssh2
Mar 25 11:10:15 ubuntu sudo:   user2 : TTY=pts/1 ; PWD=/home/user2 ; USER=root ; COMMAND=/bin/systemctl restart nginx

Анализ IP-адресов

Для извлечения IP-адресов неудачных попыток входа:

sudo grep "Failed password" /var/log/auth.log | awk '{print $11}'

Пример вывода:

198.51.100.23
203.0.113.10

Для подсчета количества попыток с каждого IP:

sudo grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr

Результат:

5 198.51.100.23
3 203.0.113.10

Проверка активности пользователей

Для просмотра последних входов используется команда:

last

Пример:

user1  pts/0        192.168.1.10    Tue Mar 25 10:15   still logged in
user2  pts/1        192.168.1.20    Tue Mar 25 11:10 - 11:20  (00:10)

Для неудачных попыток входа:

sudo lastb

Вывод:

root     ssh:notty    198.51.100.23  Tue Mar 25 11:05 - 11:05  (00:00)
test     ssh:notty    203.0.113.10   Tue Mar 25 11:06 - 11:06  (00:00)

Ротация логов

Файл /var/log/auth.log со временем увеличивается. Для управления размером используется logrotate.

Проверка конфигурации:

cat /etc/logrotate.d/rsyslog

Пример:

/var/log/auth.log
{
    rotate 7
    daily
    missingok
    notifempty
    compress
}

Это означает, что лог хранится 7 дней, ежедневно архивируется и сжимается.

Ограничение доступа к логам

Файл логов доступен только привилегированным пользователям:

ls -l /var/log/auth.log

Вывод:

-rw-r----- 1 syslog adm 123456 Mar 25 11:20 /var/log/auth.log

Доступ имеют только пользователи из группы adm и root.

Комментарии (0)

Войдите, чтобы оставить комментарий

Похожие статьи

Как отключить SELinux на Ubuntu, CentOS, Debian и RHEL

Подробная инструкция по проверке, временной и постоянной деактивации SELinux на популярных Linux-дистрибутивах: Ubuntu, Debian, CentOS и RHEL. Объяснены способы через консоль и конфигурационные файлы.

Laravel MCP - AI-взаимодействия по универсальному стандарту

Laravel MCP - новая библиотека для Laravel, которая позволяет легко создавать AI-серверы по универсальному протоколу Model Context Protocol. MCP даёт структурированный способ взаимодействия AI-клиентов с вашим приложением через инструменты, ресурсы и шаблоны запросов.