• База знаний
  • /
  • Блог
  • /
  • Wiki
  • /
  • ONLINE CHAT
+380 (44) 364 05 71

Статья также доступна на украинском (перейти к просмотру).

Как отслеживать журналы аутентификации в Ubuntu

Оглавление

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

Журналы аутентификации – разновидности и роль в защите сервера

Linux-системы имеют достаточно мощные возможности ведения логов или журналирования по всем состояниям и событиям, происходящим в системе. Любой из журналов может быть отнесен к одной из категорий:

  • Для приложений;
  • Сообщений;
  • Для служб;
  • Системный.

Содержимое каждого из журналов распределено между несколькими файлами, в соответствии с направлением каждой из частей информации, обычно хранящихся в каталоге /var/log.

Такая структура способствует более эффективному упорядочению и поиску нужных данных как для системы, так и для Администратора.

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

  • Время и дата посещения или попытки подключения;
  • Удачные и неудачные попытки подключения;
  • Использованы механизмы аутентификации при входе;
  • IP-адрес, с которым происходило подключение или его попытка;
  • Имя и последние действия каждого зарегистрированного пользователя.

Основные логи Ubuntu и их назначения, используемые для аутентификации:

  • /var/log/auth.log или /var/log/secure – фиксация всех попыток подключения и применяемого при этом метода аутентификации;
  • /var/log/lastlog – фиксируются последние сессии каждого пользователя;
  • /var/log/tallylog – регистрируются неудачные попытки подключения;
  • /var/log/btmp – бинарный журнал для регистрации неудачных попыток;
  • /etc/log/wtmp – бинарный журнал, где регистрируются последние посетители.

Следует отметить, что системой фиксируются попытки подключения не только физических пользователей, но вообще любого программного средства, скрипта или протокола, что вполне понятно.

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

Ниже будут рассмотрены возможные варианты внесения изменений в настройки на основании информации из журналов аутентификации. Но сначала приведем программные средства для работы с файлами журналов и методы работы с ними, что также является важным моментом.

Программные средства для просмотра и настройки журналов ОС Ubuntu

Для возможности беспрепятственного использования информации из журналов аутентификации необходимо учитывать, что форматы хранения информации в них могут быть разными и многие из них могут иметь значительный объем. Это означает, что нет универсального редактора для работы с такими файлами, а нужно подобрать наиболее подходящий редактор, команду или утилиту для каждого случая.

В этой связи можно условно выделить две категории программных средств для работы с такими файлами: внутренние и внешние (утилиты). Первые являются фактически специализированными командами, предназначенными для работы с файлами журнала аутентификации соответствующих форматов. Другие нуждаются в установке и более универсальны и многовекторны в том смысле, что, во-первых: позволяют просматривать любые журналы, а не только аутентификации; во-вторых: могут быть использованы для автоматизации работы системы защиты, например F2B и другие. Сюда можно отнести специализированное средство LogRotate, о котором мы уже рассказывали ранее и близкую по характеристикам программу sysctl.

Рассмотрим поочередно обе категории указанных средств.

Внутренние средства

Можно выделить следующие команды, которые позволяют просматривать и фильтровать информацию и даже отправлять Администратору отчеты на ее основе:

  • less;
  • tail;
  • last;
  • lastlog;
  • journalctl;
  • logwatch.

Рассмотрим их более подробно.

Команда less. Например, просмотрим данные обо всех попытках аутентификации, размещенных в файле auth.log. Для этого наберем в терминале:

$ sudo less /var/log/auth.log

Просмотр всех попыток аутентифиации

Мы видим, что в результате ее выполнения выведена информация, в частности, об имени пользователя или подсоединяемого программного средства; использован способ аутентификации; время и дата операции; порт и IP-адрес и тому подобное.

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

Для выхода из режима просмотра нажмите клавишу Q.

Команда tail. Это также означает, что достаточно компактно получать информацию. Используйте его для этого файла:

$ sudo tail /var/log/auth.log

Использование команды tail

Формат вывода приближается к предыдущей команде. При самостоятельном переносе отмечается, что они не соединяются между собой в пределах одной строчки.

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

Так, для просмотра информации, которая требуется для оставшихся запросов на подключение к системе, достаточно ввести название команды в командной строке терминала:

$ last

Последние подключения к системе

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

Эта информация была взята из команды из бинарного файла /etc/log/wtmp, где уже было все выше, и она была выведена в недоступном для просмотра людьми формате.

Для получения более подробной информации по команде и дополнительным параметрам можно получить дополнительную информацию:

$ man last

Мануал по команде last

Для выхода из режима просмотра нажмите клавишу Q.

Команда lastlog. Позволяет просмотреть содержимое одноименного файла журнала, в котором фиксируется информация с последних сессий каждого из зарегистрированных пользователей, что очень полезно для Администратора. Выводимая информация упорядочивается в соответствии с записями системного файла /etc/passwd. Время ее выполнения зависит от количества зарегистрированных в системе пользователей и, следовательно, может быть достаточно значительным.

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

$ lastlog

Результат команды lastlog

Обратим внимание на то, что в списке «відвідувачів» также присутствуют данные по системным учетным записям, например служба syslog, которые, конечно, не используются для прямой регистрации в системе и, поэтому, напротив них указано:Never logged in Для других пользователей, в частности root, выведено точное время и дата последней аутентификации – 13 November 09:56:12.

Команда также может использоваться с дополнительными параметрами для детализации информации. Например, выведем список пользователей, вошедших в систему ранее трех последних дней. Для этого введем:

$ lastlog --before 3

Вход в систему за три дня

Теперь выведем список пользователей, зарегистрировавшихся в последние два дня:

$ lastlog --time 2

Регистрация пользователей за последние два дня

Можно убедиться, что это работает и может использоваться для выполнения различных задач системного мониторинга.

Команда journalctl. Позволяет просматривать и сортировать данные по уровню ошибок, времени и другим параметрам. Данные извлекаются из системного журнала systemd-journal. Например, просмотрим записи, связанные со службой SSH:

$ sudo journalctl -u ssh

Отсортированный по уровню список ошибок

Теперь просмотрим последние записи журнала в динамическом режиме вывода на экран новых записей при их фиксации в журнале:

$ sudo journalctl -f

Новые записи в журнале

Кстати о дополнительных настройках ssh_config мы уже писали в предыдущей статье. Ознакомиться с ней Вы можете по ссылке.

Утилита позволяет изменять набор используемых файлов журнала в зависимости от типа востребованной Администратором информации. Для этого можно использовать опции --user, --system, --directory та --file. К примеру, для просмотра только системной информации набираем в терминале:

$ sudo journalctl --system

Список системных ошибок

Для выхода из режима просмотра наберем Q.

Команда logwatch. Контролирует журналы, связанные с фиксацией неудачных попыток аутентификации и формирует на их основании отчеты, отправляемые на почту Администратора. В установке не требуется. Единственное, что необходимо сделать, указать или скорректировать адрес электронной почты для отправки отчетов. Это можно сделать с помощью файла конфигурации программы logwatch.conf.

Например, откроем конфигурационный файл с помощью nano:

$ nano /usr/share/logwatch/default.conf/logwatch.conf

Редактирование файла logwatch.conf

Здесь также есть и другие варианты настроек, позволяющие сделать оповещение еще более удобным и оперативным.

Наружные утилиты

Существует ряд внешних программных средств для работы с любыми журналами, в том числе и аутентификации. Некоторые из них простейшие и, по сути, выполняют роль редактора с определенными возможностями. Это такие, например, как приложение LNAV (Log File Navigator).Но есть и более мощные средства, позволяющие наладить автоматическую фильтрацию на входе, например F2B (Fail2Ban). Конечно, для их использования сначала их нужно установить и при необходимости наладить.

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

  • LNAV;
  • F2B.

Рассмотрим их более подробно.

Утилита LNAV. По сути, является навигатором по журналам и может одновременно работать с несколькими журналами разных форматов, переключаясь между ними. Способна читать большинство существующих форматов – dpkg.log, glog, strace, Syslog, Access_log и другие, что делает его в определенной степени универсальным средством.

Сначала обновим индекс пакетов в нашей системе:

$ sudo apt update

Обновление пакетов системы

Теперь установим файловый навигатор на нашей машине. Команда установки зависит от типа установленной ОС. Для линейки Debian/Ubuntu/Linux Mint команда будет выглядеть следующим образом:

$ apt install lnav

Установка файлового навигатора

Подтвердим выделение дополнительных 3,752 kB и процесс развертывания продолжится.

Процесс установки lnav

Итак, утилита установлена ??– Setting up lnav (0.9.0-2ubuntu1).

Попытаемся просмотреть с ее помощью наш файл auth.log. Для этого наберем в терминале:

$ sudo lnav /var/log/auth.log

Просмотр lnav через auth.log

Как можно убедиться, ее информативность и редактирование информации значительно выше, чем у устроенных команд. Для выхода из программы нажмем Q.

Утилита F2B. Является мощным средством защиты от атак на основе использования данных системных журналов. Позволяет установить автоматические фильтры по многим параметрам – IP, количество попыток подключения, время аутентификации и других.

Установим его в нашей системе Ubuntu 22.04. Для этого введем в терминале:

$ sudo apt install fail2ban

Установка fail2ban

После подтверждения выделения дополнительных 2,486 Kb процесс продолжится.

Процесс установки F2B.

Программа была успешно установлена - Setting up fail2ban (0.11.2-6).

Для дальнейшего использования средства желательно осуществить ряд настроек, касающихся ваших потребностей. Файл настроек со стандартными значениями параметров обычно находится по адресу /etc/fail2ban/jail.conf. Но, учитывая, что после каждого обновления программы информация в файле автоматически обновляется, желательно вносить изменения в другой так называемый локальный файл с названием jail.local, который должен размещаться в том же каталоге. Но об этом поговорим чуть позже.

Программа позволяет, в частности, осуществить следующие виды настроек:

  • Выбрать нужные журналы;
  • Настройка автоматического сканирования неудачных попыток аутентификации в системе;
  • Указать время блокировки для IP-адресов, которые были заблокированы;
  • Да еще многое.

Например, просмотрим содержимое основного конфигурационного файла программы:

$ nano /etc/fail2ban/jail.conf

Просмотр фалйа кофігурации jail.conf

Можно увидеть, что файл поделен на изолированные секции под названием джейлы (jails). Каждая из них отвечает за определенный сервис и может использоваться для защиты от конкретной атаки.

Запустим программу в качестве службы:

$ sudo systemctl start fail2ban

Запуск службы fail2ban

Проверим ее версию:

$ sudo fail2ban-client version

Проверка версии F2B

Проверим статус службы:

$ sudo systemctl status fail2ban

Просмотр статуса службы fail2ban.

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

$ sudo systemctl enable fail2ban.service

Настройка автозапуска службы

Теперь перезагрузим службу rsyslog:

$ sudo service rsyslog restart

Перезапуск rsyslog

После этого перейдем к формированию нашего локального файла конфигурации программы. Для этого создадим его с помощью редактора nano:

$ nano /etc/fail2ban/jail.local

Внесем значение наиболее важных для нас параметров защиты системы в соответствующих секциях файла:

# Fail2Ban LOCAL conf file
 
[DEFAULT]
 
bantime  = 5h
findtime = 7m
maxretry = 3
ignoreip = 127.0.0.1 193.0.207.160
 
# JAILS
 
[sshd]
enabled = true

Здесь параметр bantime – устанавливает время блокировки IP-адреса (в часах); findtime – интервал времени для фиксации неудачных попыток подключения к системе; maxretry – количество неудачных попыток за интервал времени, установленного в findtime; ignoreip – статические адреса, разрешенные, например, адрес ПК Администратора. В секции [sshd] мы включили соответствующую службу. Значения параметров, заданных для отдельных джейлов, будут иметь наивысший приоритет по сравнению с общими настройками, что значительно повышает гибкость всех настроек и, соответственно, всей системы защиты.

Редактирование файла jail.local

Внесем указанные данные в файл и сохраним его.

Теперь перезагрузим службу fail2ban:

$ service fail2ban restart

Перезапуск службы fail2ban

Более подробно с возможностями fail2ban Вы можете ознакомиться в нашей статье “Защита сервера с помощью утилиты fail2ban. Как ее настроить?

Выводы

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

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

В дата-центре FREEhost.UA Вы можете заказать сервер для аренды под любое задание. Почти все конфигурации, указанные на сайте, есть в наличии. Поэтому настроенный сервер после подтверждения заказа мы предоставляем пользователю в течение нескольких часов. По Вашему желанию на сервере может быть настроена выбранная Вами ОС из семейства Linux или Windows, а также установлена ??панель управления.

Подписывайтесь на наш телеграм-канал https://t.me/freehostua, что бы быть в курсе нових полезных материалов.

Смотрите наш канал Youtube наhttps://www.youtube.com/freehostua.

Мы в чем ошиблись, или что-то пропустили?

Напишите об этом в комментариях, мы с удовольствием ответим и обсуждаем Ваши замечания и предложения.

Дата: 16.11.2023
Автор: Александр Ровник
Голосование

Авторам статьи важно Ваше мнение. Будем рады его обсудить с Вами:

comments powered by Disqus
navigate
go
exit
Спасибо, что выбираете FREEhost.UA