+ whitespace cleanup after previous two commits.

This commit is contained in:
Taras Korenko 2014-04-16 17:21:04 +00:00
parent 7a42c55166
commit ba0eb3136d
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=44581

View file

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