Администраторы крупных организаций Exchange, где есть несколько администраторов, хорошо знают, что иногда довольно трудно отследить изменения, произведенные с любым конфигурационным объектом в Exchange, с пользовательскими настройками, группами распределения или контактами. Знание о том, какие производились изменения, и когда они производились, может значительно помочь при решении различных проблем. Например, оно будет полезно для выяснения, были ли какие-нибудь коннекторы перенастроены в недавнее время, или при решении проблем с маршрутизацией сообщений. Запись конфигурационных изменений также полезна для документирования, и может требоваться при решении вопросов юридического характера.
Посмотрите на Рисунок 1, где показаны свойства почтового ящика. Тут вы видите, что последнее изменение почтового ящика произошло 25 февраля 2010 в 21:18. Однако не сразу понятно, какие именно изменения происходили, и, что более важно, кто их произвел.
Рисунок 1: Измененные свойства объекта пользователя
В настоящем цикле статей мы изучим новую функцию в Exchange 2010, которая называется Administrator Audit Logging , и которая позволяет вам записывать различные команды Exchange Management Shell, выполненные с целью внести изменения в конфигурацию в организации Exchange. Функция Administrator audit logging отмечает тот факт, что команда запущена в Exchange Management Shell и, конечно, в консоли Exchange Management Console, которая сама запускает команды Exchange Management Shell. Кроме того, команды, запускаемые через Exchange Control Panel, также записываются.
А вот команды, начинающиеся на Get-, не вносятся в журнал. Примеры таких команд: Get-AcceptedDomain, Get-CASMailbox и т.д. Команды Get- не записываются, поскольку они не производят конфигурационных изменений.
Занесенные в журнал команды сохраняются как электронные сообщения в почтовом ящике, выбранном администратором Exchange. Поэтому важно, чтобы доступ к этому почтовому ящику был ограничен теми людьми, которым он необходим. Этот аспект функции administrator audit logging будет описан далее в этой статье.
Параметры функции Administrator Audit Logging
Настройку функции administrator audit logging можно провести с помощью команды Set-AdminAuditLogConfig и просмотреть с помощью команды Get-AdminAuditLogConfig. У команды Set-AdminAuditLogConfig есть много параметров, но самые важные ее параметры, о которых мы поговорим в этой статье, содержат 'log' в своих названиях. Так, мы можем воспользоваться командой Get-AdminAuditLogConfig и отправить результаты в format-list, выбрав показ только тех параметров, которые содержат log в своих именах. Для этого понадобится запустить следующую команду:
Get-AdminAuditLogConfig | fl *log*
Результат показан на Рисунке 2. Обратите внимание на то, что эта команда запускается при инсталляции Exchange 2010 по умолчанию, что означает, что показанные значения параметров являются значениями по умолчанию.
Рисунок 2: Результаты Get-AdminAuditLogConfig
Теперь повнимательнее рассмотрим эти 6 параметров.
- AdminAuditLogEnabled - Как видите, по умолчанию этот параметр установлен в false, то есть функция audit logging по умолчанию отключена. Установка этого параметра в true, следовательно, включит функцию administrator audit logging.
- TestCmdletLoggingEnabled -Этот параметр контролирует возможность записи команд типа Test-. По умолчанию эти команды не записываются. Вот примеры команд типа Test-: Test-OutlookWebServices, Test-ReplicationHealth и т.д.
- AdminAuditLogCmdlets -Параметр AdminAuditLogCmdlets показывает, какие команды будут записываться при включенной функции administrator audit logging. По умолчанию записываются все команды, что устанавливается с помощью символа *. Как можно менять этот параметр, будет показано далее в этой статье.
- AdminAuditLogParameters - У любой команды могут быть собственные параметры, и данный параметр определяет, будут ли параметры записываться или нет. По умолчанию записываются все параметры команд, что устанавливается с помощью символа *.. Аналогично параметру AdminAuditLogCmdlets, способ изменения данного параметра будет описан позднее в этой статье.
- AdminAuditLogAgeLimit - Этот параметр в данный момент не функционирует в Exchange 2010, но предполагается, что он будет определять длительность хранения записей в журнале. Это достаточно полезная возможность, так как, поскольку журнальные сообщения хранятся как письма в электронной почте, существует возможность того, что множество записей в большой организации Exchange приведет к заполнению почтового ящика. Опять же, мы поговорим об этом параметре позднее.
- AdminAuditLogMailbox - Этот параметр определяет, какой почтовый ящик будет использоваться для хранения журнала. Как вы видите на Рисунке 2, этот параметр пуст по умолчанию, но в процессе настройки функции его нужно будет заполнять.
Настройка Administrator Audit Logging
Перед включением функции administrator audit logging имеет смысл настроить необходимые параметры, например, имя почтового ящика для хранения журнальных сообщений, а также список команд и их параметров, которые будут записываться. Ведь мы не хотим, чтобы при включенной функции не было бы почтового ящика для принятия результатов или записывались бы ненужные нам команды.
Давайте сначала взглянем на настройку почтового ящика. Для соответствующей настройки журнала используется команда
Set-AdminAuditLogConfig с параметром AdminAuditLogMailbox.
В приводимом ниже примере SMTP-адрес auditlog@neilhobson.com - это адрес почтового ящика, который специально создан для хранения результатов работы функции administrator audit logging. Обратите внимание: выбранный для этой цели почтовый ящик должен существовать в той же организации Exchange. Команда для выполнения этого действия выглядит примерно так:
Set-AdminAuditLogConfig с параметром AdminAuditLogMailbox.
В приводимом ниже примере SMTP-адрес auditlog@neilhobson.com - это адрес почтового ящика, который специально создан для хранения результатов работы функции administrator audit logging. Обратите внимание: выбранный для этой цели почтовый ящик должен существовать в той же организации Exchange. Команда для выполнения этого действия выглядит примерно так:
Set-AdminAuditLogConfig 'AdminAuditLogMailbox auditlog@neilhobson.com
В случае успешного завершения после запуска этой команды не выводится никаких сообщений в Exchange Management Shell. Поэтому после запуска этой команды можно еще раз запустить команду
Get-AdminAuditLogConfig для проверки конфигурации (см. Рисунок 3).
Рисунок 3: Проверка настройки
Имена команд, вносимых в журнал
Как уже упоминалось ранее в этой статье, по умолчанию записываются все команды за исключением команд типа Get-. Чтобы изменить такую настройку, нужно воспользоваться параметром AdminAuditLogCmdlets. При этом можно использовать как индивидуальные команды, так и команды с символом подстановки. Например, чтобы записывать только команду Set-TransportConfig, нужно запустить такую строку:
Set-AdminAuditLogConfig 'AdminAuditLogCmdlets Set-TransportConfig
Аналогично, в качестве примера использования символа подстановки, можно записывать все команды, заканчивающиеся на ReceiveConnector при помощи следующей строки:
Set-AdminAuditLogConfig 'AdminAuditLogCmdlets *ReceiveConnector
Этой командой мы устанавливаем запись команд New-ReceiveConnector, Set-ReceiveConnector и Remove-ReceiveConnector. А для записи всех команд, содержащих Config в названии, нужно запустить следующую команду:
Set-AdminAuditLogConfig 'AdminAuditLogCmdlets *Config*
Конечно, вероятнее всего, потребуется записывать команды нескольких типов. Для этого каждый тип нужно указать в параметре AdminAuditLogCmdlets, разделив их запятыми. Например, чтобы записывать все команды, заканчивающиеся на ReceiveConnector и имеющие Config в названии, выполняется следующая команда:
Set-AdminAuditLogConfig 'AdminAuditLogCmdlets *ReceiveConnector, *Config*
Существует и возможность того, что понадобится заносить в журнал все команды после того, как настройки по умолчанию были сбиты. Для этого используется следующая команда:
Set-AdminAuditLogConfig 'AdminAuditLogCmdlets *
Однако занесение в журнал всех команд в большой организации Exchange очевидно приведет к появлению множества записей, и, следовательно, нужно аккуратно обращаться с этой возможностью.
Заключение
Этим мы завершаем первую часть нашей статьи о функции administrator audit logging в Exchange 2010. В этой статье было описано, что представляет собой функция administrator audit logging, и начато рассмотрение различных возможных параметров. Во второй части мы завершим наш обзор настроек, после чего изучим рабочий пример использовании функции.
Это вторая и заключительная часть цикла статей о функции журналов аудита администратора Exchange 2010, позволяющая проводить аудит команд, выполняемых в организации Exchange. В первой части мы начали подробно рассматривать параметры, которые можно использовать для настройки этой функции, соответственно в этой части мы закончим рассмотрение данной области, а затем перейдем к рассмотрению функции журналов администраторского аудита в действии.
Запись в журнал параметров команды
Подобно тому, как мы настраивали то, названия каких команд будут записываться в журнал, можно настраивать то, какие параметры будут записываться в него. Например, New-ReceiveConnector и Set-ReceiveConnector команды имеют параметр RemoteIPRanges. Поэтому чтобы записывать в журнал все команды, использующие параметр RemoteIPRanges, нужно выполнить следующую команду:
Set-AdminAuditLogConfig 'AdminAuditLogParameters RemoteIPRanges
Для записи в журнал всех параметров, содержащих в своем названии Database нужно выполнить следующую команду:
Set-AdminAuditLogConfig 'AdminAuditLogParameters *Database*
Как и в случае с AdminAuditLogCmdlets параметром, можно указывать несколько различных типов параметров, которые будут записываться в журнал, путем указания каждого параметра, разделяя их запятой. Например, для записи обоих параметров команды, которые имеют в своем названии RemoteIPRanges или Database, нужно выполнить следующую команду:
Set-AdminAuditLogConfig 'AdminAuditLogParameters RemoteIPRanges, *Database*
Конечно высока вероятность того, что все параметры команды нужно записывать в журнал, для чего нужно будет выполнить следующую команду, если стандартная конфигурация уже была изменена:
Set-AdminAuditLogConfig 'AdminAuditLogParameters *
Взаимодействие между AdminAuditLogCmdlets параметром и AdminAuditLogParameters параметров довольно простое для понимания. Если администратор выполняет команду, соответствующую одной из команд, перечисленных в списке параметра AdminAuditLogCmdlets, то список параметров, перечисленных в AdminAuditLogParameters, будет проверяться. Если один или несколько параметров совпадают, выполнение команды записывается в журнал. Формат записи команды в журнал мы рассмотрим чуть позже в этой статье.
Запись в журнал команд Test
Для записи или исключения из записи в журнал команд, начинающихся на Test-, таких как Test-OutlookWebServices и Test-ReplicationHealth, нужно просто задать TestCmdletLoggingEnabled параметру команды Set-AdminAuditLogConfig значение true или false. Следующие два примера показывают обе команды:
Set-AdminAuditLogConfig 'TestCmdletLoggingEnabled $true Set-AdminAuditLogConfig 'TestCmdletLoggingEnabled $false
Рабочий пример
Давайте начнем с просмотра того, что произойдет, если мы настроим среду Exchange на запись всех команд и параметров в журнал. В этом примере мы настроили одного пользователя, Neil, на возможность открывать AuditLog почтовый ящик, который будет настроен на получение содержимого журналов администраторского аудита. Сначала нужно создать сценарий конфигурации Exchange Management Shell, подобный тому, что приведен ниже. Понятно, что вам нужно изменить имя почтового ящика для журналов аудита сauditlog@neilhobson.com на SMTP адрес почтового ящика для получения журналов аудита в вашей организации Exchange.
# ConfigAuditLog.ps1 # Configures administrator audit logging settings ' log all cmdlets and cmdlet parameters Set-AdminAuditLogConfig 'AdminAuditLogCmdlets * Set-AdminAuditLogConfig 'AdminAuditLogParameters * Set-AdminAuditLogConfig 'AdminAuditLogMailbox auditlog@neilhobson.com Set-AdminAuditLogConfig 'AdminAuditLogEnabled $true Set-AdminAuditLogConfig 'TestCmdletLoggingEnabled $true
В качестве следующего шага нужно задать пользователю Neil разрешения доступа, чтобы он смог открывать почтовый ящик AuditLog. Хотя это можно сделать из консоли управления Exchange Management Console, данная статья посвящена работе с оболочкой Exchange Management Shell, так как функция журналов администраторского аудита может быть настроена только в Exchange Management Shell. Для предоставления разрешений полного доступа пользователю Neil к почтовому ящику AuditLog выполняем следующую команду:
Add-MailboxPermission 'Identity AuditLog 'User Neil 'AccessRights FullAccess 'InheritanceType all
В команде Add-MailboxPermission параметр 'Identity используется для указания имени почтового ящика, к которому нужно предоставить доступ, а параметр 'User используется для указания имени пользователя, которому предоставляется такой доступ. Параметр'AccessRights указывает права, которые будут предоставлены пользователю, и в нашем случае это право полного доступа FullAccess. Наконец, параметр 'InheritanceType определяет, будут ли наследоваться разрешения.
Результаты команды показаны на рисунке 4.
Рисунок 4: Предоставление полного доступа к почтовому ящику AuditLog
После выполнения команды Add-MailboxPermission пользователь Neil будет иметь полный доступ к ящику AuditLog. На рисунке 5 видно, что почтовый ящик был открыт в Outlook Web App. Обратите внимание, что выполнение команды Add-MailboxPermission было записано в журнал, так как она выполнялась после включения журнала администраторского аудита.
Рисунок 5: Вход в почтовый ящик AuditLog
Содержимое журналов аудита
Теперь давайте рассмотрим сценарий, в котором администратор Exchange по имени Rob вносит изменения в настройки почтового ящика для пользователя Mark. Используя консоль управления Exchange Management Console, Rob решает изменить квоты размера почтового ящика пользователя Mark с параметра по умолчанию Использовать умолчания базы данных для почтового ящика (Use mailbox database defaults) на собственные параметры, которые должны выдавать предупреждение при 10240КБ и запрещать отправку новых сообщений по достижении 20480КБ. Эти параметры показаны на рисунке 6.
Рисунок 6: Настройка пользовательских квот почтового ящика
Одной из новых функций в консоли управления Exchange 2010 является то, что команда Exchange Management Shell, которая будет выполняться при внесении изменений в конфигурацию, может отображаться в консоли Exchange Management Console. Как только Rob нажимает кнопку OK, рисунок 6, окно свойств для Mark будет отображено, как показано на рисунке 7. На рисунке 7 видно, что есть значок оболочки управления в нижнем левом углу.
Рисунок 7: Значок Exchange Management Shell
Если Rob нажмет на этот значок, у него откроется отдельное окно Exchange Management Shell Command, отображающее подробную информацию о команде Exchange Management Shell, которая будет использоваться для настройки квот почтового ящика. Эта команда показана на рисунке 8. Мы можем посмотреть эту команду сейчас, а позже убедиться, что именно эта команда была записана в журнал.
Рисунок 8: Выполнение команды Set-Mailbox
Теперь давайте подробнее рассмотрим записи журнала администраторского аудита, который появляется в почтовом ящике AuditLog в результате внесения изменений в настройку пользователем Rob. Вы видите письмо, которое записано в почтовом ящике AuditLog, на рисунке 9.
Рисунок 9: Запись журнала аудита о команде Set-Mailbox
На рисунке 9 видно, что тема письма NEILHOBSON\rob : Set-Mailbox, которая отчетливо показывает имя пользователя, создавшего запись в журнале в результате выполнения команды, а также название выполненной команды. Давайте посмотрим на каждый параметр в теле письма.
- Cmdlet Name. Очевидно, что это название команды, выполненной пользователем.
- Object Modified. Здесь показаны подробности объекта, который был изменен командой, в нашем примере это объект пользователя.
- Parameter. Вы уже видели на рисунке 8, что команда Set-Mailbox выполнялась с 4 различными параметрами, а именно Identity,UseDatabaseQuotaDefaults, IssueWarningQuota и ProhibitSendQuota. Эти 4 параметра записаны здесь в записи журнала.
- Property Modified. Это поле указывает, какие свойства объекта были изменены, а, следовательно, оно идентично полю Рarameter. К тому же, одно из полей Property Modified говорит о том, что объект был изменен.
- Caller. Поле Caller указывает имя пользователя, который на самом деле выполнил команду.
- Succeeded. Здесь показано, было ли выполнение команды успешным, (возвращается со значением true), или безуспешным (возвращается со значением false).
- Error. Если команда, выполняемая администратором, была неуспешной, сообщение об ошибке будет показано здесь.
- Run Date. Это поле показывает дату и время в формате Coordinated Universal Time (UTC), когда администратор выполнил команду.
Заключение
На этом завершим данный цикл статей о функции журналов администраторского аудита в Exchange 2010. Нет сомнений, что это будет весьма полезная функция для тех организаций, которым нужно отслеживать изменения конфигурации, вносимые в их инфраструктуре Exchange 2010, по разным причинам.
Комментариев нет:
Отправить комментарий