Настройка и аудит системы Linux с помощью auditd

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

Расскажем о том, как использовать auditd. В качестве примера используется сервер с ОС Ubuntu Server 18.04.

Установка

По умолчанию auditd не интегрирован в операционную систему. Установим его штатными средствами:

sudo apt-get install auditd audispd-plugins

Важно! Если серверная платформа находится под управлением CentOS, устанавливать ничего не нужно — демон интегрирован в ОС.

Конфигурирование

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

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

auditctl –l

Если настройки не выполнялись, то таблица будет пустой

Важно! Удаление правил производится через ключ D.

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

auditctl -a command,action -F path=name_file -F perm=permission

  • name_file — имя файла, за которым ведется наблюдение со стороны сервиса auditd;
  • permission — права на доступ.

Поле принимает четыре значения:

  • R — права на чтение;
  • W — разрешается изменять;
  • X — используется для исполняемых файлов, сервис запускает его от своего имени;
  • A — изменить атрибуты объекта.

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

–a: обозначает для демона auditctl список (task, exit, user или exclude) и действие (never или always). Пара перечисляется через запятую.
–F: задает путь к файлу и предоставляет права на поиск.

Если требуется найти определенное событие или объект, используем команду ausearch с ключом –f. Допустим, необходимо просмотреть информацию о том, кто и когда использовал объект /etc/passwd. Прописываем:

uname –m

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

ausyscall arch number

  • arch — архитектура операционной системы;
  • number — числовое значение, полученное через команду uname.

Теперь вернемся к началу раздела. Зная, что такое системный вызов, администраторы использует команду auditctl для получения подробной информации о запускаемых приложениях и активных действиях по учетному имени.

Просмотр логов

Условия заданы, аудит проведен, а как же просмотреть результат? Для этого доступна команда aureport. Собранная информация хранится в директории /var/log/audit/, а файлы имеют расширение .log. Общий вид:

aureport option -if filename

  • option задает ключи, по которым происходит выборка информации;
  • –if указывает на файл, по которому работает фильтр.

Наиболее часто встречается фильтр по датам. За это отвечают опции —start и —end, после которых следует указание даты и точного времени. К примеру:

aureport --start 07/15/2008 00:00:00 --end 07/19/2018 00:00:00

Другой пример — просмотр всех отчетов, которые хранятся в каталоге:

aureport –x

Если нужна сводка событий, произошедших в ОС, добавляем в конце флаг —summary.

Последний востребованный вариант — просмотр «неудачных» операций. К таким относятся неудачный вход в ОС, блокировки и т.д. Посмотреть их можно следующим образом:

aureport -u --failed --summary –i

Остались вопросы? Задайте их нашему эксперту и получите квалифицированную помощь