+ whitespace cleanup after previous two commits.
This commit is contained in:
parent
7a42c55166
commit
ba0eb3136d
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=44581
1 changed files with 249 additions and 254 deletions
|
@ -16,7 +16,9 @@ requirements. -->
|
|||
<chapter xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
|
||||
xml:id="audit">
|
||||
<info><title>Аудит событий безопасности</title>
|
||||
<info>
|
||||
<title>Аудит событий безопасности</title>
|
||||
|
||||
<authorgroup>
|
||||
<author>
|
||||
<personname>
|
||||
|
@ -25,6 +27,7 @@ requirements. -->
|
|||
</personname>
|
||||
<contrib>Автор </contrib>
|
||||
</author>
|
||||
|
||||
<author>
|
||||
<personname>
|
||||
<firstname>Robert</firstname>
|
||||
|
@ -36,40 +39,41 @@ requirements. -->
|
|||
|
||||
<sect1 xml:id="audit-synopsis">
|
||||
<title>Краткий обзор</title>
|
||||
|
||||
<indexterm><primary>AUDIT</primary></indexterm>
|
||||
<indexterm>
|
||||
<primary>Аудит событий безопасности</primary>
|
||||
<see>MAC</see>
|
||||
</indexterm>
|
||||
|
||||
<para>Операционная система &os; включает в себя поддержку аудита
|
||||
событий безопасности. Аудит позволяет выполнять надежное,
|
||||
детальное и гибко настраиваемое протоколирование
|
||||
различных событий, связанных с безопасностью,
|
||||
включая входы в систему, изменения конфигурации, доступ к
|
||||
файлам и сети. Эти записи могут быть незаменимы для
|
||||
мониторинга функционирующей системы, обнаружения вторжений
|
||||
и для анализа событий, приведших к краху системы.
|
||||
В &os; реализован опубликованный &sun; интерфейс прикладного
|
||||
программирования (Application Programming Interface,
|
||||
<acronym>API</acronym>), называемый Basic Security Module
|
||||
(<acronym>BSM</acronym>), и формат файла, который совместим с
|
||||
реализациями аудита в &solaris; и &macos; X.</para>
|
||||
детальное и гибко настраиваемое протоколирование различных
|
||||
событий, связанных с безопасностью, включая входы в систему,
|
||||
изменения конфигурации, доступ к файлам и сети. Эти записи
|
||||
могут быть незаменимы для мониторинга функционирующей системы,
|
||||
обнаружения вторжений и для анализа событий, приведших к краху
|
||||
системы. В &os; реализован опубликованный &sun; интерфейс
|
||||
прикладного программирования (Application Programming
|
||||
Interface, <acronym>API</acronym>), называемый Basic Security
|
||||
Module (<acronym>BSM</acronym>), и формат файла, который
|
||||
совместим с реализациями аудита в &solaris; и &macos; X.</para>
|
||||
|
||||
<para>В этой главе описывается процесс установки и
|
||||
конфигурирования системы аудита. В том числе, приводится
|
||||
разъяснение политик аудита, а также даются примеры конфигурационных
|
||||
файлов.</para>
|
||||
разъяснение политик аудита, а также даются примеры
|
||||
конфигурационных файлов.</para>
|
||||
|
||||
<para>После прочтения этой главы вы будете знать:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Что такое система аудита и как она работает.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<!-- XXX broken indent -->
|
||||
<para>Как настроить аудит во &os; для мониторинга
|
||||
пользователей и процессов.</para>
|
||||
пользователей и процессов.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -93,28 +97,29 @@ requirements. -->
|
|||
|
||||
<listitem>
|
||||
<para>Понимать основные принципы безопасности в применении
|
||||
к операционной системе &os; (<xref linkend="security"/>).</para>
|
||||
к операционной системе &os; (<xref
|
||||
linkend="security"/>).</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<warning>
|
||||
<para>Реализация аудита имеет известные ограничения.
|
||||
Не все события в настоящий момент протоколируемые.
|
||||
Также, некоторые механизмы входа в систему, такие как
|
||||
оконные менеджеры <application>X11</application> или
|
||||
демоны от сторонних производителей, не настраивают аудит
|
||||
пользовательских сессий должным образом.</para>
|
||||
<para>Реализация аудита имеет известные ограничения. Не все
|
||||
события в настоящий момент протоколируемые. Также, некоторые
|
||||
механизмы входа в систему, такие как оконные менеджеры
|
||||
<application>X11</application> или демоны от сторонних
|
||||
производителей, не настраивают аудит пользовательских сессий
|
||||
должным образом.</para>
|
||||
|
||||
<para>Использование системы аудита может привести к
|
||||
генерированию изобилующих подробностями журнальных файлов.
|
||||
Их размер на загруженных серверах в некоторых конфигурациях
|
||||
может превышать несколько гигабайт в неделю.
|
||||
Администраторы должны принимать во внимание требования
|
||||
к дисковому пространству для нагруженных конфигураций системы
|
||||
аудита. Например, желательно выделить отдельный раздел для
|
||||
файловой системы аудита <filename>/var/audit</filename>,
|
||||
чтобы заполнение раздела аудита не влияло на
|
||||
другие файловые системы.</para>
|
||||
может превышать несколько гигабайт в неделю. Администраторы
|
||||
должны принимать во внимание требования к дисковому
|
||||
пространству для нагруженных конфигураций системы аудита.
|
||||
Например, желательно выделить отдельный раздел для файловой
|
||||
системы аудита <filename>/var/audit</filename>, чтобы
|
||||
заполнение раздела аудита не влияло на другие файловые
|
||||
системы.</para>
|
||||
</warning>
|
||||
</sect1>
|
||||
|
||||
|
@ -129,46 +134,43 @@ requirements. -->
|
|||
<para><emphasis>событие</emphasis> (event): событие, которое
|
||||
может быть занесено в журнал. Примерами событий,
|
||||
относящихся к безопасности системы, являются: создание
|
||||
файла, инициализацию сетевого
|
||||
соединения, вход пользователя в систему. События
|
||||
разделяются на <quote>приписываемые</quote> (attributable) -
|
||||
те, которые могут быть отнесены к конкретному пользователю -
|
||||
и <quote>неприписываемые</quote> (non-attributable).
|
||||
Пример
|
||||
неприписываемого события — любое событие, произошедшее до
|
||||
аутентификации пользователя, например, неверно
|
||||
набранный пароль.</para>
|
||||
файла, инициализацию сетевого соединения, вход пользователя
|
||||
в систему. События разделяются на
|
||||
<quote>приписываемые</quote> (attributable) - те, которые
|
||||
могут быть отнесены к конкретному пользователю - и
|
||||
<quote>неприписываемые</quote> (non-attributable). Пример
|
||||
неприписываемого события — любое событие,
|
||||
произошедшее до аутентификации пользователя, например,
|
||||
неверно набранный пароль.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>класс</emphasis> (class): именованные наборы
|
||||
однотипных событий, которые используются
|
||||
в выражениях выбора. Часто используемые классы событий
|
||||
включают <quote>создание файла</quote> (fc),
|
||||
<quote>выполнение файла</quote> (ex)
|
||||
и <quote>события входа в систему и выхода из нее</quote> (lo).</para>
|
||||
однотипных событий, которые используются в выражениях
|
||||
выбора. Часто используемые классы событий включают
|
||||
<quote>создание файла</quote> (fc), <quote>выполнение
|
||||
файла</quote> (ex) и <quote>события входа в систему и
|
||||
выхода из нее</quote> (lo).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>запись</emphasis> (record): единичная запись
|
||||
в журнале, описывающая то или иное
|
||||
событие. Записи содержат информацию о типе события,
|
||||
информацию о субъекте события (пользователе), который
|
||||
выполнил некоторое действие, дату и время события,
|
||||
информацию об объектах и аргументах события,
|
||||
а также информацию об успешности или неуспешности выполнения
|
||||
операции.</para>
|
||||
в журнале, описывающая то или иное событие. Записи
|
||||
содержат информацию о типе события, информацию о субъекте
|
||||
события (пользователе), который выполнил некоторое действие,
|
||||
дату и время события, информацию об объектах и аргументах
|
||||
события, а также информацию об успешности или неуспешности
|
||||
выполнения операции.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>журнал</emphasis> (trail): файл,
|
||||
содержащий последовательность записей аудита, описывающих
|
||||
события безопасности (security events).
|
||||
Журнал содержит записи в ориентировочно
|
||||
хронологическом порядке по времени завершения
|
||||
события. Только авторизованные процессы могут
|
||||
<para><emphasis>журнал</emphasis> (trail): файл, содержащий
|
||||
последовательность записей аудита, описывающих события
|
||||
безопасности (security events). Журнал содержит записи в
|
||||
ориентировочно хронологическом порядке по времени
|
||||
завершения события. Только авторизованные процессы могут
|
||||
добавлять записи в журнал.</para>
|
||||
</listitem>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>выражение выбора</emphasis> (selection
|
||||
|
@ -177,26 +179,27 @@ requirements. -->
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>предварительный выбор</emphasis> (preselection):
|
||||
процесс, с помощью которого система определяет, какие события имеют
|
||||
важность для администратора.
|
||||
<para><emphasis>предварительный выбор</emphasis>
|
||||
(preselection): процесс, с помощью которого система
|
||||
определяет, какие события имеют важность для администратора.
|
||||
Предварительный выбор использует ряд выражений выбора,
|
||||
задающих какие именно классы событий и для
|
||||
какого пользователя необходимо вносить в журнал, а также —
|
||||
задающих какие именно классы событий и для какого
|
||||
пользователя необходимо вносить в журнал, а также —
|
||||
глобальные настройки, которые будут применяться как для
|
||||
авторизованных, так и для неавторизованных процессов.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>фильтрация</emphasis> (reduction):
|
||||
процесс, в результате которого записи из существующего журнала
|
||||
выделяются для хранения, распечатки или анализа. Также, это
|
||||
процесс, в результате которого нежелательные записи удаляются
|
||||
из журнала аудита. Используя фильтрацию, администраторы могут
|
||||
реализовывать различные политики хранения данных аудита.
|
||||
Например, детализированный журнал может храниться месяц, но
|
||||
после этого он может быть сокращен чтобы хранить только
|
||||
информацию о входе в систему и выходе из нее.</para>
|
||||
<para><emphasis>фильтрация</emphasis> (reduction): процесс, в
|
||||
результате которого записи из существующего журнала
|
||||
выделяются для хранения, распечатки или анализа. Также,
|
||||
это процесс, в результате которого нежелательные записи
|
||||
удаляются из журнала аудита. Используя фильтрацию,
|
||||
администраторы могут реализовывать различные политики
|
||||
хранения данных аудита. Например, детализированный журнал
|
||||
может храниться месяц, но после этого он может быть
|
||||
сокращен чтобы хранить только информацию о входе в систему
|
||||
и выходе из нее.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect1>
|
||||
|
@ -228,10 +231,9 @@ requirements. -->
|
|||
<para>Выражения выбора используются в нескольких местах
|
||||
конфигурации для отбора событий, подлежащих аудиту.
|
||||
Выражения содержат перечень классов событий, с которым
|
||||
сравнивается происшедшее событие. Выражения
|
||||
выбора рассматриваются слева направо, и два выражения
|
||||
объединяются добавлением первого выражения ко
|
||||
второму.</para>
|
||||
сравнивается происшедшее событие. Выражения выбора
|
||||
рассматриваются слева направо, и два выражения объединяются
|
||||
добавлением первого выражения ко второму.</para>
|
||||
|
||||
<para><xref linkend="event-selection"/> перечисляет имеющиеся
|
||||
по умолчанию записи:</para>
|
||||
|
@ -399,10 +401,9 @@ requirements. -->
|
|||
<filename>audit_event</filename>.</para>
|
||||
|
||||
<para>Каждый класс аудита можно скомбинировать с префиксом,
|
||||
показывающим,
|
||||
какие операции будут учитываться — удачные или неудачные,
|
||||
а также то, включает ли данная запись аудит для данного
|
||||
класса и типа, либо отключает его. <xref
|
||||
показывающим, какие операции будут учитываться —
|
||||
удачные или неудачные, а также то, включает ли данная запись
|
||||
аудит для данного класса и типа, либо отключает его. <xref
|
||||
linkend="event-prefixes"/> обобщает доступные
|
||||
префиксы:</para>
|
||||
|
||||
|
@ -452,9 +453,9 @@ requirements. -->
|
|||
<para>Если префикс не указан, то аудиту подлежат как успешные,
|
||||
так и неуспешные события.</para>
|
||||
|
||||
<para>Следующий пример выбирает успешные и неуспешные события входа в
|
||||
систему и выхода из нее, и только успешные события выполнения
|
||||
приложения:</para>
|
||||
<para>Следующий пример выбирает успешные и неуспешные события
|
||||
входа в систему и выхода из нее, и только успешные события
|
||||
выполнения приложения:</para>
|
||||
|
||||
<programlisting>lo,+ex</programlisting>
|
||||
</sect2>
|
||||
|
@ -474,9 +475,9 @@ requirements. -->
|
|||
<listitem>
|
||||
<para><filename>audit_control</filename>: контроллирует
|
||||
некоторые аспекты системы аудита, такие как классы по
|
||||
умолчанию, минимальное дисковое
|
||||
пространство, которое должно оставаться на разделе журнала
|
||||
аудита, максимальный размер журнала аудита.</para>
|
||||
умолчанию, минимальное дисковое пространство, которое
|
||||
должно оставаться на разделе журнала аудита, максимальный
|
||||
размер журнала аудита.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -495,10 +496,11 @@ requirements. -->
|
|||
|
||||
<listitem>
|
||||
<para><filename>audit_warn</filename>: настраиваемый скрипт
|
||||
командного интерпретатора, который вызывается &man.auditd.8;
|
||||
для генерации предупреждений в исключительных ситуациях,
|
||||
таких как исчерпание дискового пространства записями аудита
|
||||
или при ротации журнала аудита.</para>
|
||||
командного интерпретатора, который вызывается
|
||||
&man.auditd.8; для генерации предупреждений в
|
||||
исключительных ситуациях, таких как исчерпание дискового
|
||||
пространства записями аудита или при ротации журнала
|
||||
аудита.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
|
@ -531,16 +533,15 @@ policy:cnt,argv
|
|||
filesz:2M
|
||||
expire-after:10M</programlisting>
|
||||
|
||||
<para>Запись <option>dir</option> используется для
|
||||
установки одного или более каталогов, в
|
||||
которых будет сохраняться журнал системы аудита. Если
|
||||
указан более чем один каталог, то указанные каталоги
|
||||
будут использоваться по очереди, по мере заполнения. Как
|
||||
правило, система аудита настраивается на хранение
|
||||
журнала аудита на отдельном разделе, чтобы
|
||||
предотвратить взаимное влияние подсистемы аудита и остальных
|
||||
подсистем в случае исчерпания свободного места на
|
||||
разделе.</para>
|
||||
<para>Запись <option>dir</option> используется для установки
|
||||
одного или более каталогов, в которых будет сохраняться
|
||||
журнал системы аудита. Если указан более чем один каталог,
|
||||
то указанные каталоги будут использоваться по очереди, по
|
||||
мере заполнения. Как правило, система аудита настраивается
|
||||
на хранение журнала аудита на отдельном разделе, чтобы
|
||||
предотвратить взаимное влияние подсистемы аудита и
|
||||
остальных подсистем в случае исчерпания свободного
|
||||
места на разделе.</para>
|
||||
|
||||
<para>Если опция <option>dist</option> имеет значение
|
||||
<literal>on</literal> или <literal>yes</literal>, то для
|
||||
|
@ -548,8 +549,8 @@ expire-after:10M</programlisting>
|
|||
сохраняемые в <filename>/var/audit/dist</filename>.</para>
|
||||
|
||||
<para>Запись <option>flags</option> используется для
|
||||
установки глобальной маски предварительного выбора
|
||||
для приписываемых событий. В примере выше аудиту будут
|
||||
установки глобальной маски предварительного выбора для
|
||||
приписываемых событий. В примере выше аудиту будут
|
||||
подвергаться как успешные, так и неудачные попытки входа в
|
||||
систему и выхода из нее, а также — аутентификация
|
||||
и авторизация для всех пользователей.</para>
|
||||
|
@ -564,24 +565,21 @@ expire-after:10M</programlisting>
|
|||
входа в систему и системных демонов.</para>
|
||||
|
||||
<para>Запись <option>policy</option> определяет разделяемый
|
||||
запятыми список
|
||||
флагов политики, определяющей различные аспекты поведения
|
||||
аудита.
|
||||
Флаг <literal>cnt</literal> указывает, что
|
||||
система должна продолжать работать, несмотря на ошибки
|
||||
аудита (данный флаг настоятельно рекомендуется).
|
||||
Второй флаг, <literal>argv</literal>,
|
||||
заставляет подвергать аудиту аргументы командной
|
||||
строки при вызове системного вызова &man.execve.2;.</para>
|
||||
запятыми список флагов политики, определяющей различные
|
||||
аспекты поведения аудита. Флаг <literal>cnt</literal>
|
||||
указывает, что система должна продолжать работать, несмотря
|
||||
на ошибки аудита (данный флаг настоятельно рекомендуется).
|
||||
Второй флаг, <literal>argv</literal>, заставляет подвергать
|
||||
аудиту аргументы командной строки при вызове системного
|
||||
вызова &man.execve.2;.</para>
|
||||
|
||||
<para>Запись <option>filesz</option> определяет максимальный
|
||||
размер журнала событий аудита, по достижении которого
|
||||
журнал будет автоматически
|
||||
закончен и подвергнут ротации. Значение <literal>0</literal>
|
||||
запрещает автоматическую ротацию логов. Если указанный
|
||||
размер ниже минимального значения
|
||||
512К, то он будет проигнорирован, и будет сгенерировано
|
||||
предупреждающее сообщение в логах.</para>
|
||||
журнал будет автоматически закончен и подвергнут ротации.
|
||||
Значение <literal>0</literal> запрещает автоматическую
|
||||
ротацию логов. Если указанный размер ниже минимального
|
||||
значения 512К, то он будет проигнорирован, и будет
|
||||
сгенерировано предупреждающее сообщение в логах.</para>
|
||||
|
||||
<para>Поле <option>expire-after</option> определяет момент
|
||||
времени, при достижении которого журнальные файлы считаются
|
||||
|
@ -592,30 +590,28 @@ expire-after:10M</programlisting>
|
|||
<title>Файл <filename>audit_user</filename></title>
|
||||
|
||||
<para>Администратор может определить дополнительные
|
||||
требования к аудиту для конкретных пользователей
|
||||
в файле <filename>audit_user</filename>.
|
||||
Каждая строка позволяет уточнить настройки аудита
|
||||
для пользователя при помощи двух полей:
|
||||
<literal>alwaysaudit</literal> — определяющее
|
||||
набор событий, которые должны всегда подвергаться
|
||||
аудиту для данного пользователя, и
|
||||
<literal>neveraudit</literal> — перечисляющее
|
||||
набор событий, которые никогда не должны подвергаться
|
||||
аудиту для пользователя.</para>
|
||||
требования к аудиту для конкретных пользователей в файле
|
||||
<filename>audit_user</filename>. Каждая строка позволяет
|
||||
уточнить настройки аудита для пользователя при помощи двух
|
||||
полей: <literal>alwaysaudit</literal> — определяющее
|
||||
набор событий, которые должны всегда подвергаться аудиту
|
||||
для данного пользователя, и <literal>neveraudit</literal>
|
||||
— перечисляющее набор событий, которые никогда не
|
||||
должны подвергаться аудиту для пользователя.</para>
|
||||
|
||||
<para>Нижеследующий пример настраивает аудит всех событий
|
||||
входа в систему, выхода из системы, а также аудит всех
|
||||
успешных выполнений команд для пользователя
|
||||
<systemitem class="username">root</systemitem>,
|
||||
а также — аудит всех событий, связанных с созданием
|
||||
файлов и успешным выполнением команд пользователем
|
||||
<systemitem class="username">www</systemitem>. С
|
||||
настройками по умолчанию в <filename>audit_control</filename>
|
||||
запись <literal>lo</literal> для
|
||||
<systemitem class="username">root</systemitem>
|
||||
является избыточной, кроме того, события входа в систему и выхода
|
||||
из системы будут подвергаться аудиту и для пользователя
|
||||
<systemitem class="username">www</systemitem>.</para>
|
||||
успешных выполнений команд для пользователя <systemitem
|
||||
class="username">root</systemitem>, а также — аудит
|
||||
всех событий, связанных с созданием файлов и успешным
|
||||
выполнением команд пользователем <systemitem
|
||||
class="username">www</systemitem>. С настройками по
|
||||
умолчанию в <filename>audit_control</filename> запись
|
||||
<literal>lo</literal> для <systemitem
|
||||
class="username">root</systemitem> является избыточной,
|
||||
кроме того, события входа в систему и выхода из системы
|
||||
будут подвергаться аудиту и для пользователя <systemitem
|
||||
class="username">www</systemitem>.</para>
|
||||
|
||||
<programlisting>root:lo,+ex:no
|
||||
www:fc,+ex:no</programlisting>
|
||||
|
@ -625,39 +621,38 @@ www:fc,+ex:no</programlisting>
|
|||
|
||||
<sect1 xml:id="audit-administration">
|
||||
<title>Работа с журналами аудита</title>
|
||||
<!-- XXX broken indent 00 starts -->
|
||||
|
||||
<para>Так как журнал аудита хранится в бинарном формате
|
||||
<acronym>BSM</acronym>, то для его изменения или перевода в
|
||||
текстовый формат предоставляются встроенные утилиты. Утилита
|
||||
<command>praudit</command> преобразует журнал аудита в текстовый
|
||||
формат. Утилита <command>auditreduce</command> применяется для
|
||||
фильтрации журнальных записей с целью анализа, архивирования
|
||||
или распечатки. Последняя утилита поддерживает разнообразие
|
||||
параметров, позволяющих выбирать записи по типу события, по
|
||||
классу события, по пользователю, по дате или времени события,
|
||||
по пути к файлу или по объекту, над которым производилось
|
||||
действие.</para>
|
||||
<command>praudit</command> преобразует журнал аудита в
|
||||
текстовый формат. Утилита <command>auditreduce</command>
|
||||
применяется для фильтрации журнальных записей с целью анализа,
|
||||
архивирования или распечатки. Последняя утилита поддерживает
|
||||
разнообразие параметров, позволяющих выбирать записи по типу
|
||||
события, по классу события, по пользователю, по дате или
|
||||
времени события, по пути к файлу или по объекту, над которым
|
||||
производилось действие.</para>
|
||||
|
||||
<para>Например, для отображения всего содержимого журнала аудита
|
||||
в текстовом формате выполните:</para>
|
||||
<para>Например, для отображения всего содержимого журнала аудита
|
||||
в текстовом формате выполните:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>praudit /var/audit/<replaceable>AUDITFILE</replaceable></userinput></screen>
|
||||
<screen>&prompt.root; <userinput>praudit /var/audit/<replaceable>AUDITFILE</replaceable></userinput></screen>
|
||||
|
||||
<para>В данном примере <replaceable>AUDITFILE</replaceable>
|
||||
— журнал,
|
||||
который будет выведен в текстовом формате.</para>
|
||||
<para>В данном примере <replaceable>AUDITFILE</replaceable>
|
||||
— журнал, который будет выведен в текстовом
|
||||
формате.</para>
|
||||
|
||||
<para>Журнал аудита состоит из серии записей, которые, в свою
|
||||
очередь состоят из элементов, которые команда
|
||||
<command>praudit</command>
|
||||
выводит последовательно - по одному на строку. Каждый элемент
|
||||
имеет определенный тип, например
|
||||
<literal>header</literal> (содержит заголовок записи) или
|
||||
<literal>path</literal> (полный путь к файлу).
|
||||
Следующий пример показывает запись для события
|
||||
<literal>execve</literal>:</para>
|
||||
<para>Журнал аудита состоит из серии записей, которые, в свою
|
||||
очередь состоят из элементов, которые команда
|
||||
<command>praudit</command> выводит последовательно - по одному
|
||||
на строку. Каждый элемент имеет определенный тип, например
|
||||
<literal>header</literal> (содержит заголовок записи) или
|
||||
<literal>path</literal> (полный путь к файлу). Следующий
|
||||
пример показывает запись для события
|
||||
<literal>execve</literal>:</para>
|
||||
|
||||
<programlisting>header,133,10,execve(2),0,Mon Sep 25 15:58:03 2006, + 384 msec
|
||||
<programlisting>header,133,10,execve(2),0,Mon Sep 25 15:58:03 2006, + 384 msec
|
||||
exec arg,finger,doug
|
||||
path,/usr/bin/finger
|
||||
attribute,555,root,wheel,90,24918,104944
|
||||
|
@ -665,77 +660,75 @@ subject,robert,root,wheel,root,wheel,38439,38032,42086,128.232.9.100
|
|||
return,success,0
|
||||
trailer,133</programlisting>
|
||||
|
||||
<para>Эта запись отражает результат успешного выполнения системного
|
||||
вызова <literal>execve</literal>, который стал результатом выполнения
|
||||
команды <literal>finger doug</literal>. В элементе записи
|
||||
<literal>exec arg</literal> есть
|
||||
командная строка, которую оболочка передала ядру. Элемент
|
||||
<literal>path</literal> содержит путь к исполняемому файлу в
|
||||
представлении ядра. Элемент <literal>attribute</literal>
|
||||
описывает исполняемый файл, а также права доступа файла.
|
||||
Элемент <literal>subject</literal> описывает
|
||||
ID аудируемого пользователя, исполняющие (effective) UID и GID,
|
||||
реальные ID пользователя и группы, идентификатор процесса,
|
||||
идентификатор сессии, порт и адрес, с которого был осуществлен
|
||||
вход в систему. Обратите внимание: идентификатор аудируемого
|
||||
пользователя и реальный идентификатор пользователя отличаются,
|
||||
так как пользователь
|
||||
<systemitem class="username">robert</systemitem> повысил
|
||||
привилегии до пользователя
|
||||
<systemitem class="username">root</systemitem> перед
|
||||
выполнением команды, но система аудита занесла его действия в
|
||||
журнал используя изначальный идентификатор. Элемент
|
||||
<literal>return</literal> описывает успешное
|
||||
выполнение операции, а элемент
|
||||
<literal>trailer</literal> завершает запись.</para>
|
||||
<para>Эта запись отражает результат успешного выполнения
|
||||
системного вызова <literal>execve</literal>, который стал
|
||||
результатом выполнения команды <literal>finger doug</literal>.
|
||||
В элементе записи <literal>exec arg</literal> есть командная
|
||||
строка, которую оболочка передала ядру. Элемент
|
||||
<literal>path</literal> содержит путь к исполняемому файлу в
|
||||
представлении ядра. Элемент <literal>attribute</literal>
|
||||
описывает исполняемый файл, а также права доступа файла.
|
||||
Элемент <literal>subject</literal> описывает ID аудируемого
|
||||
пользователя, исполняющие (effective) UID и GID, реальные ID
|
||||
пользователя и группы, идентификатор процесса, идентификатор
|
||||
сессии, порт и адрес, с которого был осуществлен вход в
|
||||
систему. Обратите внимание: идентификатор аудируемого
|
||||
пользователя и реальный идентификатор пользователя отличаются,
|
||||
так как пользователь <systemitem
|
||||
class="username">robert</systemitem> повысил привилегии до
|
||||
пользователя <systemitem class="username">root</systemitem>
|
||||
перед выполнением команды, но система аудита занесла его
|
||||
действия в журнал используя изначальный идентификатор. Элемент
|
||||
<literal>return</literal> описывает успешное выполнение
|
||||
операции, а элемент <literal>trailer</literal> завершает
|
||||
запись.</para>
|
||||
|
||||
<para>Указав аргумент <option>-x</option> можно получить
|
||||
вывод в формате <acronym>XML</acronym>.</para>
|
||||
<para>Указав аргумент <option>-x</option> можно получить вывод в
|
||||
формате <acronym>XML</acronym>.</para>
|
||||
|
||||
<para>Поскольку логи системы аудита могут иметь огромный размер,
|
||||
возможно выделить только часть записей при помощи
|
||||
<command>auditreduce</command>. В следующем примере
|
||||
из <filename>AUDITFILE</filename> выбираются все записи,
|
||||
касающиеся пользователя
|
||||
<systemitem class="username">trhodes</systemitem>:</para>
|
||||
<para>Поскольку логи системы аудита могут иметь огромный размер,
|
||||
возможно выделить только часть записей при помощи
|
||||
<command>auditreduce</command>. В следующем примере из
|
||||
<filename>AUDITFILE</filename> выбираются все записи,
|
||||
касающиеся пользователя <systemitem
|
||||
class="username">trhodes</systemitem>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>auditreduce -u <replaceable>trhodes</replaceable> /var/audit/<replaceable>AUDITFILE</replaceable> | praudit</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>auditreduce -u <replaceable>trhodes</replaceable> /var/audit/<replaceable>AUDITFILE</replaceable> | praudit</userinput></screen>
|
||||
|
||||
<para>Члены группы <systemitem
|
||||
class="groupname">audit</systemitem> имеют доступ на чтение к
|
||||
журналу аудита, находящемуся в <filename>/var/audit</filename>.
|
||||
По умолчанию эта группа пуста, и только <systemitem
|
||||
class="username">root</systemitem> имеет к ним доступ. Для
|
||||
того, чтобы дать пользователю права на чтение журнала, его
|
||||
необходимо добавить в группу <systemitem
|
||||
class="groupname">audit</systemitem>. Право на чтение журнала
|
||||
аудита позволяет получить множество информации о поведении
|
||||
пользователей и процессов, поэтому рекомендуется делегировать
|
||||
права на чтение журнала аудита с большой осторожностью.</para>
|
||||
|
||||
<para>Члены группы <systemitem class="groupname">audit</systemitem>
|
||||
имеют доступ на чтение к журналу аудита, находящемуся в
|
||||
<filename>/var/audit</filename>. По умолчанию эта группа пуста,
|
||||
и только <systemitem class="username">root</systemitem>
|
||||
имеет к ним доступ. Для того, чтобы дать пользователю
|
||||
права на чтение журнала, его необходимо добавить в группу
|
||||
<systemitem class="groupname">audit</systemitem>.
|
||||
Право на чтение журнала аудита позволяет получить множество
|
||||
информации о поведении пользователей и процессов, поэтому
|
||||
рекомендуется делегировать права на чтение журнала аудита
|
||||
с большой осторожностью.</para>
|
||||
<!-- XXX broken indent 00 ends -->
|
||||
<sect2>
|
||||
<title>Мониторинг системы в реальном времени с использованием
|
||||
потоков аудита</title>
|
||||
|
||||
<para>Потоки системы аудита — клонирующиеся
|
||||
псевдоустройства, позволяющие приложениям просматривать
|
||||
в реальном времени поток событий аудита.
|
||||
В первую очередь, это должно заинтересовать авторов программ
|
||||
определения вторжений и мониторинга системы. Тем не
|
||||
менее, для администратора поток системы аудита предоставляет
|
||||
возможность организовать наблюдение за системой,
|
||||
избежав проблем с правами доступа на журнал аудита или
|
||||
с прерыванием потока событий из-за ротации журнала. Для
|
||||
отслеживания потока событий аудита в реальном времени,
|
||||
выполните:</para>
|
||||
в реальном времени поток событий аудита. В первую очередь,
|
||||
это должно заинтересовать авторов программ определения
|
||||
вторжений и мониторинга системы. Тем не менее, для
|
||||
администратора поток системы аудита предоставляет возможность
|
||||
организовать наблюдение за системой, избежав проблем с
|
||||
правами доступа на журнал аудита или с прерыванием потока
|
||||
событий из-за ротации журнала. Для отслеживания потока
|
||||
событий аудита в реальном времени, выполните:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>praudit /dev/auditpipe</userinput></screen>
|
||||
|
||||
<para>По умолчанию, потоки доступны только пользователю
|
||||
<systemitem class="username">root</systemitem>. Чтобы
|
||||
сделать их доступными членам группы
|
||||
<systemitem class="groupname">audit</systemitem>, добавьте
|
||||
правило <literal>devfs</literal> в файл
|
||||
сделать их доступными членам группы <systemitem
|
||||
class="groupname">audit</systemitem>, добавьте правило
|
||||
<literal>devfs</literal> в файл
|
||||
<filename>/etc/devfs.rules</filename>:</para>
|
||||
|
||||
<programlisting>add path 'auditpipe*' mode 0440 group audit</programlisting>
|
||||
|
@ -752,37 +745,36 @@ trailer,133</programlisting>
|
|||
<command>praudit</command> запущена во время
|
||||
<acronym>SSH</acronym>-сессии, то будет сгенерирован
|
||||
интенсивный поток сообщений аудита, так как каждое
|
||||
печатаемое событие
|
||||
вызовет еще одно событие. По этой причине рекомендуется
|
||||
запускать <command>praudit</command>
|
||||
на устройстве потока только из сессий, для которых
|
||||
нет детального аудита ввода-вывода.</para>
|
||||
печатаемое событие вызовет еще одно событие. По этой
|
||||
причине рекомендуется запускать <command>praudit</command>
|
||||
на устройстве потока только из сессий, для которых нет
|
||||
детального аудита ввода-вывода.</para>
|
||||
</warning>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Ротация и сжатие журнальных файлов аудита</title>
|
||||
|
||||
<para>Журнал аудита пишется ядром и управляется демоном
|
||||
аудита &man.auditd.8;. Администраторам не следует пытаться
|
||||
использовать &man.newsyslog.conf.5; или другие инструменты для
|
||||
прямой ротации логов. Вместо этого, для прекращения аудита,
|
||||
реконфигурации и ротации журнальных файлов должна использоваться
|
||||
команда <command>audit</command>. Следующая команда приведет к
|
||||
созданию нового журнального файла и даст указание ядру переключиться
|
||||
на запись в этот файл. Протоколирование в старый файл будет
|
||||
прекращено, а
|
||||
сам файл — переименован, в результате чего с ним можно будет
|
||||
<para>Журнал аудита пишется ядром и управляется демоном аудита
|
||||
&man.auditd.8;. Администраторам не следует пытаться
|
||||
использовать &man.newsyslog.conf.5; или другие инструменты
|
||||
для прямой ротации логов. Вместо этого, для прекращения
|
||||
аудита, реконфигурации и ротации журнальных файлов должна
|
||||
использоваться команда <command>audit</command>. Следующая
|
||||
команда приведет к созданию нового журнального файла и даст
|
||||
указание ядру переключиться на запись в этот файл.
|
||||
Протоколирование в старый файл будет прекращено, а сам файл
|
||||
— переименован, в результате чего с ним можно будет
|
||||
работать администратору:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>audit -n</userinput></screen>
|
||||
|
||||
<para>Если &man.auditd.8; не запущен, то эта команда
|
||||
окончится неудачей, и будет выведено сообщение об ошибке.</para>
|
||||
<para>Если &man.auditd.8; не запущен, то эта команда окончится
|
||||
неудачей, и будет выведено сообщение об ошибке.</para>
|
||||
|
||||
<para>Добавление следующей строки в файл
|
||||
<filename>/etc/crontab</filename> приведет к ротации
|
||||
каждые двенадцать часов:</para>
|
||||
<filename>/etc/crontab</filename> приведет к ротации каждые
|
||||
двенадцать часов:</para>
|
||||
|
||||
<programlisting>0 */12 * * * root /usr/sbin/audit -n</programlisting>
|
||||
|
||||
|
@ -790,19 +782,21 @@ trailer,133</programlisting>
|
|||
<filename>/etc/crontab</filename>.</para>
|
||||
|
||||
<para>Автоматическая ротация журнальных файлов на основании
|
||||
их размера возможна при использовании опции <option>filesz</option>
|
||||
в файле <filename>audit_control</filename>, которая описана в
|
||||
их размера возможна при использовании опции
|
||||
<option>filesz</option> в файле
|
||||
<filename>audit_control</filename>, которая описана в
|
||||
<xref linkend="audit-auditcontrol"/>.</para>
|
||||
|
||||
<para>Поскольку журнальные файлы могут достигать очень больших размеров,
|
||||
может возникнуть необходимость сжимать их в целях хранения сразу же
|
||||
после закрытия их демоном аудита. Для выполнения
|
||||
определенных пользователем действий, соответствующих разнообразным
|
||||
событиям системы аудита, включая нормальное завершение журналов
|
||||
аудита при их ротации, может быть использован скрипт
|
||||
<filename>audit_warn</filename>. Например, добавление следующих строк
|
||||
в файл <filename>/etc/security/audit_warn</filename>
|
||||
приведет к сжатию файла аудита после его закрытия:</para>
|
||||
<para>Поскольку журнальные файлы могут достигать очень больших
|
||||
размеров, может возникнуть необходимость сжимать их в целях
|
||||
хранения сразу же после закрытия их демоном аудита. Для
|
||||
выполнения определенных пользователем действий,
|
||||
соответствующих разнообразным событиям системы аудита,
|
||||
включая нормальное завершение журналов аудита при их ротации,
|
||||
может быть использован скрипт <filename>audit_warn</filename>.
|
||||
Например, добавление следующих строк в файл
|
||||
<filename>/etc/security/audit_warn</filename> приведет к
|
||||
сжатию файла аудита после его закрытия:</para>
|
||||
|
||||
<programlisting>#
|
||||
# Compress audit trail files on close.
|
||||
|
@ -812,11 +806,12 @@ if [ "$1" = closefile ]; then
|
|||
fi</programlisting>
|
||||
|
||||
<para>Примерами других действий могут быть копирование файлов
|
||||
аудита на централизованный сервер, удаление старых журнальных файлов,
|
||||
фильтрация журнальных файлов для удаления ненужных записей. Скрипт
|
||||
будет запущен только при корректном закрытии журнала системой
|
||||
аудита и не запустится для журнальных файлов, запись в которые была
|
||||
прекращена в результате некорректного завершения.</para>
|
||||
аудита на централизованный сервер, удаление старых журнальных
|
||||
файлов, фильтрация журнальных файлов для удаления ненужных
|
||||
записей. Скрипт будет запущен только при корректном закрытии
|
||||
журнала системой аудита и не запустится для журнальных файлов,
|
||||
запись в которые была прекращена в результате некорректного
|
||||
завершения.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
|
Loading…
Reference in a new issue