среда, 30 июля 2008 г.

Как дать пользователю право на чтение Event Log?

Очередная относительно типовая задача: нужно дать пользователю право на чтение Event Log, при этом, не дай бог, права эти нужны на котроллере домена или на другом критичном для безопасности сервере, и предоставить полномочий больше чем нужно мы не желаем ни в какую. А, если мне память не изменяет, для удаленного просмотра логов пользователь должен быть как минимум power user (поправьте меня, если я не прав). GUI по моим данным для такой задачи нет, CLI тоже, так что остается старыми дедовскими методами, то есть ручками. Что нам для этого нужно? На самом деле произвести достаточно простые процедуры:

1) определить SID пользователя, которому мы желаем предоставить права. Есть утилиты навроде user2sid, а я пользуюсь PowerShell. Например, и

Get-User "Vasya Pupkin" select name, sid

и

Get-QADUser "Vasya Pupkin" select name, sid

дадут нам табличку из имен подходящих учетных записей и их SID'ов. Наливай да пей Выделяй и вставляй.

2) Поправить реестр.

----------------------------------------------------------------------------------

Предупреждение. При неправильном использовании редактора реестра могут возникнуть серьезные неполадки, требующие переустановки операционной системы. Корпорация Майкрософт не несет ответственности за неправильное использование редактора реестра. При изменении реестра полагайтесь на свой опыт и знания.

----------------------------------------------------------------------------------

Собственно, нужно найти ветку

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\

(предполагая, что мы даем права на application log) и найти там ключ CustomSD. Он выглядит приблизительно вот так:

O:BAG:SYD:(D;;0xf0007;;;AN)(D;;0xf0007;;;BG)(A;;0xf0007;;;SY)(A;;0x7;;;BA)(A;;0x7;;;SO)(A;;0x3;;;IU)(A;;0x3;;;SU)(A;;0x3;;;S-1-5-3)

К этому ключу нужно добавить (повторяю, добавить, не заменить его!!!) запись вида (A;;0x1;;;<SID>), где SID это как раз то значение, которое мы выяснили на первом шагу.

Если этого ключа не существует, то можно его создать, тогда он будет выглядеть так:

O:BAG:SYD:(A;;0x1;;;<SID>)

Вот такая вот ерундовина. А об этих страшных буквах (D;;0xf0007;;;BG) я напишу чуть позже - понимать, что они означают, может быть полезным навыком.

P.S. Работает как на Windows 2003, так и на Windows 2008.

11 комментариев:

Анонимный комментирует...

Можно ли просто дать право на чтение evt-файлов?

Alexander Trofimov комментирует...

Увы, не поможет. Ну по крайней мере, если мы говорим об одном и том же - об удаленном доступе. =)
Но я на всякий случай еще раз попробую.

Alexander Trofimov комментирует...

Неа, не помогает. Пока только как я написал. =)

Анонимный комментирует...
Этот комментарий был удален администратором блога.
Анонимный комментирует...

Да, я тоже попробовал.
Задачка интересная.
Кстати, хороший вышел бы метод обучения администрированию - на таких вот задачах.

Alexander Trofimov комментирует...

Ну вот я и учусь... А по поводу организации обучения... Таки задачи придумать-то не всегда получается, они просто сами появляются из ниоткуда =)

Анонимный комментирует...

кстати говоря, в висте/сервере 2008 это значение можно (и нужно) задавать не в реестре, а через политику: http://blogs.technet.com/askds/archive/2008/08/12/event-logging-policy-settings-in-windows-server-2008-and-vista.aspx

Alexander Trofimov комментирует...

Да, как раз сегодня прочитал =)
Кто ж знал-то? =)

kasha комментирует...

В Windows 2008 Server появилась группа Event Log Readers :-)

Alexander Trofimov комментирует...

Павел, спасибо большое за замечание: нужно было, разумеется, упомянуть это в статье. И упомянул бы, если бы был в курсе =)))
Есть только маленькое но:
1) моя статья рассчитана и на работу с 2003
2) включение в данную группу позволяет пользователю читать все логи. Даже Security. А это в большинстве случаев совсем не то, что нужно, увы.
Но еще раз - большое спасибо =)

Анонимный комментирует...

способ для win2003 через групповую политику (с учетом этой же статьи):

http://support.microsoft.com/kb/323076
(Настройка безопасности журнала событий локально или при помощи групповой политики в Windows Server 2003)