diff options
Diffstat (limited to 'ru_RU.KOI8-R/books/handbook/audit/chapter.xml')
-rw-r--r-- | ru_RU.KOI8-R/books/handbook/audit/chapter.xml | 1062 |
1 files changed, 550 insertions, 512 deletions
diff --git a/ru_RU.KOI8-R/books/handbook/audit/chapter.xml b/ru_RU.KOI8-R/books/handbook/audit/chapter.xml index 2ce8b4a9ee..f823157d51 100644 --- a/ru_RU.KOI8-R/books/handbook/audit/chapter.xml +++ b/ru_RU.KOI8-R/books/handbook/audit/chapter.xml @@ -5,7 +5,7 @@ $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/audit/chapter.xml,v 1.10 2007/06/26 08:38:00 den Exp $ $FreeBSD$ - Original revision: r43688 + Original revision: r44395 --> <!-- Need more documentation on praudit, auditreduce, etc. Plus more info on the triggers from the kernel (log rotation, out of space, etc). @@ -14,38 +14,22 @@ some coverage of integrating MAC with Event auditing and perhaps discussion on how some companies or organizations handle auditing and auditing requirements. --> <chapter xmlns="http://docbook.org/ns/docbook" - xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" - xml:id="audit"> + xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" + xml:id="audit"> <info><title>Аудит событий безопасности</title> <authorgroup> <author> - <personname> - <firstname>Tom</firstname> - <surname>Rhodes</surname> - </personname> - <contrib>Автор </contrib> + <personname> + <firstname>Tom</firstname> + <surname>Rhodes</surname> + </personname> + <contrib>Автор </contrib> </author> <author> - <personname> - <firstname>Robert</firstname> - <surname>Watson</surname> - </personname> - </author> - </authorgroup> - <authorgroup> - <author> - <personname> - <firstname>Денис</firstname> - <surname>Баров</surname> - </personname> - <contrib>Перевод на русский язык: </contrib> - </author> - <author> - <personname> - <firstname>Владимир</firstname> - <surname>Романов</surname> - </personname> - <contrib>Обновление перевода: </contrib> + <personname> + <firstname>Robert</firstname> + <surname>Watson</surname> + </personname> </author> </authorgroup> </info> @@ -57,20 +41,23 @@ requirements. --> <primary>Аудит событий безопасности</primary> <see>MAC</see> </indexterm> - <para>Операционная система &os; включает в себя поддержку аудита - событий безопасности. Аудит событий дает надежный и точный способ - для протоколирования различных событий, связанных с безопасностью, + <para>Операционная система &os; включает в себя поддержку аудита + событий безопасности. Аудит позволяет выполнять надежное, + детальное и гибко настраиваемое протоколирование + различных событий, связанных с безопасностью, включая входы в систему, изменения конфигурации, доступ к файлам и сети. Эти записи могут быть незаменимы для мониторинга функционирующей системы, обнаружения вторжений и для анализа событий, приведших к краху системы. - В &os; реализован опубликованный &sun; <acronym>BSM</acronym> - API и формат файла, который совместим с реализациями - аудита в &sun; &solaris; и &apple; &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> @@ -80,13 +67,14 @@ requirements. --> </listitem> <listitem> +<!-- XXX broken indent --> <para>Как настроить аудит во &os; для мониторинга пользователей и процессов.</para> </listitem> <listitem> - <para>Как просматривать журнал аудита, использовать ограничения по - размеру и специальные инструменты для его просмотра.</para> + <para>Как просматривать журнал аудита при помощи + инструментов просмотра и фильтрации (reduction).</para> </listitem> </itemizedlist> @@ -110,438 +98,494 @@ requirements. --> </itemizedlist> <warning> - <para>Реализация аудита имеет известные ограничения, например, - не все события в настоящий момент протоколируемы. - Например, некоторые механизмы входа в систему (Основанные на X11 - оконные менеджеры, многое программное обеспечение от сторонних - производителей) не сконфигурированы для протоколирования событий - входа в систему через подсистему аудита.</para> - <para>Использование системы аудита может привести к генерированию - огромных журнальных файлов: их размер на сильно загруженных серверах - в некоторых конфигурациях может достигать нескольких гигабайт в неделю. - Администраторы должны принимать во внимание требования + <para>Реализация аудита имеет известные ограничения. + Не все события в настоящий момент протоколируемые. + Также, некоторые механизмы входа в систему, такие как + оконные менеджеры <application>X11</application> или + демоны от сторонних производителей, не настраивают аудит + пользовательских сессий должным образом.</para> + + <para>Использование системы аудита может привести к + генерированию изобилующих подробностями журнальных файлов. + Их размер на загруженных серверах в некоторых конфигурациях + может превышать несколько гигабайт в неделю. + Администраторы должны принимать во внимание требования к дисковому пространству для нагруженных конфигураций системы - аудита. Например, рекомендуется выделить отдельный раздел для - файловой системы аудита - <filename>/var/audit</filename>, - чтобы переполнение раздела аудита не влияло на работоспособность - всей остальной системы.</para> + аудита. Например, желательно выделить отдельный раздел для + файловой системы аудита <filename>/var/audit</filename>, + чтобы заполнение раздела аудита не влияло на + другие файловые системы.</para> </warning> - </sect1> <sect1 xml:id="audit-inline-glossary"> - <title>Ключевые понятия в Данной Главе.</title> + <title>Ключевые понятия</title> - <para>Перед чтением этой главы необходимо определить несколько - ключевых понятий. В русской версии документа приводятся - близкий по смыслу перевод и в скобках указывается оригинальный - английский термин.</para> + <para>Следующие термины относятся к аудиту событий + безопасности:</para> <itemizedlist> <listitem> - <para><emphasis>событие</emphasis> (event): Событие, которое - может быть занесено в журнал. Примеры важных для безопасности - системы событий включает: создание файла, инициализацию сетевого + <para><emphasis>событие</emphasis> (event): событие, которое + может быть занесено в журнал. Примерами событий, + относящихся к безопасности системы, являются: создание + файла, инициализацию сетевого соединения, вход пользователя в систему. События разделяются на <quote>приписываемые</quote> (attributable) - те, которые могут быть отнесены к конкретному пользователю - - и <quote>не-приписываемые</quote> (non-attributable), если - их нельзя отнести к конкретному пользователю. Пример - не-приписываемого события - любое событие, произошедшее до - аутентификации пользователя, такое, например, такое, как - неудачный вход пользователя в систему.</para> + и <quote>неприписываемые</quote> (non-attributable). + Пример + неприписываемого события — любое событие, произошедшее до + аутентификации пользователя, например, неверно + набранный пароль.</para> </listitem> <listitem> - <para><emphasis>Класс</emphasis> (class): Классы событий это - именованные наборы однотипных событий, которые используются - в выражениях выбора. Частоиспользуемые классы событий + <para><emphasis>класс</emphasis> (class): именованные наборы + однотипных событий, которые используются + в выражениях выбора. Часто используемые классы событий включают <quote>создание файла</quote> (fc), <quote>выполнение файла</quote> (ex) и <quote>события входа в систему и выхода из нее</quote> (lo).</para> </listitem> <listitem> - <para><emphasis>Запись</emphasis> (record): <quote>Запись</quote> - - это единичная запись в журнале, описывающая то или иное - событие. Запись обычно содержит информацию о типе события, + <para><emphasis>запись</emphasis> (record): единичная запись + в журнале, описывающая то или иное + событие. Записи содержат информацию о типе события, информацию о субъекте события (пользователе), который - выполнил некоторое действия, дату и время события, - информацию об объектах и аргументах события, если они есть, - а также информацию об успешности выполнения операции, - породившей событие.</para> + выполнил некоторое действие, дату и время события, + информацию об объектах и аргументах события, + а также информацию об успешности или неуспешности выполнения + операции.</para> </listitem> <listitem> - <para><emphasis>Журнал</emphasis> (trail): - журнал аудита, или лог-файл - - содержит серию записей о системных событиях. - Как правило, журнал содержит записи в строгом + <para><emphasis>журнал</emphasis> (trail): файл, + содержащий последовательность записей аудита, описывающих + события безопасности (security events). + Журнал содержит записи в ориентировочно хронологическом порядке по времени завершения события. Только авторизованные процессы могут добавлять записи в журнал.</para> </listitem> <listitem> - <para><emphasis>выражение выбора</emphasis> (selection expression): - Строка, содержащая список префиксов и имен классов, используемая - для выбора группы событий.</para> + <para><emphasis>выражение выбора</emphasis> (selection + expression): строка, содержащая список префиксов и имен + классов, используемая для выбора группы событий.</para> </listitem> <listitem> <para><emphasis>предварительный выбор</emphasis> (preselection): - Процесс, с помощью которого система определяет, какие события имеют - важность для администратора. Это необходимо для того, - чтобы избежать протоколирования событий, не имеющих никакой значимости. - Предварительный выбор использует ряд выражений выбора - для того, чтобы определить, какие именно классы событий для - какого пользователя необходимо вносить в журнал, а так же - глобальные настройки, которые будут применяться как для + процесс, с помощью которого система определяет, какие события имеют + важность для администратора. + Предварительный выбор использует ряд выражений выбора, + задающих какие именно классы событий и для + какого пользователя необходимо вносить в журнал, а также — + глобальные настройки, которые будут применяться как для авторизованных, так и для неавторизованных процессов.</para> </listitem> <listitem> - <para><emphasis>Фильтрация</emphasis> (reduction): - Процесс, в результате которого записи из существующего журнала - выделяются для хранения, распечатки или анализа. Также, это + <para><emphasis>фильтрация</emphasis> (reduction): + процесс, в результате которого записи из существующего журнала + выделяются для хранения, распечатки или анализа. Также, это процесс, в результате которого нежелательные записи удаляются - из журнала аудита. Используя фильтрацию, администраторы могут + из журнала аудита. Используя фильтрацию, администраторы могут реализовывать различные политики хранения данных аудита. Например, детализированный журнал может храниться месяц, но - после этого он должен быть сокращен чтобы хранить только - информацию о входе в систему и выходе из нее для целей архивации.</para> + после этого он может быть сокращен чтобы хранить только + информацию о входе в систему и выходе из нее.</para> </listitem> </itemizedlist> </sect1> - <sect1 xml:id="audit-install"> - <title>Установка системы аудита</title> - - <para>Пользовательская часть подсистемы аудита устанавливается как часть - базовой системы &os;. Поддержка аудита событий со стороны ядра - также компилируется по умолчанию, но поддержка данной возможности - требует создания своего ядра, с добавлением следующей строки - в конфигурационный файл ядра:</para> - - <programlisting>options AUDIT</programlisting> - - <para>Процесс сборки и установки ядра подробно описан в главе - <xref linkend="kernelconfig"/>.</para> - - <para>Как только ядро с поддержкой аудита было собрано и установлено, - а система была перезагружена, необходимо разрешить запуск демона аудита, - добавив следующую строку в &man.rc.conf.5;:</para> - - <programlisting>auditd_enable="YES"</programlisting> - - <para>Затем нужно запустить поддержку аудита либо путем - перезагрузки, либо вручную, запустив демон аудита:</para> - - <programlisting>service auditd start</programlisting> - </sect1> - <sect1 xml:id="audit-config"> <title>Настройка системы аудита</title> - <para>Все конфигурационные файлы системы аудита находятся в каталоге - <filename>/etc/security</filename>. Перед запуском - демона аудита там должны находиться следующие файлы:</para> + <para>Пользовательская часть системы аудита входит в базовую + систему &os;, системная часть включена в ядро + <filename>GENERIC</filename>, старт демона &man.auditd.8; + активируется включением следующей записи в + <filename>/etc/rc.conf</filename>:</para> - <itemizedlist> - <listitem> - <para><filename>audit_class</filename> - Содержит определения - классов аудита.</para> - </listitem> - - <listitem> - <para><filename>audit_control</filename> - Параметры системы - аудита: классы по умолчанию, минимальное дисковое - пространство, которое должно оставаться на разделе журнала - аудита, максимальный размер журнала аудита и другие.</para> - </listitem> + <programlisting>auditd_enable="YES"</programlisting> - <listitem> - <para><filename>audit_event</filename> - Текстовые имена и - описания событий аудита, а также список, определяющий - соответствие классов и событий, которые находятся в данных - классах.</para> - </listitem> + <para>Затем нужно запустить демон аудита:</para> - <listitem> - <para><filename>audit_user</filename> - Требования аудита, которые - отличаются для отдельных пользователей. Они соединяются с - глобальными настройками по умолчанию при входе пользователя - в систему.</para> - </listitem> + <screen>&prompt.root; <userinput>service auditd start</userinput></screen> - <listitem> - <para><filename>audit_warn</filename> - Скрипт командного - интерпретатора, используемый &man.auditd.8;, - чтобы сгенерировать предупреждающие сообщения об исключительных - ситуациях, например, когда заканчивается свободное дисковое - пространство для записей журналов аудита, либо когда произошла - ротация файла журнала аудита.</para> - </listitem> - </itemizedlist> + <para>Пользователям, предпочитающим строить специализированное + ядро, необходимо включить следующую запись в файл конфигурации + ядра:</para> - <warning> - <para>Файлы конфигурации аудита должны редактироваться и - изменяться с осторожностью, так как ошибки в конфигурации - могут привести к неправильному логу событий</para> - </warning> + <programlisting>options AUDIT</programlisting> <sect2> <title>Выражения выбора событий</title> <para>Выражения выбора используются в нескольких местах - конфигурации аудита для определения того, какие события должны - подвергаться аудиту. Выражения содержат список классов событий, - с которыми интересующее нас событие будет сравниваться. Каждое - выражение имеет префикс, показывающий, нужно ли принять - или игнорировать найденное событие, и, возможно, показывающий, - интересуют ли нас успешные или неуспешные операции. Выражения - выбора рассматриваются слева направа, и два выражения - объединяются простым добавлением второго выражения к концу - первого.</para> - - <para>Следующий список содержит классы по умолчанию, - присутствующие в файле <filename>audit_class</filename>:</para> + конфигурации для отбора событий, подлежащих аудиту. + Выражения содержат перечень классов событий, с которым + сравнивается происшедшее событие. Выражения + выбора рассматриваются слева направо, и два выражения + объединяются добавлением первого выражения ко + второму.</para> + + <para><xref linkend="event-selection"/> перечисляет имеющиеся + по умолчанию записи:</para> + + <table xml:id="event-selection" frame="none" pgwide="1"> + <title>Классы событий системы аудита</title> + + <tgroup cols="3"> + <thead> + <row> + <entry>Имя класса</entry> + <entry>Расшифровка</entry> + <entry>Действие</entry> + </row> + </thead> + + <tbody> + <row> + <entry>all</entry> + <entry>all</entry> + <entry>Соответствует всем классам событий.</entry> + </row> + + <row> + <entry>aa</entry> + <entry>authentication and authorization</entry> + <entry></entry> + </row> + + <row> + <entry>ad</entry> + <entry>administrative</entry> + <entry>Аудит административных действий, произошедших в + системе.</entry> + </row> + + <row> + <entry>ap</entry> + <entry>application</entry> + <entry>События, определяемые каким-либо + приложением.</entry> + </row> + + <row> + <entry>cl</entry> + <entry>file close</entry> + <entry>Аудит вызовов системной функции + <function>close</function>.</entry> + </row> + + <row> + <entry>ex</entry> + <entry>exec</entry> + <entry>Аудит запуска приложения. Аудит аргументов + командной строки и переменных окружения контролируется + через &man.audit.control.5; используя параметры + <literal>argv</literal> и <literal>envv</literal> + в опции <literal>policy</literal>.</entry> + </row> + + <row> + <entry>fa</entry> + <entry>file attribute access</entry> + <entry>Аудит доступа к атрибутам объектов, например + таких как &man.stat.1;, &man.pathconf.2;.</entry> + </row> + + <row> + <entry>fc</entry> + <entry>file create</entry> + <entry>Аудит событий, в результате которых создаются + файлы.</entry> + </row> + + <row> + <entry>fd</entry> + <entry>file delete</entry> + <entry>Аудит событий, в результате которых удаляются + файлы.</entry> + </row> + + <row> + <entry>fm</entry> + <entry>file attribute modify</entry> + <entry>Аудит событий, в результате которых изменяются + атрибуты файлов, например, &man.chown.8;, + &man.chflags.1;, &man.flock.2;.</entry> + </row> + + <row> + <entry>fr</entry> + <entry>file read</entry> + <entry>Аудит событий, в результате которых происходит + чтение данных или открываются файлы на чтение.</entry> + </row> + + <row> + <entry>fw</entry> + <entry>file write</entry> + <entry>Аудит событий, в результате которых происходит + запись данных, запись или изменение файлов.</entry> + </row> + + <row> + <entry>io</entry> + <entry>ioctl</entry> + <entry>Аудит вызовов системной функции + &man.ioctl.2;.</entry> + </row> + + <row> + <entry>ip</entry> + <entry>ipc</entry> + <entry>Аудит различных видов взаимодействия процессов, + включая создание неименованных каналов (POSIX pipe) и + взаимодействие процессов в стиле System V + <acronym>IPC</acronym>.</entry> + </row> + + <row> + <entry>lo</entry> + <entry>login_logout</entry> + <entry>Аудит событий &man.login.1; и + &man.logout.1;.</entry> + </row> + + <row> + <entry>na</entry> + <entry>non attributable</entry> + <entry>Аудит неприписываемых событий.</entry> + </row> + + <row> + <entry>no</entry> + <entry>invalid class</entry> + <entry>Не соответствует никаким событиям аудита.</entry> + </row> + + <row> + <entry>nt</entry> + <entry>network</entry> + <entry>Аудит событий, связанных с сетевыми + подключениями, например &man.connect.2; и + &man.accept.2;.</entry> + </row> + + <row> + <entry>ot</entry> + <entry>other</entry> + <entry>Аудит различных событий.</entry> + </row> + + <row> + <entry>pc</entry> + <entry>process</entry> + <entry>Аудит действий процессов, таких как &man.exec.3; + и &man.exit.3;.</entry> + </row> + </tbody> + </tgroup> + </table> + + <para>Эти классы событий могут быть настроены изменением + конфигурационных файлов <filename>audit_class</filename> и + <filename>audit_event</filename>.</para> + + <para>Каждый класс аудита можно скомбинировать с префиксом, + показывающим, + какие операции будут учитываться — удачные или неудачные, + а также то, включает ли данная запись аудит для данного + класса и типа, либо отключает его. <xref + linkend="event-prefixes"/> обобщает доступные + префиксы:</para> + + <table xml:id="event-prefixes" frame="none" pgwide="1"> + <title>Префиксы классов аудита событий</title> + + <tgroup cols="2"> + <thead> + <row> + <entry>Префикс</entry> + <entry>Действие</entry> + </row> + </thead> + + <tbody> + <row> + <entry>+</entry> + <entry>Аудит успешных событий в данном классе.</entry> + </row> + + <row> + <entry>-</entry> + <entry>Аудит ошибочных событий в данном классе.</entry> + </row> + + <row> + <entry>^</entry> + <entry>Отключение аудита как успешных, так и ошибочных + событий в данном классе.</entry> + </row> + + <row> + <entry>^+</entry> + <entry>Отключение аудита успешных событий в данном + классе.</entry> + </row> + + <row> + <entry>^-</entry> + <entry>Отключение аудита ошибочных событий в данном + классе.</entry> + </row> + </tbody> + </tgroup> + </table> + + <para>Если префикс не указан, то аудиту подлежат как успешные, + так и неуспешные события.</para> + + <para>Следующий пример выбирает успешные и неуспешные события входа в + систему и выхода из нее, и только успешные события выполнения + приложения:</para> - <itemizedlist> - <listitem> - <para><literal>all</literal> - <emphasis>all</emphasis> - - Соответствует всем классам событий.</para> - </listitem> - - <listitem> - <para><literal>ad</literal> - <emphasis>administrative</emphasis> - - Аудит административных действий, произошедших в - системе.</para> - </listitem> - - <listitem> - <para><literal>ap</literal> - <emphasis>application</emphasis> - - Аудит события, вызванного каким-либо приложением.</para> - </listitem> - - <listitem> - <para><literal>cl</literal> - <emphasis>file close</emphasis> - - Аудит вызовов системной функции <function>close</function>.</para> - </listitem> - - <listitem> - <para><literal>ex</literal> - <emphasis>exec</emphasis> - - Аудит запуска приложения. Аудит аргументов командной строки и - переменных окружения контролируется через &man.audit.control.5; - используя параметры <literal>argv</literal> и <literal>envv</literal> - в опции <literal>policy</literal>.</para> - </listitem> - - <listitem> - <para><literal>fa</literal> - <emphasis>file attribute access</emphasis> - - Аудит доступа к атрибутам объектов, - например &man.stat.1;, &man.pathconf.2;, а - также подобных этим событий.</para> - </listitem> - - <listitem> - <para><literal>fc</literal> - <emphasis>file create</emphasis> - - Аудит событий, в результате которых создаются - файлы.</para> - </listitem> - - <listitem> - <para><literal>fd</literal> - <emphasis>file delete</emphasis> - - Аудит событий, в результате которых удаляются - файлы.</para> - </listitem> - - <listitem> - <para><literal>fm</literal> - <emphasis>file attribute modify</emphasis> - - Аудит событий, в результате которых изменяются - атрибуты файлов, например, &man.chown.8;, - &man.chflags.1;, &man.flock.2;.</para> - </listitem> - - <listitem> - <para><literal>fr</literal> - <emphasis>file read</emphasis> - - Аудит событий, в результате которых происходит - чтение данных, открываются файлы на чтение и т.п.</para> - </listitem> - - <listitem> - <para><literal>fw</literal> - <emphasis>file write</emphasis> - - - Аудит событий, в результате которых происходит - запись данных, запись или изменение файлов и так далее.</para> - </listitem> - - <listitem> - <para><literal>io</literal> - <emphasis>ioctl</emphasis> - - Аудит вызовов системной функции &man.ioctl.2;.</para> - </listitem> - - <listitem> - <para><literal>ip</literal> - <emphasis>ipc</emphasis> - - Аудит различных видов взаимодействия процессов, - включая создание не-именованных каналов (POSIX pipe) и - взаимодействие процессов в стиле System V - <acronym>IPC</acronym>.</para> - </listitem> - - <listitem> - <para><literal>lo</literal> - <emphasis>login_logout</emphasis> - - Аудит событий &man.login.1; и &man.logout.1;, - происходящих в системе.</para> - </listitem> - - <listitem> - <para><literal>na</literal> - <emphasis>non attributable</emphasis> - - Аудит не-приписываемых событий.</para> - </listitem> - - <listitem> - <para><literal>no</literal> - <emphasis>invalid class</emphasis> - - Не соответствует никаким событиям аудита.</para> - </listitem> - - <listitem> - <para><literal>nt</literal> - <emphasis>network</emphasis> - - Аудит событий, связанных с сетевыми подключениями, - например &man.connect.2; и &man.accept.2;.</para> - </listitem> - - <listitem> - <para><literal>ot</literal> - <emphasis>other</emphasis> - - Аудит различных событий.</para> - </listitem> - - <listitem> - <para><literal>pc</literal> - <emphasis>process</emphasis> - - Аудит действий процессов, таких как &man.exec.3; и - &man.exit.3;.</para> - </listitem> - </itemizedlist> + <programlisting>lo,+ex</programlisting> + </sect2> - <para>Эти классы событий могут быть настроены изменением конфигурационных - файлов <filename>audit_class</filename> и - <filename>audit_event</filename>.</para> + <sect2> + <title>Конфигурационные файлы</title> - <para>Каждый класс аудита комбинируется с префиксом, показывающим, - какие операции будут учитываться - удачные или неудачные, - а также то, включает ли данная запись аудит для данного - класса и типа, либо отключает его.</para> + <para>В каталоге <filename>/etc/security</filename> находятся + следующие конфигурационные файлы системы аудита:</para> <itemizedlist> <listitem> - <para><literal>[пустой префикс]</literal> - Аудит проводится как для - успешного, так и для ошибочного события.</para> + <para><filename>audit_class</filename>: содержит определения + классов аудита.</para> </listitem> <listitem> - <para><literal>+</literal> - Аудит только успешных - событий в данном классе.</para> + <para><filename>audit_control</filename>: контроллирует + некоторые аспекты системы аудита, такие как классы по + умолчанию, минимальное дисковое + пространство, которое должно оставаться на разделе журнала + аудита, максимальный размер журнала аудита.</para> </listitem> <listitem> - <para><literal>-</literal> - Аудит только ошибочных - событий в данном классе.</para> +<!-- XXX deviates from the source --> + <para><filename>audit_event</filename>: связывает + идентификаторы событий (eventnum) с их текстовыми + именами, описаниями и классами событий.</para> </listitem> <listitem> - <para><literal>^</literal> - Отключение аудита как успешных, так и - ошибочных событий в данном классе.</para> + <para><filename>audit_user</filename>: уточняет настройки + аудита для конкретных пользователей; они комбинируются + с глобальными настройками при входе пользователя + в систему.</para> </listitem> <listitem> - <para><literal>^+</literal> - Отключение аудита успешных - событий в данном классе.</para> + <para><filename>audit_warn</filename>: настраиваемый скрипт + командного интерпретатора, который вызывается &man.auditd.8; + для генерации предупреждений в исключительных ситуациях, + таких как исчерпание дискового пространства записями аудита + или при ротации журнала аудита.</para> </listitem> - - <listitem> - <para><literal>^-</literal> - Отключение аудита ошибочных - событий в данном классе.</para> - </listitem> - </itemizedlist> - <para>Следующий пример выбирает успешные и не-успешные события входа в - систему и выхода из нее, и только успешные события исполнения - файла:</para> - - <programlisting>lo,+ex</programlisting> - </sect2> - - <sect2> - <title>Конфигурационные файлы</title> + <warning> + <para>Файлы конфигурации аудита должны редактироваться и + изменяться с осторожностью, так как ошибки в конфигурации + могут привести к сохранению бесполезных записей.</para> + </warning> - <para>В большинстве случаев администратору придётся вносить + <para>В большинстве случаев администратору придется вносить изменения только в два конфигурационных файла системы аудита: <filename>audit_control</filename> и <filename>audit_user</filename>. Первый из них содержит общие настройки системы аудита, второй может использоваться - для более тонкой настройки аудита пользователем.</para> + для уточнения настроек аудита для конкретных + пользователей.</para> <sect3 xml:id="audit-auditcontrol"> <title>Файл <filename>audit_control</filename></title> - <para>Некоторые настройки по умолчанию для подсистемы - аудита содержатся в файле <filename>audit_control</filename>:</para> + <para>Ниже приведен перечень настроек по умолчанию, + содержащихся в <filename>audit_control</filename>:</para> <programlisting>dir:/var/audit -flags:lo -minfree:20 -naflags:lo -policy:cnt -filesz:0</programlisting> +dist:off +flags:lo,aa +minfree:5 +naflags:lo,aa +policy:cnt,argv +filesz:2M +expire-after:10M</programlisting> <para>Запись <option>dir</option> используется для установки одного или более каталогов, в - которых будет сохраняться журнал системы аудита. Если + которых будет сохраняться журнал системы аудита. Если указан более чем один каталог, то указанные каталоги - будут использоваться по очереди, по мере заполнения. Как - правило, система аудита конфигурируется таким образом, что - журнал аудита хранится на отдельном разделе, чтобы - предотвратить пересечение подсистемы аудита и остальных - подсистем в случае, если свободное месте на разделе - системы аудита будет исчерпано.</para> + будут использоваться по очереди, по мере заполнения. Как + правило, система аудита настраивается на хранение + журнала аудита на отдельном разделе, чтобы + предотвратить взаимное влияние подсистемы аудита и остальных + подсистем в случае исчерпания свободного места на + разделе.</para> + + <para>Если опция <option>dist</option> имеет значение + <literal>on</literal> или <literal>yes</literal>, то для + всех журналов аудита будут создаваться жесткие ссылки, + сохраняемые в <filename>/var/audit/dist</filename>.</para> <para>Запись <option>flags</option> используется для установки глобальной маски предварительного выбора - для приписываемых событий. В примере выше, будут подвергаться - аудиту как успешные, так и неудачные попытки входа в - систему и выхода из нее для всех пользователей</para> + для приписываемых событий. В примере выше аудиту будут + подвергаться как успешные, так и неудачные попытки входа в + систему и выхода из нее, а также — аутентификация + и авторизация для всех пользователей.</para> <para>Запись <option>minfree</option> определяет минимальное - значение свободного дискового пространства на разделе, в - который сохраняются файлы журналов аудита. Когда данная - граница будет превышена, будет сгенерировано предупреждение. - Вышеприведенный пример устанавливает минимальное свободное - пространство в двадцать процентов.</para> + количество свободного дискового пространства на разделе, в + который сохраняются файлы журналов аудита.</para> +<!-- XXX deviates from the source --> <para>Запись <option>naflags</option> определяет классы - аудита для не-приписываемых событий, например, процессов + аудита для неприписываемых событий, например, процессов входа в систему и системных демонов.</para> - <para>Запись <option>policy</option> определяет список - флагов политики, определяющей различные аспекты поведения - аудита. Элементы списка отделяются друг от друга запятыми. - По умолчанию, флаг <literal>cnt</literal> указывает, что - система должна продолжать работать, несмотря на ошибки - аудита (данный флаг очень сильно рекомендуется использовать). - Другой частоиспользуемый флаг - <literal>argv</literal>, - который заставляет подвергать аудиту аргументы командной - строки при вызове системного вызова &man.execve.2;, как - часть выполнения команды.</para> - - <para>Запись <option>filesz</option> определяет - максимальный размер в байтах, до которого может расти - журнал событий аудита, прежде чем он будет автоматически - закончен и подвергнут ротации. По умолчанию, значение 0 - запрещает автоматическую ротацию логов. Если требуемый - размер файла ненулевой, но ниже минимального значения в - 512К, то он будет проигнорирован, и будет сгенерировано - предупреждающее сообщение в логах.</para> + <para>Запись <option>policy</option> определяет разделяемый + запятыми список + флагов политики, определяющей различные аспекты поведения + аудита. + Флаг <literal>cnt</literal> указывает, что + система должна продолжать работать, несмотря на ошибки + аудита (данный флаг настоятельно рекомендуется). + Второй флаг, <literal>argv</literal>, + заставляет подвергать аудиту аргументы командной + строки при вызове системного вызова &man.execve.2;.</para> + + <para>Запись <option>filesz</option> определяет максимальный + размер журнала событий аудита, по достижении которого + журнал будет автоматически + закончен и подвергнут ротации. Значение <literal>0</literal> + запрещает автоматическую ротацию логов. Если указанный + размер ниже минимального значения + 512К, то он будет проигнорирован, и будет сгенерировано + предупреждающее сообщение в логах.</para> + + <para>Поле <option>expire-after</option> определяет момент + времени, при достижении которого журнальные файлы считаются + неактуальными и удаляются.</para> </sect3> <sect3 xml:id="audit-audituser"> @@ -550,65 +594,68 @@ filesz:0</programlisting> <para>Администратор может определить дополнительные требования к аудиту для конкретных пользователей в файле <filename>audit_user</filename>. - Каждая строка конфигурирует аудит для пользователя - с использованием двух полей: первое поле - <literal>alwaysaudit</literal>, которое определяет + Каждая строка позволяет уточнить настройки аудита + для пользователя при помощи двух полей: + <literal>alwaysaudit</literal> — определяющее набор событий, которые должны всегда подвергаться - аудиту для данного пользователя, а второе - поле - <literal>neveraudit</literal>, которое определяет + аудиту для данного пользователя, и + <literal>neveraudit</literal> — перечисляющее набор событий, которые никогда не должны подвергаться аудиту для пользователя.</para> - <para>Нижеследующий пример <filename>audit_user</filename> - проводит аудит всех событий входа в систему и выхода из - системы для пользователя <systemitem class="username">root</systemitem>, - а также проводит аудит всех событий, связанных с созданием - файлов и успешным выполнением команд для пользователя - <systemitem class="username">www</systemitem>. При использовании с - вышеприведенным примером файла <filename>audit_control</filename>, - запись <literal>lo</literal> для <systemitem class="username">root</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> - </sect3> </sect2> </sect1> <sect1 xml:id="audit-administration"> - <title>Администрирование подсистемы аудита</title> - - <sect2> - <title>Просмотр журнала аудита</title> - - <para>Журнал аудита хранится в бинарном формате BSM, поэтому для - его изменения и конвертации в текстовый формат понадобятся специальные - утилиты. Команда &man.praudit.1; преобразует журнал аудита - в текстовый формат; команда &man.auditreduce.1; может быть - использована для ротации и фильтрации журнала в целях анализа, - архивирования или распечатки. Множество параметров выборки - поддерживаются командой &man.auditreduce.1;, включая типы - событий, классы событий, конкретного пользователя, дату и - время событий,а также пути файлов, к которым относятся события.</para> - - <para>Например, утилита &man.praudit.1; выведет все содержимое - журнала аудита в текстовом формате:</para> - - <screen>&prompt.root; <userinput>praudit /var/audit/AUDITFILE</userinput></screen> - - <para>В данном примере <filename>AUDITFILE</filename> - журнал, + <title>Работа с журналами аудита</title> +<!-- XXX broken indent 00 starts --> + <para>Так как журнал аудита хранится в бинарном формате + <acronym>BSM</acronym>, то для его изменения или перевода в + текстовый формат предоставляются встроенные утилиты. Утилита + <command>praudit</command> преобразует журнал аудита в текстовый + формат. Утилита <command>auditreduce</command> применяется для + фильтрации журнальных записей с целью анализа, архивирования + или распечатки. Последняя утилита поддерживает разнообразие + параметров, позволяющих выбирать записи по типу события, по + классу события, по пользователю, по дате или времени события, + по пути к файлу или по объекту, над которым производилось + действие.</para> + + <para>Например, для отображения всего содержимого журнала аудита + в текстовом формате выполните:</para> + + <screen>&prompt.root; <userinput>praudit /var/audit/<replaceable>AUDITFILE</replaceable></userinput></screen> + + <para>В данном примере <replaceable>AUDITFILE</replaceable> + — журнал, который будет выведен в текстовом формате.</para> <para>Журнал аудита состоит из серии записей, которые, в свою - очередь состоят из элементов, которые команда &man.praudit.1; - выводит последовательно - по одному на строку. Каждый элемент - имеет специфический тип, например - <literal>заголовок</literal> (header) содержит заголовок записи, a - <literal>путь</literal> (path) - путь к файлу, к которому относится запись. - Следующий пример показывает запись для события <literal>execve</literal>:</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 exec arg,finger,doug @@ -620,127 +667,122 @@ trailer,133</programlisting> <para>Эта запись отражает результат успешного выполнения системного вызова <literal>execve</literal>, который стал результатом выполнения - команды <literal>finger doug</literal>. В элементах записи есть и + команды <literal>finger doug</literal>. В элементе записи + <literal>exec arg</literal> есть командная строка, которую оболочка передала ядру. Элемент - <literal>путь</literal> (path) содержит путь к исполняемому файлу в - представлении ядра. Элемент <literal>атрибут</literal> (attribute) - описывает исполняемый файл, и, в частности, режим файла, что - можно использовать для определения, использовало ли приложение - setuid. Элемент <literal>субъект</literal> (subject) описывает процесс, вызвавший - и сохраняет его в виде ряда значений, представляющих собой - ID аудируемого пользователя, исполняющие (effective) UID и GID, - реальные ID пользователя и группы, идентификатор процесса, - идентификатор сессии, порт и адрес, с которого был осуществлен - вход в систему. Обратите внимание - идентификатор аудируемого - пользователя и реальный идентификатор пользователя отличаются: - это значит, что пользователь <systemitem class="username">robert</systemitem> повысил - привилегии до пользователя <systemitem class="username">root</systemitem> перед - выполнением команды, но система аудита занесла его действия в - журнал используя изначальный идентификатор. Наконец, элемент - <literal>возврат</literal> (return) описывает успешное - завершение операции с кодом завершения 0, а элемент + <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>Данные в формате <acronym>XML</acronym> также можно - вывести с помощью команды &man.praudit.1;, используя аргумент - <option>-x</option>.</para> - - </sect2> - - <sect2> - <title>Фильтрация журналов аудита</title> + <para>Указав аргумент <option>-x</option> можно получить + вывод в формате <acronym>XML</acronym>.</para> <para>Поскольку логи системы аудита могут иметь огромный размер, - администратору, зачастую, необходимо выделить только часть записей. - Например, записи, относящиеся к определенному пользователю:</para> - - <screen>&prompt.root; <userinput>auditreduce -u trhodes /var/audit/AUDITFILE | praudit</userinput></screen> - - <para>Эта команда выделит все записи, относящиеся к - <systemitem class="username">trhodes</systemitem>, которые хранятся в - <filename>AUDITFILE</filename>.</para> - </sect2> - - <sect2> - <title>Делегирование прав просмотра журнала</title> - - <para>Члены группы <systemitem class="groupname">audit</systemitem> имеют доступ на чтение - к журналу аудита, находящемуся в - <filename>/var/audit</filename>; - по умолчанию эта группа пуста, и только <systemitem class="username">root</systemitem> - имеет к ним доступ. Для того, что бы передать пользователю права на - чтение журнала, его необходимо добавить в группу <systemitem class="groupname">audit</systemitem>. + возможно выделить только часть записей при помощи + <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> + + <para>Члены группы <systemitem class="groupname">audit</systemitem> + имеют доступ на чтение к журналу аудита, находящемуся в + <filename>/var/audit</filename>. По умолчанию эта группа пуста, + и только <systemitem class="username">root</systemitem> + имеет к ним доступ. Для того, чтобы дать пользователю + права на чтение журнала, его необходимо добавить в группу + <systemitem class="groupname">audit</systemitem>. Право на чтение журнала аудита позволяет получить множество - информации о поведении пользователей и процессов, поэтому, - рекомендуется делегировать права на чтение журнала аудита + информации о поведении пользователей и процессов, поэтому + рекомендуется делегировать права на чтение журнала аудита с большой осторожностью.</para> - </sect2> - +<!-- XXX broken indent 00 ends --> <sect2> - <title>Мониторинг системы в реальном времени с использованием потоков аудита</title> - - <para>Потоки системы аудита - клонированные псевдо-устройства в - файловой системе устройств, используя которые, приложения могут - получать информацию о системных событиях в реальном времени. - В первую очередь, это должно заинтересовать авторов программ - для мониторинга и определения вторжений в систему. Тем не - менее, для администратора потоки системы аудита могут стать - удобным инструментом для мониторинга в реальном времени без - проблем, свзяанных с правами файла аудита, и возможностью - процесса ротации, что приведет к обрыву потока событий. - Для того, чтобы получить поток событий в реальном времени используйте - следующую команду:</para> + <title>Мониторинг системы в реальном времени с использованием + потоков аудита</title> + + <para>Потоки системы аудита — клонирующиеся + псевдоустройства, позволяющие приложениям просматривать + в реальном времени поток событий аудита. + В первую очередь, это должно заинтересовать авторов программ + определения вторжений и мониторинга системы. Тем не + менее, для администратора поток системы аудита предоставляет + возможность организовать наблюдение за системой, + избежав проблем с правами доступа на журнал аудита или + с прерыванием потока событий из-за ротации журнала. Для + отслеживания потока событий аудита в реальном времени, + выполните:</para> <screen>&prompt.root; <userinput>praudit /dev/auditpipe</userinput></screen> - <para>По умолчанию, потоки доступны только пользователю <systemitem class="username">root</systemitem>. - Чтобы сделать их доступными членам группы <systemitem class="groupname">audit</systemitem> добавьте + <para>По умолчанию, потоки доступны только пользователю + <systemitem class="username">root</systemitem>. Чтобы + сделать их доступными членам группы + <systemitem class="groupname">audit</systemitem>, добавьте правило <literal>devfs</literal> в файл - <filename>devfs.rules</filename>:</para> + <filename>/etc/devfs.rules</filename>:</para> <programlisting>add path 'auditpipe*' mode 0440 group audit</programlisting> - <para>Смотрите &man.devfs.rules.5; для более полной - информации о настройке файловой системы devfs.</para> + <para>Обратитесь к &man.devfs.rules.5; за более полной + информацией о настройке файловой системы + <literal>devfs</literal>.</para> <warning> - <para>При неосторожном использовании возможно возникновение бесконечных - циклов событий. Например, если аудиту подвергаются все операции - сетевого ввода-вывода, и команда &man.praudit.1; - запущена во время SSH-сессии, то будет сгенерирован - постоянный поток сообщений аудита, так как каждое событие - вызовет еще ондо событие, и так до бесконечности. - Разумнее будет запускать &man.praudit.1; - на устройстве потока только из сессий, в которых - нет большого аудита ввода-вывода, чтобы избежать такого - поведения.</para> + <para>Довольно легко создать зацикленный поток событий + аудита, в котором просмотр каждого события порождает + несколько событий аудита. Например, если аудиту + подвергаются все операции сетевого ввода-вывода, и команда + <command>praudit</command> запущена во время + <acronym>SSH</acronym>-сессии, то будет сгенерирован + интенсивный поток сообщений аудита, так как каждое + печатаемое событие + вызовет еще одно событие. По этой причине рекомендуется + запускать <command>praudit</command> + на устройстве потока только из сессий, для которых + нет детального аудита ввода-вывода.</para> </warning> </sect2> <sect2> - <title>Ротация журнальных файлов аудита</title> + <title>Ротация и сжатие журнальных файлов аудита</title> - <para>Журнал аудита пишется только ядром и управляется только демоном - аудита &man.auditd.8;. Администраторы не должны пытаться + <para>Журнал аудита пишется ядром и управляется демоном + аудита &man.auditd.8;. Администраторам не следует пытаться использовать &man.newsyslog.conf.5; или другие инструменты для прямой ротации логов. Вместо этого, для прекращения аудита, реконфигурации и ротации журнальных файлов должна использоваться - команда &man.audit.8;. Следующая команда приведет к - созданию нового журнального файла и даст команду ядру переключиться - на запись в этот файл. Протоколирование в старый файл будет прекращено, а - сам файл - переименован, в результате чего с ним можно будет - работать администратору.</para> + команда <command>audit</command>. Следующая команда приведет к + созданию нового журнального файла и даст указание ядру переключиться + на запись в этот файл. Протоколирование в старый файл будет + прекращено, а + сам файл — переименован, в результате чего с ним можно будет + работать администратору:</para> <screen>&prompt.root; <userinput>audit -n</userinput></screen> - <warning> - <para>Если &man.auditd.8; не запущен, то эта команда - окончится неудачей и будет выведено сообщение об ошибке.</para> - </warning> + <para>Если &man.auditd.8; не запущен, то эта команда + окончится неудачей, и будет выведено сообщение об ошибке.</para> <para>Добавление следующей строки в файл - <filename>/etc/crontab</filename> приведет к принудительной ротации - каждые двенадцать часов через &man.cron.8;:</para> + <filename>/etc/crontab</filename> приведет к ротации + каждые двенадцать часов:</para> <programlisting>0 */12 * * * root /usr/sbin/audit -n</programlisting> @@ -748,13 +790,9 @@ trailer,133</programlisting> <filename>/etc/crontab</filename>.</para> <para>Автоматическая ротация журнальных файлов на основании - их размера возможна при использовании опции <option>filesz</option> - в файле &man.audit.control.5;, и описана в разделе - "Формат конфигурационного файла" данной главы.</para> - </sect2> - - <sect2> - <title>Сжатие журнальных файлов</title> + их размера возможна при использовании опции <option>filesz</option> + в файле <filename>audit_control</filename>, которая описана в + <xref linkend="audit-auditcontrol"/>.</para> <para>Поскольку журнальные файлы могут достигать очень больших размеров, может возникнуть необходимость сжимать их в целях хранения сразу же @@ -763,8 +801,8 @@ trailer,133</programlisting> событиям системы аудита, включая нормальное завершение журналов аудита при их ротации, может быть использован скрипт <filename>audit_warn</filename>. Например, добавление следующих строк - в файл <filename>audit_warn</filename> приведет к сжатию файла - после его закрытия:</para> + в файл <filename>/etc/security/audit_warn</filename> + приведет к сжатию файла аудита после его закрытия:</para> <programlisting># # Compress audit trail files on close. @@ -773,11 +811,11 @@ if [ "$1" = closefile ]; then gzip -9 $2 fi</programlisting> - <para>Примерами других действий могут быть, например, копирование файлов - аудита на централизованный сервер, удаление старых журнальных файлов, + <para>Примерами других действий могут быть копирование файлов + аудита на централизованный сервер, удаление старых журнальных файлов, фильтрация журнальных файлов для удаления ненужных записей. Скрипт - будет запущен только только при корректном закрытии журнала системой - аудита и не запустится для журнальных файлов, запись в которые была + будет запущен только при корректном закрытии журнала системой + аудита и не запустится для журнальных файлов, запись в которые была прекращена в результате некорректного завершения.</para> </sect2> </sect1> |