MFen:
1.13 -> 1.25 books/handbook/audit/chapter.sgml Submitted by: Denis Barov <dindin -at- FRDP> Obtained from: The FreeBSD Russian Documentation Project
This commit is contained in:
parent
a49e3ced2d
commit
0642b5a2a7
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=30337
1 changed files with 268 additions and 140 deletions
|
@ -1,10 +1,10 @@
|
|||
<!--
|
||||
The FreeBSD Russian Documentation Project
|
||||
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/audit/chapter.sgml,v 1.4 2006/02/28 08:27:45 marck Exp $
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/audit/chapter.sgml,v 1.8 2007/06/26 07:11:15 den Exp $
|
||||
$FreeBSD$
|
||||
|
||||
Original revision: 1.13
|
||||
Original revision: 1.25
|
||||
-->
|
||||
|
||||
<!-- Need more documentation on praudit, auditreduce, etc. Plus more info
|
||||
|
@ -38,27 +38,19 @@ requirements. -->
|
|||
<primary>Аудит событий безопасности</primary>
|
||||
<see>MAC</see>
|
||||
</indexterm>
|
||||
<para>&os; 7-CURRENT включает в себя поддержку Аудита Событий
|
||||
<para>&os; 6.2-RELEASE и более поздние версии &os;
|
||||
включают в себя поддержку Аудита Событий
|
||||
Безопасности (Security Event Auditing), стандарт которого описан
|
||||
в проекте &posix;.1e и в опубликованном корпорацией Sun описании
|
||||
<acronym>BSM</acronym> API. Система аудита позволяет отслеживать
|
||||
события, важные для безопасности системы. Анализ лога событий
|
||||
может быть жизненно необходим в случае краха системы, для
|
||||
обнаружения нежелательных вторжений и для ликвидации последствий
|
||||
событий подобного рода. После тестирования во &os; 7-CURRENT
|
||||
поддержка системы аудита будет добавлена во &os; 6-STABLE и
|
||||
более ранние ветви &os;.</para>
|
||||
|
||||
<warning>
|
||||
<para>Поддержка аудита во &os; считается экспериментальной,
|
||||
использование системы аудита должно производиться только после
|
||||
тщательного ознакомления со всеми рисками использования
|
||||
экспериментального программного обеспечения.</para>
|
||||
</warning>
|
||||
<acronym>BSM</acronym> API. Система аудита позволяет
|
||||
с предельной детализацией отслеживать события, важные для безопасности
|
||||
и жизненного цикла системы. Анализ событий
|
||||
может быть необходим как для мониторинга функционирующей системы
|
||||
так и для анализа событий, приведших к ее краху.</para>
|
||||
|
||||
<para>В этой главе описывается, в основном, процесс установки и
|
||||
конфигурирования системы аудита. В том числе, приводится
|
||||
разъяснение политик аудита, а так же примеры конфигурационных
|
||||
разъяснение политик аудита, а так же даются примеры конфигурационных
|
||||
файлов.</para>
|
||||
|
||||
<para>После прочтения этой главы вы будете знать:</para>
|
||||
|
@ -68,9 +60,13 @@ requirements. -->
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Как настроить систему аудита во &os; для мониторинга
|
||||
<para>Как настроить аудит во &os; для мониторинга
|
||||
пользователей и процессов.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Как просматривать журнал аудита, использовать ограничения по
|
||||
размеру и специальные инструменты для его просмотра.</para>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Перед прочтением этой главы вы должны:</para>
|
||||
|
@ -93,20 +89,28 @@ requirements. -->
|
|||
</itemizedlist>
|
||||
|
||||
<warning>
|
||||
<para>Использование системы аудита может привести к генерированию
|
||||
огромных журнальных файлов: их размер в некоторых конфигурациях
|
||||
может достигать нескольких гигабайт в неделю. Администраторы
|
||||
должны внимательно прочитать эту главу целиком, во избежание
|
||||
непроизвольного отказа в обслуживании системы (<acronym>DoS</acronym>)
|
||||
из-за неправильной конфигурации системы аудита.</para>
|
||||
<para>Реализация аудита в &os; 6.2 - экспериментальная, использование
|
||||
ее в реальных задачах должно производиться только после
|
||||
внимательного ознакомления со всеми рисками, к которым приводит
|
||||
использование экспериментального программного обеспечения. К
|
||||
известным ограничениям относится и тот факт, что не все события
|
||||
в настоящий момент протоколируемы. Например, некоторые механизмы
|
||||
входа в систему (X11-основанные оконные менеджеры, многое
|
||||
программное обеспечение от сторонних производителей) не
|
||||
сконфигурированы для протоколирования событий входа в систему через
|
||||
подсистему аудита.</para>
|
||||
</warning>
|
||||
|
||||
<para>Реализация системы аудита во &os; похожа на реализацию
|
||||
библиотеки Базового Модуля Безопасности корпорации Sun
|
||||
(&sun; Basic Security Module, <acronym>BSM</acronym>).
|
||||
Поэтому, его конфигурация почти полностью совпадает с
|
||||
конфигурацией аналогичных по назначению модулей в операционных
|
||||
системах &solaris; и Mac OS X/Darwin.</para>
|
||||
<warning>
|
||||
<para>Использование системы в аудита может привести к генерированию
|
||||
огромных журнальных файлов: их размер на сильно загруженных серверах
|
||||
в некоторых конфигурациях может достигать нескольких гигабайт в неделю.
|
||||
Администраторы должны внимательно следить за дисковым пространством
|
||||
в разделе системы аудита. Например, рекомендуется выделить
|
||||
отдельный раздел для файловой системы аудита
|
||||
<filename>/var/audit</filename>, чтобы переполнение раздела аудита
|
||||
не влияло на работоспособность всей остальной системы.</para>
|
||||
</warning>
|
||||
|
||||
</sect1>
|
||||
|
||||
|
@ -122,7 +126,7 @@ requirements. -->
|
|||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis>событие</emphasis>(event): Событие, которое
|
||||
<para><emphasis>событие</emphasis> (event): Событие, которое
|
||||
может быть занесено в журнал. Администратор может выбирать,
|
||||
какие именно события будут журналироваться подсистемой
|
||||
аудита. Список важных для безопасности системы
|
||||
|
@ -137,18 +141,19 @@ requirements. -->
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>Класс</emphasis>(class): События могут быть
|
||||
<para><emphasis>Класс</emphasis> (class): События могут быть
|
||||
отнесены к одному или более классам, обычно основываясь
|
||||
на категории события: <quote>создание файла</quote>,
|
||||
<quote>доступ к файлу</quote>,<quote>сеть</quote>. События
|
||||
входа в систему и выхода из нее относятся к классу <literal>lo</literal>.
|
||||
на категории события: <quote>создание файла</quote> (fc),
|
||||
<quote>доступ к файлу</quote> (fo),
|
||||
<quote>выполнение файла</quote> (ex), события
|
||||
входа в систему и выхода из нее (lo).
|
||||
Использование классов позволяет администратору создавать
|
||||
высокоуровневые правила аудита без указания конкретных
|
||||
операций, отчет о которых должен добавляться в журнал.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>Запись</emphasis>(record): <quote>Запись</quote> -
|
||||
<para><emphasis>Запись</emphasis> (record): <quote>Запись</quote> -
|
||||
это единичная запись в журнале, описывающая то или иное
|
||||
событие. Запись обычно содержит информацию о типе события,
|
||||
информацию о субъекте события (пользователе), время события,
|
||||
|
@ -158,7 +163,7 @@ requirements. -->
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>Журнал</emphasis>(trail):
|
||||
<para><emphasis>Журнал</emphasis> (trail):
|
||||
<quote>журнал</quote> аудита, или лог-файл -
|
||||
содержит серию <quote>записей</quote> о системных событиях.
|
||||
Как правило, журнал содержит записи в строгом
|
||||
|
@ -168,9 +173,33 @@ requirements. -->
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>Префикс</emphasis>(prefix): Под префиксом понимается
|
||||
элемент, указывающий, вести ли аудит для успешного или
|
||||
ошибочного события.</para>
|
||||
<para><emphasis>выражение выделения</emphasis> (selection expression):
|
||||
Строка, содержащая список префиксов и имен классов, используемая
|
||||
для выделения группы событий.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>предварительное выделение</emphasis> (preselection):
|
||||
Процесс, во время которого система определяет, какие события имеют
|
||||
приоритетную важность для администратора. Это необходимо для того,
|
||||
чтобы избежать протоколирования событий, не имеющих никакой значимости.
|
||||
Предварительное выделение использует ряд
|
||||
<emphasis>выражений выделения</emphasis> для того, чтобы определить,
|
||||
какие именно классы событий для какого пользователя необходимо вносить
|
||||
в журнал, так же, как и для авторизованных и неавторизованных
|
||||
процессов.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>Фильтрация</emphasis> (reduction):
|
||||
Процесс, в результате которого записи из существующего журнала
|
||||
выделяются для хранения, распечатки или анализа. Процесс во многом
|
||||
аналогичен <emphasis>предварительному выделению</emphasis>. Используя
|
||||
<emphasis>фильтрацию</emphasis> администраторы могут реализовывать
|
||||
различные политики хранения журналов аудита. Например, детализированный
|
||||
журнал может храниться месяц, но после этого он должен быть сокращен
|
||||
чтобы хранить только информацию о входе в систему и выходе из нее
|
||||
более длительный срок.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect1>
|
||||
|
@ -178,15 +207,9 @@ requirements. -->
|
|||
<sect1 id="audit-install">
|
||||
<title>Установка системы аудита</title>
|
||||
|
||||
<para>Система аудита обычно устанавливается в
|
||||
процессе установки системы <maketarget>installworld</maketarget>.
|
||||
Администратор может проверить, установлена ли система аудита,
|
||||
просмотрев содержимое каталога
|
||||
<filename role="directory">/etc/security</filename>. В нём
|
||||
должны находиться файлы, начинающиеся со слова
|
||||
<emphasis>audit</emphasis>. Например, <filename>audit_event</filename>.</para>
|
||||
|
||||
<para>Кроме того, поддержка аудита должна присутствовать в ядре. Этого
|
||||
<para>Пользовательская часть подсистемы аудита устанавливается как часть
|
||||
базовой системы &os; начиная с версии 6.2-RELEASE. Тем не менее,
|
||||
поддержка аудита должна быть добавлена в ядро. Этого
|
||||
можно добиться, добавив следующую строку в конфигурационный файл
|
||||
вашего специального ядра:</para>
|
||||
|
||||
|
@ -195,12 +218,12 @@ requirements. -->
|
|||
<para>Процесс сборки и установки ядра подробно описан в главе
|
||||
<xref linkend="kernelconfig">.</para>
|
||||
|
||||
<para>После этого, необходимо разрешить запуск даемона аудита,
|
||||
<para>После этого, необходимо разрешить запуск демона аудита,
|
||||
добавив следующую строку в &man.rc.conf.5;:</para>
|
||||
|
||||
<programlisting>auditd_enable="YES"</programlisting>
|
||||
|
||||
<para>Для запуска даемона со специфическими параметрами нужно
|
||||
<para>Для запуска демона со специфическими параметрами нужно
|
||||
указать эти параметры в опции <option>auditd_flags</option>
|
||||
файла &man.rc.conf.5;.
|
||||
</sect1>
|
||||
|
@ -211,7 +234,7 @@ requirements. -->
|
|||
|
||||
<para>Все конфигурационные файлы системы аудита находятся в каталоге
|
||||
<filename role="directory">/etc/security</filename>. Перед запуском
|
||||
даемона аудита там должны находиться следующие файлы:</para>
|
||||
демона аудита там должны находиться следующие файлы:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
|
@ -261,12 +284,13 @@ requirements. -->
|
|||
так и сокращенные параметры. Соответствия будут приведены
|
||||
ниже.</para>
|
||||
|
||||
<para>Следующий список содержит все поддерживаемые классы:</para>
|
||||
<para>Следующий список содержит все классы по умолчанию,
|
||||
присутствующие в файле <filename>audit_class</filename>:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><option>all</option> - <literal>all</literal> -
|
||||
Установить все флаги.</para>
|
||||
Соответствует всем классам событий.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -288,7 +312,10 @@ requirements. -->
|
|||
|
||||
<listitem>
|
||||
<para><option>ex</option> - <literal>exec</literal> -
|
||||
Аудит запуска приложения.</para>
|
||||
Аудит запуска приложения. Аудит аргументов командной строки и
|
||||
переменных окружения контролируется через &man.audit.control.5;
|
||||
используя параметры <literal>argv</literal> и <literal>envv</literal>
|
||||
в опции <literal>policy</literal>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -376,13 +403,18 @@ requirements. -->
|
|||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Далее перечислены все поддерживаемые префиксы:</para>
|
||||
<para>Эти классы событий могут быть настроены изменением конфигурационных
|
||||
файлов <filename>audit_class</filename> и
|
||||
<filename>audit_event</filename>.</para>
|
||||
|
||||
<para>Каждый класс комбинируется с префиксом, показывающим удачное
|
||||
или неудачное завершение операции.</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><literal>[пустой префикс]</literal> - Аудит проводится как для
|
||||
успешного, так и для ошибочного события. Например, просто
|
||||
указание класса без префикса приведёт к занесению события
|
||||
указание класса без префикса приведет к занесению события
|
||||
в журнал при любом результате операции.</para>
|
||||
</listitem>
|
||||
|
||||
|
@ -395,18 +427,12 @@ requirements. -->
|
|||
<para><literal>-</literal> - Аудит только ошибочных
|
||||
событий.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<warning>
|
||||
<para>Использование класса <option>all</option> с любым
|
||||
префиксом может привести к генерации огромного количества
|
||||
данных с очень большой частотой.</para>
|
||||
</warning>
|
||||
<listitem>
|
||||
<para><literal>^</literal> - Отключение аудита как успешных, так и
|
||||
ошибочных событий.</para>
|
||||
</listitem>
|
||||
|
||||
<para>Дополнительные префиксы, которые могут использоваться для
|
||||
изменения настроек по умолчанию:</para>
|
||||
<!-- XXX: Perhaps a variable listing here. -->
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><literal>^-</literal> - Отключение аудита ошибочных
|
||||
событий.</para>
|
||||
|
@ -417,11 +443,13 @@ requirements. -->
|
|||
событий.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>^</literal> - Отключение аудита как успешных, так и
|
||||
ошибочных событий.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Следующий пример выбирает успешные и не-успешные события входа в
|
||||
систему и выхода из нее, и только успешные события исполнения
|
||||
файла:</para>
|
||||
|
||||
<programlisting>lo,+ex</programlisting>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
|
@ -445,7 +473,9 @@ requirements. -->
|
|||
<programlisting>dir:/var/audit
|
||||
flags:lo
|
||||
minfree:20
|
||||
naflags:lo</programlisting>
|
||||
naflags:lo
|
||||
policy:cnt
|
||||
filesz:0</programlisting>
|
||||
|
||||
<para>Параметр <option>dir</option> указывает каталог, в
|
||||
котором будет сохраняться журнал системы аудита. Как
|
||||
|
@ -467,7 +497,7 @@ minfree:20
|
|||
naflags:lo</programlisting>
|
||||
|
||||
<para>Такое значение параметра <option>flags</option>
|
||||
приведёт к аудиту всех событий &man.login.1; и
|
||||
приведет к аудиту всех событий &man.login.1; и
|
||||
&man.logout.1;, всех административных событий, всех ошибочных
|
||||
системных событий и, наконец, отключает аудит всех ошибочных
|
||||
событий классов <option>fa</option>, <option>fc</option> и
|
||||
|
@ -528,97 +558,195 @@ audit:fc:no</programlisting>
|
|||
<sect1 id="audit-administration">
|
||||
<title>Администрирование системы аудита</title>
|
||||
|
||||
<sect2>
|
||||
<title>Просмотр журнала аудита</title>
|
||||
|
||||
<para>Журнал событий, записываемый ядром системы аудита не может
|
||||
быть прочитан или отредактирован как простой текст. Данные
|
||||
сохраняются и считываются методами, схожими с &man.ktrace.1; и
|
||||
&man.kdump.1;, поэтому, журналы можно просмотреть только с
|
||||
помощью команды <command>praudit</command>. Информация
|
||||
из журналов может быть отфильтрована при помощи команды
|
||||
<command>auditreduce</command>, которая выбирает записи из
|
||||
журналов, основываясь на определённых параметрах, таких как
|
||||
пользователь, время события или тип операции.</para>
|
||||
<para>Журнал аудита хранится в бинарном формате BSM, поэтому для
|
||||
его изменения и конвертации в текстовый формат понадобятся специальные
|
||||
утилиты. Команда <command>praudit</command> преобразует журнал аудита
|
||||
в текстовый формат; команда <command>auditreduce</command> может быть
|
||||
использована для ротации и фильтрации журнала в целях анализа,
|
||||
архивирования или распечатки. Команда <command>auditreduce</command>
|
||||
поддерживает множество параметров выборки, включая типы событий, классы
|
||||
событий, пользовательские события, дату и время событий и пути файлов,
|
||||
к которым относятся события.</para>
|
||||
|
||||
<para>Например, <command>praudit</command> может вывести всё
|
||||
содержимое определённого журнала в текстовом формате. Для этого
|
||||
выполните команду:</para>
|
||||
<para>Например, утилита <command>praudit</command> выведет все содержимое
|
||||
журнала аудита в текстовом формате:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>praudit /var/audit/AUDITFILE</userinput></screen>
|
||||
<screen>&prompt.root; <userinput>praudit /var/audit/AUDITFILE</userinput></screen>
|
||||
|
||||
<para>Здесь <replaceable>AUDITFILE</replaceable> - имя файла журнала
|
||||
по вашему выбору. Поскольку, файлы журналов могут содержать
|
||||
гигантское количество данных, администратору может понадобиться
|
||||
выбирать записи событий только одного пользователя. Это возможно
|
||||
с помощью следующей команды, в которой
|
||||
<username>trhodes</username> - имя пользователя:</para>
|
||||
<para>В данном примере <replaceable>AUDITFILE</replaceable> - журнал,
|
||||
который будет выведен в текстовом формате.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>auditreduce -e trhodes /var/audit/AUDITFILE | praudit</userinput></screen>
|
||||
<para>Журнал аудита состоит из серии записей, которые, в свою
|
||||
очередь состоят из элементов. Эти элементы команда
|
||||
<command>praudit</command> выводит последовательно - по одному на строку.
|
||||
Каждый элемент имеет специфический тип, например
|
||||
<literal>заголовок</literal> (header) содержит заголовок pfgbcb, a
|
||||
<literal>путь</literal> (path) - путь к файлу, к которому относится запись.
|
||||
lookup. Следующий пример показывает запись для события выполнения
|
||||
(execve):</para>
|
||||
|
||||
<para>Результатом будет выборка из файла
|
||||
<replaceable>AUDITFILE</replaceable> всех событий, связанных с
|
||||
пользователем <username>trhodes</username>.</para>
|
||||
<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
|
||||
subject,robert,root,wheel,root,wheel,38439,38032,42086,128.232.9.100
|
||||
return,success,0
|
||||
trailer,133</programlisting>
|
||||
|
||||
<para>Есть ряд других параметров для чтения журналов аудита, для
|
||||
более детального изучения смотрите страницу справки команды
|
||||
<command>praudit</command>.</para>
|
||||
<para>Эта запись является результатом успешного выполнения системного
|
||||
вызова <literal>execve</literal>, который стал результатом выполнения
|
||||
команды "finger doug". Элемент <literal>exec</literal> содержит и
|
||||
команду, которую оболочка передала ядру, и ее аргументы. Элемент
|
||||
<literal>путь</literal> (path) содержит путь к исполняемому файлу в
|
||||
представлении ядра. Элемент <literal>атрибут</literal> (attribute)
|
||||
описывает исполняемый файл, и, в частности, права доступа к файлу.
|
||||
Элемент <literal>субъект</literal> (subject) описывает процесс, вызвавший
|
||||
выполнение и сохраняет его в виде ряда значений, представляющих собой
|
||||
UID аудируемого пользователя, исполняющие (effective) UID и GID,
|
||||
реальные (real) UID и GID, идентификатор процесса, идентификатор сессии,
|
||||
порт и адрес, с которого был осуществлен вход в систему.
|
||||
Обратите внимание - идентификатор аудируемого пользователя и реальный
|
||||
идентификатор пользователя отличаются: это значит, что пользователь
|
||||
<literal>robert</literal> повысил привилегии до пользователя
|
||||
<literal>root</literal> перед выполнением команды, но система аудита
|
||||
занесла его действия в журнал используя изначальный идентификатор.
|
||||
Наконец, элемент <literal>возврат</literal> (return) описывает успешное
|
||||
завершение операции с кодом завершения 0, а элемент
|
||||
<literal>trailer</literal> завершает запись.</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Ротация лог-файлов системы аудита</title>
|
||||
<title>Фильтрация журналов аудита</title>
|
||||
|
||||
<para>Исходя из соображений безопасности, запись в журнал аудита
|
||||
производится только ядром системы; все управление
|
||||
журналом осуществляется даемоном <command>auditd</command>.
|
||||
Администраторы не должны пытаться использовать
|
||||
&man.newsyslog.conf.5; или другие инструменты для прямой
|
||||
ротации логов системы аудита. Вместо этого, для остановки,
|
||||
переконфигурации системы аудита и для ротации лог-файлов используйте
|
||||
утилиту управления <command>audit</command>. Следующая команда
|
||||
заставит даемон <command>auditd</command> создать новый
|
||||
лог-файл и переключить систему аудита на его использование.
|
||||
Старый лог-файл будет переименован:</para>
|
||||
<para>Поскольку логи системы аудита могут иметь огромный размер,
|
||||
администратору, зачастую, необходимо выделить только часть записей.
|
||||
Например, записи, относящиеся к определенному пользователю:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>auditreduce -u trhodes /var/audit/AUDITFILE | praudit</userinput></screen>
|
||||
|
||||
<para>Эта команда выделит все записи, относящиеся к пользователю
|
||||
<username>trhodes</username>, которые хранятся в файле
|
||||
<replaceable>AUDITFILE</replaceable>.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Делегирование прав просмотра журнала</title>
|
||||
|
||||
<para>Члены группы <literal>audit</literal> имеют доступ на чтение
|
||||
к журналу аудита, находящемуся в <filename>/var/audit</filename>;
|
||||
по умолчанию эта группа пуста, и только суперпользователь (root)
|
||||
имеет к ним доступ. Для того, что бы передать пользователю права на
|
||||
чтение журнала, его необходимо добавить в группу <literal>audit</literal>.
|
||||
Право на чтение журнала аудита позволяет получить множество
|
||||
информации о поведении пользователей и процессов, что может привести к
|
||||
раскрытию конфиденциальных данных. Поэтому, рекомендуется делегировать
|
||||
права на чтение журнала аудита с большой осторожностью.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Мониторинг системы в реальном времени</title>
|
||||
|
||||
<para>Потоки системы аудита - клонированные псевдо-устройства,
|
||||
используя которые, приложения могут получать информацию о системных
|
||||
событиях в реальном времени. В первую очередь, это должно
|
||||
заинтересовать авторов программ для мониторинга и определения
|
||||
вторжений в систему. Тем не менее, для администратора потоки
|
||||
системы аудита могут стать удобным инструментом для мониторинга
|
||||
в реальном времени без того, чтобы вдаваться в детали обеспечения
|
||||
безопасности при передачи прав на чтение журнала аудита. Для того,
|
||||
чтобы получить поток событий в реальном времени используйте
|
||||
следующую команду:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>praudit /dev/auditpipe</userinput></screen>
|
||||
|
||||
<para>По умолчанию, потоки доступны только пользователю root. Чтобы
|
||||
сделать их доступными членам группы <literal>audit</literal> добавьте
|
||||
правило <literal>devfs</literal> в файл
|
||||
<filename>devfs.rules</filename>:</para>
|
||||
|
||||
<programlisting>add path 'auditpipe*' mode 0440 group audit</programlisting>
|
||||
|
||||
<para>Смотрите страницу справочника &man.devfs.rules.5; для более полной
|
||||
информации о настройке файловой системы devfs.</para>
|
||||
|
||||
<warning>
|
||||
<para>При неосторожном использовании возможно возникновение бесконечных
|
||||
циклов событий. Например, если аудиту подвергаются все операции
|
||||
сетевого ввода-вывода, и команда <command>praudit</command>
|
||||
запущена во время SSH-сессии, то любое событие породит вывод
|
||||
сообщения, которое в свою очередь тоже будет событием и так до
|
||||
бесконечности. Разумнее будет не запускать <command>praudit</command>
|
||||
на потоке событий из сессии, которая детально журналируется.</para>
|
||||
</warning>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Ротация журнальных файлов аудита</title>
|
||||
|
||||
<para>Журнал аудита пишется только ядром и управляется только демоном
|
||||
аудита <command>auditd</command>. Администраторы не должны пытаться
|
||||
использовать &man.newsyslog.conf.5; или другие инструменты для
|
||||
прямой ротации логов. Вместо этого, для прекращения аудита,
|
||||
реконфигурации и ротации журнальных файлов должна использоваться
|
||||
команда <command>audit</command>. Следующая команда приведет к
|
||||
созданию нового журнального файла и даст команду ядру переключиться
|
||||
на запись в этот файл. Протоколирование в старый файл будет прекращено, а
|
||||
сам файл - переименован. Это рекомендованный способ ротации
|
||||
журнальных файлов.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>audit -n</userinput></screen>
|
||||
|
||||
<warning>
|
||||
<para>Если даемон <command>auditd</command> не запущен, команда
|
||||
завершится с ошибкой.</para>
|
||||
<para>Если демон <command>auditd</command> не запущен, то эта команда
|
||||
окончится неудачей и будет выведено сообщение об ошибке.</para>
|
||||
</warning>
|
||||
|
||||
<para>Добавление следующей строки в файл
|
||||
<filename>/etc/crontab</filename> приведёт к автоматической
|
||||
ротации лог-файлов каждые двенадцать часов при помощи &man.cron.8;:</para>
|
||||
<filename>/etc/crontab</filename> приведет к принудительной ротации
|
||||
каждые двенадцать часов через &man.cron.8;:</para>
|
||||
|
||||
<programlisting>* */12 * * * root /usr/sbin/audit -n</programlisting>
|
||||
<programlisting>0 */12 * * * root /usr/sbin/audit -n</programlisting>
|
||||
|
||||
<para>Изменения вступят в силу сразу же после сохранения файла
|
||||
<filename>/etc/crontab</filename>.</para>
|
||||
<para>Изменения вступят в силу после сохранения файла
|
||||
<filename>/etc/crontab</filename>.</para>
|
||||
|
||||
<para>Автоматическая ротация журнальных файлов возможна при использовании
|
||||
опции <option>filesz</option> в файле
|
||||
&man.audit.control.5;, и описан в секции
|
||||
"Формат конфигурационного файла".</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Передача прав на просмотр журнала аудита</title>
|
||||
<title>Сжатие журнальных файлов</title>
|
||||
|
||||
<para>По умолчанию, только пользователь
|
||||
<username>root</username> имеет право просматривать журналы
|
||||
аудита. Тем не менее, эти права могут быть переданы, например,
|
||||
пользователям, входящим в группу <literal>audit</literal>.
|
||||
Для этого необходимо передать каталог системы
|
||||
аудита и файлы журналов аудита группе
|
||||
<literal>audit</literal>. После этого нужно дать группе права
|
||||
на чтение каталога и находящихся в нём файлов.
|
||||
<!-- XXX Absent in the original chapter -->
|
||||
Например, если раздел журналов аудита смонтирован в
|
||||
<filename>/var/audit</filename>, нужно выполнить
|
||||
команды:</para>
|
||||
<para>Поскольку журнальные файлы могут достигать очень больших размеров,
|
||||
может возникнуть необходимость сжимать их в целях хранения сразу же
|
||||
после закрытия их демоном <command>auditd</command>. Для выполнения
|
||||
определенных пользователем действий соответствующих разнообразным
|
||||
событиям системы аудита, включая нормальное завершение работы системы
|
||||
аудита и фильтрацию журнальных файлов, может быть использован скрипт
|
||||
<filename>audit_warn</filename>. Например, добавление следующих строк
|
||||
в файл <filename>audit_warn</filename> приведет к сжатию файла
|
||||
после его закрытия:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>chown -R :audid /var/audit </userinput>
|
||||
&prompt.root; <userinput>chmod -R g+r /var/audit </userinput></screen>
|
||||
<!-- /XXX -->
|
||||
<programlisting>#
|
||||
# Compress audit trail files on close.
|
||||
#
|
||||
if [ "$1" = closefile ]; then
|
||||
gzip -9 $2
|
||||
fi</programlisting>
|
||||
|
||||
<para>Содержимое журнала аудита дает много информации о
|
||||
взаимодействии пользователей, процессов и
|
||||
функционировании системы в целом. Поэтому рекомендуется
|
||||
передавать права на работу с журналами аудита с большой
|
||||
осмотрительностью.</para>
|
||||
<para>Примерами других действий могут быть, например, копирование файлов в место их
|
||||
последующего хранения, удаление старых журнальных файлов, фильтрация
|
||||
журнальных файлов для удаления ненужных записей. Скрипт
|
||||
<filename>audit_warn</filename> будет запущен только только при
|
||||
корректном закрытии журнала системой аудита и не запустится
|
||||
для журнальных файлов, запись в которые была прекращена в
|
||||
результате некорректного завершения.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
|
Loading…
Reference in a new issue