Возможности расширенного аудита
Заключительный уровень небольшой по объему, так как носит ознакомительный характер. Чтобы быть в дальнейшем готовыми использовать возможности аудита для решения прикладных задач, необходимо понимать, какие возможности управления аудитом в принципе вам доступны. В двух следующих главах мы познакомимся с возможностями расширенного аудита, без глубокого погружения в технические детали их настройки.
Мир аудита, как и средств защиты информации в целом, огромен, мы надеемся, что вы заинтересуетесь аудитом и в дальнейшем отправитесь уже самостоятельно исследовать и применять его возможности.
Управление логированием
Расширенные возможности аудита позволяют настраивать вывод логов аудита, не в директорию, определенную параметром log_directory системного журнала.
Для того чтобы логи аудита выводились в отдельный журнал, необходимо настроить следующие параметры в конфигурационном файле postgresql.conf:
pgaudit.log = 'all'
pgaudit.legal = 'on'
pgaudit.log_level = 'log'
При необходимости изменить директорию и наименование файла лога аудита, используются параметры pgaudit.log_directory и pgaudit.log_filename.
В строку логирования можно дополнительно выводить некоторые параметры:
| Спецсимвол | Назначение | Только для пользовательского процесса |
|---|---|---|
%a | Имя приложения (application_name) | да |
%u | Имя пользователя | да |
%d | Имя базы данных | да |
%r | Имя удаленного узла или IP-адрес, а также номер порта | да |
%h | Имя удаленного узла или IP-адрес | да |
%p | Идентификатор процесса | нет |
%t | Штамп времени, без миллисекунд | нет |
%m | Штамп времени, с миллисекундами | нет |
%n | Штамп времени, с миллисекундами (в виде времени Unix) | нет |
%i | Тег команды: тип текущей команды в сессии | да |
%e | Код ошибки SQLSTATE | нет |
%c | Идентификатор сессии. Подробности ниже | нет |
%l | Номер строки журнала для каждой сессии или процесса. Начинается с 1 | нет |
%s | Штамп времени начала процесса | нет |
%v | Идентификатор виртуальной транзакции (backendID/localXID) | нет |
%x | Идентификатор транзакции (0 если не присвоен) | нет |
%q | Ничего не выводит. Не пользовательские процессы останавливаются в этой точке. Игнорируется пользовательскими процессами | нет |
%% | Выводит % | нет |
Например, при настройке log_line_prefix = '%m [%p] [%u]', в журнал выводится метка времени и идентификатор процесса.
Ротация файлов аудита
Файлы аудита могут быть ротированы (через заданный промежуток времени старые файлы заменяются новыми) в процессе записи событий аудита. В функциональность встроено четыре механизма ротации файлов аудита:
- По запросу – отправка сигнала
SIGUSR1(пользовательский сигнал, который используется для межпроцессной синхронизации). - При изменении параметров –
pgaudit.log_directoryилиpgaudit.log_filename. - По размеру файла – когда размер файла превышает значение, настроенное параметром
pgaudit.log_rotation_size. - По интервалу времени – по истечении заданного интервала, настроенного параметром
pgaudit.log_rotation_age.