Главная Exchange/UC, Без рубрики, Новое Аудит действий администратора в Microsoft Exchange 2010
  • Аудит действий администратора в Microsoft Exchange 2010

    imageЗачастую, обслуживанием сервера занимаются несколько администраторов, и руководителю бывает трудно отследить их действия. Выяснить, кто и какие настройки выполнял на сервере поможет функция ведения журнала аудита администратора.

    В сфере ИТ администратор – это тот человек, который обладает полным набором прав по отношению к вверенным ему серверам. Это означает, что он может изменять конфигурацию системы практически не контролируемо. У каждого сервера есть механизмы, позволяющие ограничить возможности рядовых администраторов, но, тем не менее, в любом случае остается человек, который обладает всей полнотой власти.

    Введение

    Делегирования прав в Microsoft Exchange Server 2010 реализовано на базе механизма Role Based Access Control (RBAC). В больших организациях RBAC значительно упрощает процесс разграничения полномочий администраторов, но не решает одной, серьезной проблемы — контроля над их действиями. Как быть, когда одни и те же рычаги управления делегированы сразу нескольким лицам? Как выявить администратора, некорректные действия которого привели к остановке сервиса, в том случае, когда ни кто не хочет брать на себя ответственность? Эти вопросы актуальны для больших и средних компаний и ранее их решение было не простой задачей.

    Агенты расширения командлетов

    С приходом Microsoft Exchange Server 2010 ситуация значительно изменилась. В эту версию сервера был включен функционал агентов расширения командлетов (Cmdlet Extension Agents), о них мы уже начали разговор в прошлой статье.

    Агенты расширения командлетов – это компоненты Microsoft Exchange Server 2010, которые активируются в момент выполнения определенного командлета. Учитывая тот факт, что начиная с версии Microsoft Exchange Server 2007, абсолютно все действия, выполняемые в графической консоли (Exchange Management Console), командной консоли (Exchange Management Shell), либо в панели управления Exchange (Exchange Control Panel), реализуются через запуск определенных командлетов, то это именно тот функционал, который поможет произвести журналирование (аудит) выполняемых действий.

    Примечание: Агенты расширения командлетов доступны во всех ролях Microsoft Exchange 2010, кроме роли пограничного транспорта (Edge) и не доступны в любых других продуктах компании Microsoft.

    В Microsoft Exchange 2010 интегрирован ряд агентов расширения, список и состояние активации которых можно получить при помощи командлета Get-CmdletExtentionAgent:

    Get-CmdletExtentionAgent | ft Name, Priority, Enabled

    Один из них – Admin Audit Log Agent, именно он реализует функционал ведения аудита действий администратора на серверах Microsoft Exchange 2010.

    Admin Audit Log Agent

    По умолчанию агент Admin Audit Log Agent включен, однако сам аудит — выключен. Активировать функцию журналирования можно командой:

    Set-AdminAuditLogConfig –AdminAuditLogEnabled $True

    Данная настройка реплицируется на все сервера организации согласно расписанию репликации, следовательно, должно пройти некоторое время до тех пор, пока аудит будет активирована на всех серверах.

    Нужно знать, что включение аудита ни как не влияет на сам агент Admin Audit Log Agent, соответственно, если ранее агент был отключен, то активация только функции ведения журнала аудита администратора не принесет ожидаемого результата. Настройка параметров аудита

    После того, как функция аудита активирована, необходимо произвести её настройку. Но для начала, следует выяснить текущие параметры. Вывести текущую конфигурацию нам поможет команда:

    Get-AdminAuditLogConfig | fl

    1

    Рис. 1. Текущие настройки ведения аудита

    Из вывода команды видно, что по умолчанию ведение журнала аудита администратора включено для всех командлетов (AdminAuditLogCmdlets) и для всех параметров (AdminAuditLogParameters), т.к. соответствующие значения равны звездочке (*).

    Примечание: По умолчанию история использования Get-, Search– и Test-командлетов не сохраняется, поскольку они не выполняют ни каких изменений в конфигурации сервера, а лишь производят чтение данных.

    Примечание: Ведение журнала аудита для Test-коммадлетов можно активировать командой Set-AdminAuditLogConfig -TestCmdletLoggingEnabled $True

    По умолчанию журнал аудита содержит много лишней информации, которая затрудняет его анализ. С помощью командлета SetAdminAuditLogConfig можно указать набор командлетов (AdminAuditLogCmdlets) и параметров (AdminAuditLogParameters), для которых будет вестись аудит. Список командлетов и параметров необходимо перечислить через запятую, а для обозначения набора командлетов допускается использовать в качестве знака подстановки звездочку (*). Например, для наблюдения только за операциями над почтовыми ящиками пользователей, можно использовать команду:

    Set-AdminAuditLogConfig -AdminAuditLogCmdlets “*-Mailbox”

    Хранение данных аудита

    После конфигурирования параметров ведения журнала аудита администратора, встает вопрос анализа собранных данных.

    Функция ведения журнала аудита администратора на серверах Microsoft Exchange 2010 сохраняет записи журнала в специальный почтовый ящик в виде отдельных сообщений. Сообщения имеют заголовок и текстовую часть. В заголовке отображается имя пользователя, и наименование запущенного командлета. В текстовой части содержится подробная информация о работе команды: результат её выполнения, набор свойств, которые были обработаны и др.. (рис.2).

    2

    Рис. 2. Пример записи в ящике для аудита

    В Microsoft Exchange Server 2010 RTM администраторы вынуждены вручную создавать этот почтовый ящик на сервере и указывать его в качестве ящика для ведения журнала аудита с помощью командлета Set-AdminAuditLogConfig:

    Set-AdminAuditLogConfig –AdminAuditLogMailbox “audit@test.local”

    В версии Microsoft Exchange Server 2010 SP1 такая необходимость отпала. Здесь для ведения журнала аудита администратора используется выделенный системный почтовый ящик.

    Примечание: Важно знать, что в Microsoft Exchange Server 2010 SP1 выделенный системный почтовый ящик невозможно изменять или настраивать.

    Важным параметром аудита является срок хранения записей. По умолчанию он составляет 90 дней. После истечения указанного периода соответствующие данные из журнала автоматически удаляются. Срок хранения данных в журнале можно изменить с помощью командлета Set-AdminAuditLogConfig . В приведенном примере значение срока хранения данных увеличивается до полугода (180 дней):

    Set-AdminAuditLogConfig –AdminAuditLogLimit 180.00:00:00

    В результате проделанных выше манипуляций, попытка выполнения любой команды в организации Exchange приведет к запуску агента расширения командлетов Admin Audit Log Agent, который проверит выполняемые командлеты и их параметры на предмет наличия в свойствах AdminAuditLogCmdlets и AdminAuditLogParameters. В случае совпадения он сгенерирует сообщение в заданном почтовом ящике, которое будет храниться 180 дней.

    Важно заметить, что для аудита используется единственный почтовый ящик. В случае его недоступности, попытка запуска командлетов на всех серверах Exchange в организации будет заблокирована. При этом администратор увидит ошибку 5000 от msExchange Management Application с соответствующим текстовым описанием.

    Примечание: Для дополнительного документирования своих действий, администратор искусственно может создать запись в журнале аудита, не выполняя ни каких командлетов, делается это следующим образом:

    Write-AdminAuditLog –Comment “Любой текстовый комментарий длиной до 500 символов”

    Анализ журналов аудита

    Настроить ведение журнала аудита администратора мало, необходимо также научиться его анализировать. Подход к анализу журнала аудита в Microsoft Exchange 2010 для версий RTM и SP1 имеет значительные отличия.

    Анализ журнала аудита в Exchange 2010 RTM

    В версии сервера Microsoft Exchange 2010 RTM средств для анализа собранных данных не предусмотрено. Администратор должен предоставить себе право доступа к почтовому ящику, указанному в качестве ящика для ведения журнала аудита, и далее осуществлять поиск в нем, используя стандартные механизмы Microsoft Outlook, либо Outlook Web App.

    Для предоставления прав доступа к почтовому ящику необходимо воспользоваться графической консолью управления Microsoft Exchange 2010, активировав свойство Управление разрешением на полный доступ. (рис.3)

    3

    Рис. 3. Добавление права доступа к почтовому ящику через EMC

    Анализ журнала аудита в Exchange 2010 SP1

    С выходом первого сервис пака для Microsoft Exchange 2010 подход к вопросу анализа журнала аудита изменился. Разработчики обеспечили два механизма анализа собранных данных:

    • · Набор специализированных отчетов, доступ к которым осуществляется через Exchange Control Panel (ECP) (рис.4);
    • · Командлет SearchAdminAuditLog для генерации своих собственных отчетов по средствам PowerShell.

    Для создания отчета с помощью консоли управления Exchange (ECP) необходимо открыть нужный шаблон, указать диапазон дат для поиска, условия поиска, запустить процесс генерации отчета, после чего просто его открыть.

    Примечание: Нужно знать, что для генерации подобных отчетов используется командлет SearchAdminAuditLog, работу с которым мы разберем далее немного подробнее.

    4

    Рис. 4. Отчеты, доступные через ECP

    Зачастую бывает не достаточно шаблонов предложенных разработчиками. В такой ситуации вам поможет командная консоль управления Exchange (EMS), в которой при помощи командлета SearchAdminAuditLog вы сможете реализовать практически любую необходимую логику. Подробное описание командлета SearchAdminAuditLog и его параметров, можно найти в библиотеке TechNet`a.

    Рассмотрим несколько практических примеров (рис. 5).

    Пример 1. Получение списка всех успешных действий, выполненных определенным пользователем.

    Search-AdminAuditLog –UserIds Administrator -IsSuccess $True | FT RunDate, Caller, CmdletName

    Примечание: Можно указать нескольких пользователей, перечислив их через запятую в параметре UserIds.

    Пример 2. Выполнить поиск администраторов, которые создавали почтовые ящики пользователей в диапазоне дат 01.01.2011 – 30.01.2011. Показать какие почтовые ящики были созданы.

    Search-AdminAuditLog -Cmdlets New-Mailbox -StartDate 01/01/2011 -EndDate 01/30/2011 -IsSuccess $true

    Пример 3. Показать все командлеты, выполненные на сервере. Отсортировать в алфавитном порядке.

    Search-AdminAuditLog | Sort CmdletName | Group CmdletName | FT Count, Name –AutoSize

    5

    Рис. 5. Иллюстрация генерации отчетов в EMS

    Созданные подобным образом отчеты достаточно информативны для администратора, но мало полезны с точки зрения руководителя. Отчет будет выглядеть наглядно, если его представить руководителю в HTML-формате (подробнее здесь). При этом к отчету можно будет применить различное текстовое форматирование и цветовые шаблоны.

    Кроме этого существует возможность автоматически отправить отчет по электронной почте, для этого используется командлет New-AdminAuditLogSearch.

    Командлет New-AdminAuditLogSearch выполняет поиск в журнале аудита подобно командлету Search-AdminAuditLog. Однако вместо вывода результатов поиска в командную консоль командлет New-AdminAuditLogSearch отправляет результаты поиска по электронной почте указанному получателю. Результаты поиска включаются в сообщение электронной почты в качестве XML-вложения. Подробнее о его использовании прочитайте в библиотеке TechNet’а.

    Заключение

    Ведения журнала аудита поможет администраторам сервера Microsoft Exchange 2010 расследовать произошедшие инциденты и выявить виновного. Однако, это не означает, что журналирование поможет избежать ошибочных действий администраторов. Гораздо правильнее будет грамотно настроить политику делегирования прав, с учетом того, чтобы серьезные настройки мог выполнять только высококвалифицированный персонал.

    Алексей Богомолов (Alexx)
    http://alexxhost.ru

    Статья опубликована в журнале “Системный администратор”

Комментарии

  1. Я бы посоветовал продукт Quest ChangeAuditor for Exchange…

  2. Влад, уточните сколько он стоит =)

  3. На контору в 1000 ящиков – $14,400.00

  4. Проблема в том, что в угоду простоте реализации RBAC, очень большие привилегии в AD получили компьютеры (см. разрешения безопасности, предоставленные группе безопасности “Exchange Windows Permissions”), исполняющие Exch2010. Учетные записи серверов Exchange2010 стали своеобразными суперпользователями, исполняющими команды в своем контексте безопасности, а не контексте “вызывающего” команду пользователя. Так что аудит включать обязательно! Более того на любых серверах Exchange2010 права локального алминистратора (или расширять привилегии с тем, чтобы администратор мог, например, выполнить задание от имени системы) можно предоставлять лишь особо доверенным особям, как минимум тем, кому Вы “не боитесь” предоставить полномочия OrgAdmins. Так вот. 😉