Date: Wed, 16 Apr 2014 17:12:26 +0000 (UTC) From: Taras Korenko <taras@FreeBSD.org> To: doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org Subject: svn commit: r44579 - head/ru_RU.KOI8-R/books/handbook/audit Message-ID: <201404161712.s3GHCQH9029534@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: taras Date: Wed Apr 16 17:12:25 2014 New Revision: 44579 URL: http://svnweb.freebsd.org/changeset/doc/44579 Log: MFen: + books/handbook/audit/chapter.xml r30208 --> r43688 PR: docs/187278 Submitted by: Vladimir Romanov <blueboar_2@rambler.ru> Modified: head/ru_RU.KOI8-R/books/handbook/audit/chapter.xml Modified: head/ru_RU.KOI8-R/books/handbook/audit/chapter.xml ============================================================================== --- head/ru_RU.KOI8-R/books/handbook/audit/chapter.xml Wed Apr 16 15:55:46 2014 (r44578) +++ head/ru_RU.KOI8-R/books/handbook/audit/chapter.xml Wed Apr 16 17:12:25 2014 (r44579) @@ -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: r30208 + Original revision: r43688 --> <!-- Need more documentation on praudit, auditreduce, etc. Plus more info on the triggers from the kernel (log rotation, out of space, etc). @@ -13,16 +13,43 @@ And the /dev/audit special file if we ch 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"> +<chapter xmlns="http://docbook.org/ns/docbook" + 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></author> + <author> + <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> + </author> + <author> + <personname> + <firstname>Владимир</firstname> + <surname>Романов</surname> + </personname> + <contrib>Обновление перевода: </contrib> + </author> </authorgroup> </info> - + <sect1 xml:id="audit-synopsis"> <title>Краткий обзор</title> <indexterm><primary>AUDIT</primary></indexterm> @@ -30,10 +57,9 @@ requirements. --> <primary>Аудит событий безопасности</primary> <see>MAC</see> </indexterm> - <para>&os; 6.2-RELEASE и более поздние версии &os; - включают в себя поддержку аудита событий безопасности. - Аудит событий дает надежный и точный способ для - протоколирования различных событий, связанных с безопасностью, + <para>Операционная система &os; включает в себя поддержку аудита + событий безопасности. Аудит событий дает надежный и точный способ + для протоколирования различных событий, связанных с безопасностью, включая входы в систему, изменения конфигурации, доступ к файлам и сети. Эти записи могут быть незаменимы для мониторинга функционирующей системы, обнаружения вторжений @@ -84,117 +110,107 @@ requirements. --> </itemizedlist> <warning> - <para>Реализация аудита в &os; 6.2 - экспериментальная, использование - ее в реальных задачах должно производиться только после - внимательного ознакомления со всеми рисками, к которым приводит - использование экспериментального программного обеспечения. К - известным ограничениям относится и тот факт, что не все события - в настоящий момент протоколируемы. Например, некоторые механизмы - входа в систему (X11-основанные оконные менеджеры, многое - программное обеспечение от сторонних производителей) не - сконфигурированы для протоколирования событий входа в систему через - подсистему аудита.</para> - </warning> - - <warning> - <para>Использование системы в аудита может привести к генерированию - огромных журнальных файлов: их размер на сильно загруженных серверах - в некоторых конфигурациях может достигать нескольких гигабайт в неделю. - Администраторы должны внимательно следить за дисковым пространством - в разделе системы аудита. Например, рекомендуется выделить - отдельный раздел для файловой системы аудита - <filename>/var/audit</filename>, чтобы переполнение раздела аудита - не влияло на работоспособность всей остальной системы.</para> + <para>Реализация аудита имеет известные ограничения, например, + не все события в настоящий момент протоколируемы. + Например, некоторые механизмы входа в систему (Основанные на X11 + оконные менеджеры, многое программное обеспечение от сторонних + производителей) не сконфигурированы для протоколирования событий + входа в систему через подсистему аудита.</para> + <para>Использование системы аудита может привести к генерированию + огромных журнальных файлов: их размер на сильно загруженных серверах + в некоторых конфигурациях может достигать нескольких гигабайт в неделю. + Администраторы должны принимать во внимание требования + к дисковому пространству для нагруженных конфигураций системы + аудита. Например, рекомендуется выделить отдельный раздел для + файловой системы аудита + <filename>/var/audit</filename>, + чтобы переполнение раздела аудита не влияло на работоспособность + всей остальной системы.</para> </warning> </sect1> <sect1 xml:id="audit-inline-glossary"> - <title>Ключевые понятия - краткий словарь.</title> + <title>Ключевые понятия в Данной Главе.</title> <para>Перед чтением этой главы необходимо определить несколько - ключевых понятий. Это нужно для того, чтобы предотвратить - недоразумения, которые могут возникнуть из-за разницы в трактовке - некоторых терминов. В русской версии документа приводятся + ключевых понятий. В русской версии документа приводятся близкий по смыслу перевод и в скобках указывается оригинальный английский термин.</para> <itemizedlist> <listitem> <para><emphasis>событие</emphasis> (event): Событие, которое - может быть занесено в журнал. Администратор может выбирать, - какие именно события будут журналироваться подсистемой - аудита. Список важных для безопасности системы - событий включает: создание файла, инициализацию сетевого + может быть занесено в журнал. Примеры важных для безопасности + системы событий включает: создание файла, инициализацию сетевого соединения, вход пользователя в систему. События разделяются на <quote>приписываемые</quote> (attributable) - те, которые могут быть отнесены к конкретному пользователю - - и <quote>не-приписываемые</quote> (non-attributable). Пример + и <quote>не-приписываемые</quote> (non-attributable), если + их нельзя отнести к конкретному пользователю. Пример не-приписываемого события - любое событие, произошедшее до - авторизации пользователя, такое, как неудачный вход пользователя - в систему.</para> + аутентификации пользователя, такое, например, такое, как + неудачный вход пользователя в систему.</para> </listitem> <listitem> - <para><emphasis>Класс</emphasis> (class): События могут быть - отнесены к одному или более классам, обычно основываясь - на категории события: <quote>создание файла</quote> (fc), - <quote>доступ к файлу</quote> (fo), - <quote>выполнение файла</quote> (ex), события - входа в систему и выхода из нее (lo). - Использование классов позволяет администратору создавать - высокоуровневые правила аудита без указания конкретных - операций, отчет о которых должен добавляться в журнал.</para> + <para><emphasis>Класс</emphasis> (class): Классы событий это + именованные наборы однотипных событий, которые используются + в выражениях выбора. Частоиспользуемые классы событий + включают <quote>создание файла</quote> (fc), + <quote>выполнение файла</quote> (ex) + и <quote>события входа в систему и выхода из нее</quote> (lo).</para> </listitem> <listitem> <para><emphasis>Запись</emphasis> (record): <quote>Запись</quote> - это единичная запись в журнале, описывающая то или иное событие. Запись обычно содержит информацию о типе события, - информацию о субъекте события (пользователе), время события, - информацию об объектах события (например, файлах) и - информацию об успешности выполнения операции, породившей - событие.</para> + информацию о субъекте события (пользователе), который + выполнил некоторое действия, дату и время события, + информацию об объектах и аргументах события, если они есть, + а также информацию об успешности выполнения операции, + породившей событие.</para> </listitem> <listitem> <para><emphasis>Журнал</emphasis> (trail): - <quote>журнал</quote> аудита, или лог-файл - - содержит серию <quote>записей</quote> о системных событиях. + журнал аудита, или лог-файл - + содержит серию записей о системных событиях. Как правило, журнал содержит записи в строгом хронологическом порядке по времени завершения - события. Только авторизованные процессы (например, - <command>auditd</command>) имеют доступ к журналу.</para> + события. Только авторизованные процессы могут + добавлять записи в журнал.</para> </listitem> <listitem> - <para><emphasis>выражение выделения</emphasis> (selection expression): + <para><emphasis>выражение выбора</emphasis> (selection expression): Строка, содержащая список префиксов и имен классов, используемая - для выделения группы событий.</para> + для выбора группы событий.</para> </listitem> <listitem> - <para><emphasis>предварительное выделение</emphasis> (preselection): - Процесс, во время которого система определяет, какие события имеют - приоритетную важность для администратора. Это необходимо для того, + <para><emphasis>предварительный выбор</emphasis> (preselection): + Процесс, с помощью которого система определяет, какие события имеют + важность для администратора. Это необходимо для того, чтобы избежать протоколирования событий, не имеющих никакой значимости. - Предварительное выделение использует ряд - <emphasis>выражений выделения</emphasis> для того, чтобы определить, - какие именно классы событий для какого пользователя необходимо вносить - в журнал, так же, как и для авторизованных и неавторизованных - процессов.</para> + Предварительный выбор использует ряд выражений выбора + для того, чтобы определить, какие именно классы событий для + какого пользователя необходимо вносить в журнал, а так же + глобальные настройки, которые будут применяться как для + авторизованных, так и для неавторизованных процессов.</para> </listitem> <listitem> <para><emphasis>Фильтрация</emphasis> (reduction): Процесс, в результате которого записи из существующего журнала - выделяются для хранения, распечатки или анализа. Процесс во многом - аналогичен <emphasis>предварительному выделению</emphasis>. Используя - <emphasis>фильтрацию</emphasis> администраторы могут реализовывать - различные политики хранения журналов аудита. Например, детализированный - журнал может храниться месяц, но после этого он должен быть сокращен - чтобы хранить только информацию о входе в систему и выходе из нее - более длительный срок.</para> + выделяются для хранения, распечатки или анализа. Также, это + процесс, в результате которого нежелательные записи удаляются + из журнала аудита. Используя фильтрацию, администраторы могут + реализовывать различные политики хранения данных аудита. + Например, детализированный журнал может храниться месяц, но + после этого он должен быть сокращен чтобы хранить только + информацию о входе в систему и выходе из нее для целей архивации.</para> </listitem> </itemizedlist> </sect1> @@ -203,30 +219,31 @@ requirements. --> <title>Установка системы аудита</title> <para>Пользовательская часть подсистемы аудита устанавливается как часть - базовой системы &os; начиная с версии 6.2-RELEASE. Тем не менее, - поддержка аудита должна быть добавлена в ядро. Этого - можно добиться, добавив следующую строку в конфигурационный файл - вашего специального ядра:</para> + базовой системы &os;. Поддержка аудита событий со стороны ядра + также компилируется по умолчанию, но поддержка данной возможности + требует создания своего ядра, с добавлением следующей строки + в конфигурационный файл ядра:</para> <programlisting>options AUDIT</programlisting> <para>Процесс сборки и установки ядра подробно описан в главе <xref linkend="kernelconfig"/>.</para> - <para>После этого, необходимо разрешить запуск демона аудита, + <para>Как только ядро с поддержкой аудита было собрано и установлено, + а система была перезагружена, необходимо разрешить запуск демона аудита, добавив следующую строку в &man.rc.conf.5;:</para> <programlisting>auditd_enable="YES"</programlisting> - <para>Для запуска демона со специфическими параметрами нужно - указать эти параметры в опции <option>auditd_flags</option> - файла &man.rc.conf.5;.</para> - </sect1> + <para>Затем нужно запустить поддержку аудита либо путем + перезагрузки, либо вручную, запустив демон аудита:</para> + + <programlisting>service auditd start</programlisting> + </sect1> <sect1 xml:id="audit-config"> <title>Настройка системы аудита</title> - <para>Все конфигурационные файлы системы аудита находятся в каталоге <filename>/etc/security</filename>. Перед запуском демона аудита там должны находиться следующие файлы:</para> @@ -241,72 +258,80 @@ requirements. --> <para><filename>audit_control</filename> - Параметры системы аудита: классы по умолчанию, минимальное дисковое пространство, которое должно оставаться на разделе журнала - аудита, и другие.</para> + аудита, максимальный размер журнала аудита и другие.</para> </listitem> <listitem> - <para><filename>audit_event</filename> - Определяет основные - события аудита. Это, в основном, системные вызовы.</para> + <para><filename>audit_event</filename> - Текстовые имена и + описания событий аудита, а также список, определяющий + соответствие классов и событий, которые находятся в данных + классах.</para> </listitem> <listitem> - <para><filename>audit_user</filename> - События аудита для - для отдельных пользователей. Пользователи, не упоминаемые - в этом файле, будут рассматриваться как субъекты конфигурации - по-умолчанию в файле <filename>audit_control</filename>.</para> + <para><filename>audit_user</filename> - Требования аудита, которые + отличаются для отдельных пользователей. Они соединяются с + глобальными настройками по умолчанию при входе пользователя + в систему.</para> </listitem> - <listitem> <para><filename>audit_warn</filename> - Скрипт командного - интерпретатора Bourne Shell, который используется, чтобы - сгенерировать предупреждающие сообщения об исключительных + интерпретатора, используемый &man.auditd.8;, + чтобы сгенерировать предупреждающие сообщения об исключительных ситуациях, например, когда заканчивается свободное дисковое - пространство для записей журналов аудита.</para> + пространство для записей журналов аудита, либо когда произошла + ротация файла журнала аудита.</para> </listitem> </itemizedlist> + <warning> + <para>Файлы конфигурации аудита должны редактироваться и + изменяться с осторожностью, так как ошибки в конфигурации + могут привести к неправильному логу событий</para> + </warning> + <sect2> - <title>Формат конфигурационного файла</title> + <title>Выражения выбора событий</title> - <para>Формат конфигурационного файла не очень логичен, но с ним, тем - не менее, достаточно просто работать. Однако, администраторам - следует быть очень внимательными при изменении значений по - умолчанию, поскольку это создает потенциальную опасность - неправильного сбора данных системой аудита.</para> - - <para>В конфигурационном файле могут использоваться как полные, - так и сокращенные параметры. Соответствия будут приведены - ниже.</para> + <para>Выражения выбора используются в нескольких местах + конфигурации аудита для определения того, какие события должны + подвергаться аудиту. Выражения содержат список классов событий, + с которыми интересующее нас событие будет сравниваться. Каждое + выражение имеет префикс, показывающий, нужно ли принять + или игнорировать найденное событие, и, возможно, показывающий, + интересуют ли нас успешные или неуспешные операции. Выражения + выбора рассматриваются слева направа, и два выражения + объединяются простым добавлением второго выражения к концу + первого.</para> - <para>Следующий список содержит все классы по умолчанию, + <para>Следующий список содержит классы по умолчанию, присутствующие в файле <filename>audit_class</filename>:</para> <itemizedlist> <listitem> - <para><option>all</option> - <literal>all</literal> - + <para><literal>all</literal> - <emphasis>all</emphasis> - Соответствует всем классам событий.</para> </listitem> <listitem> - <para><option>ad</option> - <literal>administrative</literal> + <para><literal>ad</literal> - <emphasis>administrative</emphasis> - Аудит административных действий, произошедших в системе.</para> </listitem> <listitem> - <para><option>ap</option> - <literal>application</literal> - + <para><literal>ap</literal> - <emphasis>application</emphasis> - Аудит события, вызванного каким-либо приложением.</para> </listitem> <listitem> - <para><option>cl</option> - <literal>file_close</literal> - - Аудит вызовов системной функции - <function>close</function>.</para> + <para><literal>cl</literal> - <emphasis>file close</emphasis> + - Аудит вызовов системной функции <function>close</function>.</para> </listitem> <listitem> - <para><option>ex</option> - <literal>exec</literal> - + <para><literal>ex</literal> - <emphasis>exec</emphasis> - Аудит запуска приложения. Аудит аргументов командной строки и переменных окружения контролируется через &man.audit.control.5; используя параметры <literal>argv</literal> и <literal>envv</literal> @@ -314,85 +339,85 @@ requirements. --> </listitem> <listitem> - <para><option>fa</option> - <literal>file_attr_acc</literal> - - Аудит доступа к атрибутам объектов и их изменению, - например через &man.stat.1;, &man.pathconf.2;, а + <para><literal>fa</literal> - <emphasis>file attribute access</emphasis> + - Аудит доступа к атрибутам объектов, + например &man.stat.1;, &man.pathconf.2;, а также подобных этим событий.</para> </listitem> <listitem> - <para><option>fc</option> - <literal>file_creation</literal> + <para><literal>fc</literal> - <emphasis>file create</emphasis> - Аудит событий, в результате которых создаются файлы.</para> </listitem> <listitem> - <para><option>fd</option> - <literal>file_deletion</literal> + <para><literal>fd</literal> - <emphasis>file delete</emphasis> - Аудит событий, в результате которых удаляются файлы.</para> </listitem> <listitem> - <para><option>fm</option> - <literal>file_attr_mod</literal> + <para><literal>fm</literal> - <emphasis>file attribute modify</emphasis> - Аудит событий, в результате которых изменяются атрибуты файлов, например, &man.chown.8;, &man.chflags.1;, &man.flock.2;.</para> </listitem> <listitem> - <para><option>fr</option> - <literal>file_read</literal> + <para><literal>fr</literal> - <emphasis>file read</emphasis> - Аудит событий, в результате которых происходит чтение данных, открываются файлы на чтение и т.п.</para> </listitem> <listitem> - <para><option>fw</option> - <literal>file_write</literal> - + <para><literal>fw</literal> - <emphasis>file write</emphasis> - - Аудит событий, в результате которых происходит - запись данных, изменение файлов и так далее.</para> + запись данных, запись или изменение файлов и так далее.</para> </listitem> <listitem> - <para><option>io</option> - <literal>ioctl</literal> - + <para><literal>io</literal> - <emphasis>ioctl</emphasis> - Аудит вызовов системной функции &man.ioctl.2;.</para> </listitem> <listitem> - <para><option>ip</option> - <literal>ipc</literal> - + <para><literal>ip</literal> - <emphasis>ipc</emphasis> - Аудит различных видов взаимодействия процессов, - включая создание не-именованных каналов (pipe) и + включая создание не-именованных каналов (POSIX pipe) и взаимодействие процессов в стиле System V <acronym>IPC</acronym>.</para> </listitem> <listitem> - <para><option>lo</option> - <literal>login_logout</literal> - - Аудит событий &man.login.1; и &man.logout.1;.</para> + <para><literal>lo</literal> - <emphasis>login_logout</emphasis> - + Аудит событий &man.login.1; и &man.logout.1;, + происходящих в системе.</para> </listitem> <listitem> - <para><option>na</option> - <literal>non_attrib</literal> - + <para><literal>na</literal> - <emphasis>non attributable</emphasis> - Аудит не-приписываемых событий.</para> </listitem> <listitem> - <para><option>no</option> - <literal>no_class</literal> - - Пустой класс, используется для отключения - аудита.</para> + <para><literal>no</literal> - <emphasis>invalid class</emphasis> - + Не соответствует никаким событиям аудита.</para> </listitem> <listitem> - <para><option>nt</option> - <literal>network</literal> - + <para><literal>nt</literal> - <emphasis>network</emphasis> - Аудит событий, связанных с сетевыми подключениями, например &man.connect.2; и &man.accept.2;.</para> </listitem> <listitem> - <para><option>ot</option> - <literal>other</literal> - - Аудит событий, не вошедших в другие классы.</para> + <para><literal>ot</literal> - <emphasis>other</emphasis> - + Аудит различных событий.</para> </listitem> <listitem> - <para><option>pc</option> - <literal>process</literal> - + <para><literal>pc</literal> - <emphasis>process</emphasis> - Аудит действий процессов, таких как &man.exec.3; и &man.exit.3;.</para> </listitem> @@ -402,40 +427,40 @@ requirements. --> файлов <filename>audit_class</filename> и <filename>audit_event</filename>.</para> - <para>Каждый класс комбинируется с префиксом, показывающим удачное - или неудачное завершение операции.</para> + <para>Каждый класс аудита комбинируется с префиксом, показывающим, + какие операции будут учитываться - удачные или неудачные, + а также то, включает ли данная запись аудит для данного + класса и типа, либо отключает его.</para> <itemizedlist> <listitem> <para><literal>[пустой префикс]</literal> - Аудит проводится как для - успешного, так и для ошибочного события. Например, просто - указание класса без префикса приведет к занесению события - в журнал при любом результате операции.</para> + успешного, так и для ошибочного события.</para> </listitem> <listitem> <para><literal>+</literal> - Аудит только успешных - событий.</para> + событий в данном классе.</para> </listitem> <listitem> <para><literal>-</literal> - Аудит только ошибочных - событий.</para> + событий в данном классе.</para> </listitem> <listitem> <para><literal>^</literal> - Отключение аудита как успешных, так и - ошибочных событий.</para> + ошибочных событий в данном классе.</para> </listitem> <listitem> - <para><literal>^-</literal> - Отключение аудита ошибочных - событий.</para> + <para><literal>^+</literal> - Отключение аудита успешных + событий в данном классе.</para> </listitem> <listitem> - <para><literal>^+</literal> - Включение аудита успешных - событий.</para> + <para><literal>^-</literal> - Отключение аудита ошибочных + событий в данном классе.</para> </listitem> </itemizedlist> @@ -454,16 +479,14 @@ requirements. --> изменения только в два конфигурационных файла системы аудита: <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 @@ -472,115 +495,120 @@ naflags:lo policy:cnt filesz:0</programlisting> - <para>Параметр <option>dir</option> указывает каталог, в - котором будет сохраняться журнал системы аудита. Как + <para>Запись <option>dir</option> используется для + установки одного или более каталогов, в + которых будет сохраняться журнал системы аудита. Если + указан более чем один каталог, то указанные каталоги + будут использоваться по очереди, по мере заполнения. Как правило, система аудита конфигурируется таким образом, что журнал аудита хранится на отдельном разделе, чтобы - предотвратить сбои в работе операционной системы, если - свободное месте на разделе системы аудита будет - исчерпано.</para> - - <para>Параметр <option>flags</option> используется для - установки глобальных опций. Значение этого параметра - <option>lo</option> настраивает аудит для всех событий - &man.login.1; и &man.logout.1;. Более подробный - пример:</para> - - <programlisting>dir:/var/audit -flags:lo,ad,-all,^-fa,^-fc,^-cl -minfree:20 -naflags:lo</programlisting> + предотвратить пересечение подсистемы аудита и остальных + подсистем в случае, если свободное месте на разделе + системы аудита будет исчерпано.</para> + + <para>Запись <option>flags</option> используется для + установки глобальной маски предварительного выбора + для приписываемых событий. В примере выше, будут подвергаться + аудиту как успешные, так и неудачные попытки входа в + систему и выхода из нее для всех пользователей</para> - <para>Такое значение параметра <option>flags</option> - приведет к аудиту всех событий &man.login.1; и - &man.logout.1;, всех административных событий, всех ошибочных - системных событий и, наконец, отключает аудит всех ошибочных - событий классов <option>fa</option>, <option>fc</option> и - <option>cl</option>. Несмотря на то, что параметр - <option>-all</option> указывает на необходимость аудита - всех системных событий, префикс <option>^-</option> отменяет - это поведение для всех последующих опций.</para> - - <para>Заметьте, что значения считываются слева направо. - Поэтому находящиеся справа значения переопределяют значения, - находящиеся слева.</para> - - <para>Параметр <option>minfree</option> определяет минимальное + <para>Запись <option>minfree</option> определяет минимальное значение свободного дискового пространства на разделе, в - который сохраняются файлы журналов аудита. Например, если - значение параметра <option>dir</option> установлено в - <filename>/var/audit</filename>, а параметр - <option>minfree</option> равен двадцати (20), то предупреждающее - сообщение будет выдано, когда раздел <filename>/var</filename> будет заполнен на - восемьдесят (80%) процентов.</para> - - <para>Параметр <option>naflags</option> определяет классы - аудита для не-приписываемых событий, то есть событий, - для которых не определён конкретный пользователь.</para> - + который сохраняются файлы журналов аудита. Когда данная + граница будет превышена, будет сгенерировано предупреждение. + Вышеприведенный пример устанавливает минимальное свободное + пространство в двадцать процентов.</para> + + <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> </sect3> <sect3 xml:id="audit-audituser"> <title>Файл <filename>audit_user</filename></title> - <para>Файл <filename>audit_user</filename> позволяет - администратору определить классы событий, аудит которых будет - производиться для каждого пользователя системы.</para> - - <para>По умолчанию файл <filename>audit_user</filename> - содержит:</para> - - <programlisting>root:lo:no -audit:fc:no</programlisting> - - <para>Обратите внимание: по умолчанию производится аудит всех - <command>login</command>/<command>logout</command> событий и - отключается аудит всех других событий для пользователя - <systemitem class="username">root</systemitem>. Эта конфигурация также включает - аудит всех событий, связанных с созданием файлов и отключает - аудит всех других событий для пользователя - <systemitem class="username">audit</systemitem>. Хотя использование системы - аудита не требует наличия в системе специального - пользователя, в некоторых конфигурациях, особенно - использующих <acronym>MAC</acronym> (Mandatory Access - Control), это может быть необходимо.</para> + <para>Администратор может определить дополнительные + требования к аудиту для конкретных пользователей + в файле <filename>audit_user</filename>. + Каждая строка конфигурирует аудит для пользователя + с использованием двух полей: первое поле + <literal>alwaysaudit</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> + является лишней, кроме того, события входа в систему и выхода + из системы будут подвергаться аудиту и для пользователя + <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> + <title>Администрирование подсистемы аудита</title> <sect2> <title>Просмотр журнала аудита</title> <para>Журнал аудита хранится в бинарном формате BSM, поэтому для его изменения и конвертации в текстовый формат понадобятся специальные - утилиты. Команда <command>praudit</command> преобразует журнал аудита - в текстовый формат; команда <command>auditreduce</command> может быть + утилиты. Команда &man.praudit.1; преобразует журнал аудита + в текстовый формат; команда &man.auditreduce.1; может быть использована для ротации и фильтрации журнала в целях анализа, - архивирования или распечатки. Команда <command>auditreduce</command> - поддерживает множество параметров выборки, включая типы событий, классы - событий, пользовательские события, дату и время событий и пути файлов, - к которым относятся события.</para> + архивирования или распечатки. Множество параметров выборки + поддерживаются командой &man.auditreduce.1;, включая типы + событий, классы событий, конкретного пользователя, дату и + время событий,а также пути файлов, к которым относятся события.</para> - <para>Например, утилита <command>praudit</command> выведет все содержимое + <para>Например, утилита &man.praudit.1; выведет все содержимое журнала аудита в текстовом формате:</para> <screen>&prompt.root; <userinput>praudit /var/audit/AUDITFILE</userinput></screen> - <para>В данном примере <replaceable>AUDITFILE</replaceable> - журнал, + <para>В данном примере <filename>AUDITFILE</filename> - журнал, который будет выведен в текстовом формате.</para> <para>Журнал аудита состоит из серии записей, которые, в свою - очередь состоят из элементов. Эти элементы команда - <command>praudit</command> выводит последовательно - по одному на строку. - Каждый элемент имеет специфический тип, например - <literal>заголовок</literal> (header) содержит заголовок pfgbcb, a + очередь состоят из элементов, которые команда &man.praudit.1; + выводит последовательно - по одному на строку. Каждый элемент + имеет специфический тип, например + <literal>заголовок</literal> (header) содержит заголовок записи, a <literal>путь</literal> (path) - путь к файлу, к которому относится запись. - lookup. Следующий пример показывает запись для события выполнения - (execve):</para> + Следующий пример показывает запись для события <literal>execve</literal>:</para> <programlisting>header,133,10,execve(2),0,Mon Sep 25 15:58:03 2006, + 384 msec exec arg,finger,doug @@ -590,27 +618,33 @@ subject,robert,root,wheel,root,wheel,384 return,success,0 trailer,133</programlisting> - <para>Эта запись является результатом успешного выполнения системного + <para>Эта запись отражает результат успешного выполнения системного вызова <literal>execve</literal>, который стал результатом выполнения - команды <literal>finger doug</literal>. Элемент <literal>exec</literal> содержит и - команду, которую оболочка передала ядру, и ее аргументы. Элемент + команды <literal>finger doug</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) описывает успешное + описывает исполняемый файл, и, в частности, режим файла, что + можно использовать для определения, использовало ли приложение + setuid. Элемент <literal>субъект</literal> (subject) описывает процесс, вызвавший + и сохраняет его в виде ряда значений, представляющих собой + ID аудируемого пользователя, исполняющие (effective) UID и GID, + реальные ID пользователя и группы, идентификатор процесса, + идентификатор сессии, порт и адрес, с которого был осуществлен + вход в систему. Обратите внимание - идентификатор аудируемого + пользователя и реальный идентификатор пользователя отличаются: + это значит, что пользователь <systemitem class="username">robert</systemitem> повысил + привилегии до пользователя <systemitem class="username">root</systemitem> перед + выполнением команды, но система аудита занесла его действия в + журнал используя изначальный идентификатор. Наконец, элемент + <literal>возврат</literal> (return) описывает успешное завершение операции с кодом завершения 0, а элемент <literal>trailer</literal> завершает запись.</para> + <para>Данные в формате <acronym>XML</acronym> также можно + вывести с помощью команды &man.praudit.1;, используя аргумент + <option>-x</option>.</para> + </sect2> <sect2> @@ -622,8 +656,8 @@ trailer,133</programlisting> <screen>&prompt.root; <userinput>auditreduce -u trhodes /var/audit/AUDITFILE | praudit</userinput></screen> - <para>Эта команда выделит все записи, относящиеся к пользователю - <systemitem class="username">trhodes</systemitem>, которые хранятся в файле + <para>Эта команда выделит все записи, относящиеся к + <systemitem class="username">trhodes</systemitem>, которые хранятся в <filename>AUDITFILE</filename>.</para> </sect2> @@ -631,50 +665,55 @@ trailer,133</programlisting> <title>Делегирование прав просмотра журнала</title> <para>Члены группы <systemitem class="groupname">audit</systemitem> имеют доступ на чтение - к журналу аудита, находящемуся в <filename>/var/audit</filename>; + к журналу аудита, находящемуся в + <filename>/var/audit</filename>; по умолчанию эта группа пуста, и только <systemitem class="username">root</systemitem> имеет к ним доступ. Для того, что бы передать пользователю права на чтение журнала, его необходимо добавить в группу <systemitem class="groupname">audit</systemitem>. Право на чтение журнала аудита позволяет получить множество - информации о поведении пользователей и процессов, что может привести к - раскрытию конфиденциальных данных. Поэтому, рекомендуется делегировать - права на чтение журнала аудита с большой осторожностью.</para> + информации о поведении пользователей и процессов, поэтому, + рекомендуется делегировать права на чтение журнала аудита + с большой осторожностью.</para> </sect2> <sect2> - <title>Мониторинг системы в реальном времени</title> + <title>Мониторинг системы в реальном времени с использованием потоков аудита</title> - <para>Потоки системы аудита - клонированные псевдо-устройства, - используя которые, приложения могут получать информацию о системных - событиях в реальном времени. В первую очередь, это должно - заинтересовать авторов программ для мониторинга и определения - вторжений в систему. Тем не менее, для администратора потоки - системы аудита могут стать удобным инструментом для мониторинга - в реальном времени без того, чтобы вдаваться в детали обеспечения - безопасности при передачи прав на чтение журнала аудита. Для того, - чтобы получить поток событий в реальном времени используйте + <para>Потоки системы аудита - клонированные псевдо-устройства в + файловой системе устройств, используя которые, приложения могут + получать информацию о системных событиях в реальном времени. + В первую очередь, это должно заинтересовать авторов программ + для мониторинга и определения вторжений в систему. Тем не + менее, для администратора потоки системы аудита могут стать + удобным инструментом для мониторинга в реальном времени без + проблем, свзяанных с правами файла аудита, и возможностью + процесса ротации, что приведет к обрыву потока событий. + Для того, чтобы получить поток событий в реальном времени используйте следующую команду:</para> <screen>&prompt.root; <userinput>praudit /dev/auditpipe</userinput></screen> - <para>По умолчанию, потоки доступны только пользователю <systemitem class="username">root</systemitem>. Чтобы - сделать их доступными членам группы <systemitem class="groupname">audit</systemitem> добавьте + <para>По умолчанию, потоки доступны только пользователю <systemitem class="username">root</systemitem>. + Чтобы сделать их доступными членам группы <systemitem class="groupname">audit</systemitem> добавьте правило <literal>devfs</literal> в файл <filename>devfs.rules</filename>:</para> <programlisting>add path 'auditpipe*' mode 0440 group audit</programlisting> - <para>Смотрите страницу справочника &man.devfs.rules.5; для более полной + <para>Смотрите &man.devfs.rules.5; для более полной информации о настройке файловой системы devfs.</para> <warning> <para>При неосторожном использовании возможно возникновение бесконечных циклов событий. Например, если аудиту подвергаются все операции - сетевого ввода-вывода, и команда <command>praudit</command> - запущена во время SSH-сессии, то любое событие породит вывод - сообщения, которое в свою очередь тоже будет событием и так до - бесконечности. Разумнее будет не запускать <command>praudit</command> - на потоке событий из сессии, которая детально журналируется.</para> + сетевого ввода-вывода, и команда &man.praudit.1; + запущена во время SSH-сессии, то будет сгенерирован + постоянный поток сообщений аудита, так как каждое событие + вызовет еще ондо событие, и так до бесконечности. + Разумнее будет запускать &man.praudit.1; + на устройстве потока только из сессий, в которых + нет большого аудита ввода-вывода, чтобы избежать такого + поведения.</para> </warning> </sect2> @@ -682,20 +721,20 @@ trailer,133</programlisting> <title>Ротация журнальных файлов аудита</title> <para>Журнал аудита пишется только ядром и управляется только демоном - аудита <application>auditd</application>. Администраторы не должны пытаться + аудита &man.auditd.8;. Администраторы не должны пытаться использовать &man.newsyslog.conf.5; или другие инструменты для прямой ротации логов. Вместо этого, для прекращения аудита, реконфигурации и ротации журнальных файлов должна использоваться - команда <command>audit</command>. Следующая команда приведет к + команда &man.audit.8;. Следующая команда приведет к созданию нового журнального файла и даст команду ядру переключиться на запись в этот файл. Протоколирование в старый файл будет прекращено, а - сам файл - переименован. Это рекомендованный способ ротации - журнальных файлов.</para> + сам файл - переименован, в результате чего с ним можно будет + работать администратору.</para> <screen>&prompt.root; <userinput>audit -n</userinput></screen> <warning> - <para>Если демон <application>auditd</application> не запущен, то эта команда + <para>Если &man.auditd.8; не запущен, то эта команда окончится неудачей и будет выведено сообщение об ошибке.</para> </warning> @@ -708,10 +747,10 @@ trailer,133</programlisting> <para>Изменения вступят в силу после сохранения файла <filename>/etc/crontab</filename>.</para> - <para>Автоматическая ротация журнальных файлов возможна при использовании - опции <option>filesz</option> в файле - &man.audit.control.5;, и описан в секции - "Формат конфигурационного файла".</para> + <para>Автоматическая ротация журнальных файлов на основании + их размера возможна при использовании опции <option>filesz</option> + в файле &man.audit.control.5;, и описана в разделе + "Формат конфигурационного файла" данной главы.</para> </sect2> <sect2> @@ -719,10 +758,10 @@ trailer,133</programlisting> <para>Поскольку журнальные файлы могут достигать очень больших размеров, может возникнуть необходимость сжимать их в целях хранения сразу же - после закрытия их демоном <command>auditd</command>. Для выполнения - определенных пользователем действий соответствующих разнообразным - событиям системы аудита, включая нормальное завершение работы системы - аудита и фильтрацию журнальных файлов, может быть использован скрипт + после закрытия их демоном аудита. Для выполнения + определенных пользователем действий, соответствующих разнообразным + событиям системы аудита, включая нормальное завершение журналов + аудита при их ротации, может быть использован скрипт <filename>audit_warn</filename>. Например, добавление следующих строк в файл <filename>audit_warn</filename> приведет к сжатию файла после его закрытия:</para> @@ -734,13 +773,12 @@ if [ "$1" = closefile ]; then gzip -9 $2 fi</programlisting> - <para>Примерами других действий могут быть, например, копирование файлов в место их - последующего хранения, удаление старых журнальных файлов, фильтрация - журнальных файлов для удаления ненужных записей. Скрипт - <filename>audit_warn</filename> будет запущен только только при - корректном закрытии журнала системой аудита и не запустится - для журнальных файлов, запись в которые была прекращена в - результате некорректного завершения.</para> + <para>Примерами других действий могут быть, например, копирование файлов + аудита на централизованный сервер, удаление старых журнальных файлов, + фильтрация журнальных файлов для удаления ненужных записей. Скрипт + будет запущен только только при корректном закрытии журнала системой + аудита и не запустится для журнальных файлов, запись в которые была + прекращена в результате некорректного завершения.</para> </sect2> </sect1> </chapter>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201404161712.s3GHCQH9029534>