Аудит доступа к файлам и папкам в Windows Server 2008 R2 | Windows для системных администраторов

Аудит доступа к файлам и папкам в Windows Server 2008 R2

Для ведения аудита доступа к файлам и папкам в Windows Server 2008 R2, необходимо включить функцию аудита, а также указать папки и файлы, доступ к которым необходимо фиксировать. После настройки аудита, в журнале сервера будет содержаться информация о доступе и других событиях на выбранные файлы и папки. Стоит заметить, что аудит доступа к файлам и папкам может вестись только на томах с файловой системой NTFS.

Включаем аудит на объекты файловой системы в Windows Server 2008 R2


Аудит доступа на файлы и папки включается и отключается при помощи групповых политик: доменный политик для домена Active Directory либо локальных политик безопасности для отдельно стоящих серверов. Чтобы включить аудит на отдельном сервере, необходимо открыть консоль управления локальный политик Start -> All Programs -> Administrative Tools -> Local Security Policy. В консоли локальной политики нужно развернуть дерево локальный политик (Local Policies) и выбрать элемент Audit Policy.

windows server 2008 r2 configuring local audit policy


В правой панели нужно выбрать элемент Audit Object Access и в появившемся окне указать какие типы событий доступа к файлам и папкам нужно фиксировать (успешный/ неудачный доступ):

setting the audit object properties to enable file and folder access tracking
После выбора необходимой настройки нужно нажать OK.

Выбор файлов и папок, доступ к которым будет фиксироваться


После того, как активирован аудит доступа к файлам и папкам, необходимо выбрать конкретные объекты файловой системы, аудит доступа к которым будет вестись. Так же как и разрешения NTFS, настройки аудита по-умолчанию наследуются на все дочерние объекты (если не настроено иначе). Точно так же, как при назначении прав доступа на файлы и папки, наследование настроек аудита может быть включено как для всех, так и только  для выбранных объектов.

Чтобы настроить аудит для конкретной папки/файла, необходимо щелкнуть по нему правой кнопкой мыши и выбрать пункт Свойства (Properties).  В окне свойств нужно перейти на вкладку Безопасность (Security) и нажать кнопку Advanced. В окне расширенных настроек безопасности (Advanced Security Settings) перейдем на вкладку Аудит (Auditing). Настройка аудита, естественно, требует прав администратора. На данном этапе в окне аудита будет отображен список пользователей и групп, для которых включен аудит на данный ресурс:

the file and folder auditing entries dialog

Чтобы добавить пользователей или группы, доступ которых к данному объекту будет фиксироваться, необходимо нажать кнопку Add… и указать имена этих пользователей/групп (либо указать Everyone – для аудита доступа всех пользователей):

configuring file and folder auditing for a specific user or group

Далее нужно указать конкретные настройки аудита (такие события, как доступ, запись, удаление, создание файлов и папок и т.д.). После чего нажимаем OK.

Сразу после применения данных настроек в системном журнале Security (найти его можно в оснастке Computer Management -> Events Viewer), при каждом доступе к объектам, для которых включен аудит,  будут появляться соответствующие записи.

Альтернативно события можно просмотреть и отфильтровать с помощью командлета PowerShell —  Get-EventLog Например, чтобы вывести все события с eventid 4660, выполним комманду:

  Get-EventLog security | ?{$_.eventid -eq 4660}
Совет. Возможно назначить на любые события в журнале Windows определенные действия, например отправку электронного письма или выполнение скрипта. Как это настраивается описано в статье: Мониторинг и оповещение о событиях в журналах Windows

UPD от 06.08.2012 (Благодарим комментатора Roman).

В Windows 2008/Windows 7 для управления аудитом появилась специальная утилита auditpol.  Полный список типов объектов, на который можно включить аудит можно увидеть при помощи команды:

auditpol /list /subcategory:*

Как вы видите эти объекты разделены на 9 категорий:

  • System
  • Logon/Logoff
  • Object Access
  • Privilege Use
  • Detailed Tracking
  • Policy Change
  • Account Management
  • DS Access
  • Account Logon

И каждая из них, соответственно, делиться на подкатегории. Например, категория аудита  Object Access включает в себя подкатегорию File System и чтобы включить аудит для объектов файловой системы на компьютере выполним команду:

auditpol /set /subcategory:"File System" /failure:enable /success:enable

Отключается он соответственно командой:

auditpol /set /subcategory:"File System" /failure:disable /success:disable

Т.е. если отключить аудит ненужных подкатегорий, можно существенно сократить объем журнала и количества ненужных событий.

После того, как активирован аудит доступа к файлам и папкам, нужно указать конкретные объекты которые будем контролировать (в свойствах файлов и папок). Имейте в виду, что по-умолчанию настройки аудита наследуются на все дочерние объекты (если не указано иное ).

Все собранные события можно сохранять во внешнюю БД для ведения истории. Пример реализации системы:  Простая система аудита удаления файлов и папок для Windows Server.

Еще записи по теме: Windows Server 2008
Понравилась статья? Скажи спасибо и расскажи друзьям!
Назад:
Вперед:

Комментариев: 15

Оставить комментарий
  1. Alexander | 28.06.2011

    Интересная заметка, спасибо! Еще бы написали про то, как и чем эти логи потом парсить на предмет интересующих событий, таких например как попытка удалить Васей файлов из папки «важное» и пр. примеры.

    Ответить
  2. Андрей | 12.07.2011

    Скорее всего есть возможность читать EventLog. Через API по-любому есть такая возможность. В Visual Studio Есть такой одноимённый компонент, но я им ни разу не пользовался. Ну, а так или в сети искать, или в MSDN.

    Ответить
  3. Keo | 11.01.2012

    А насколько влияет включение аудита на производительность?

    Ответить
  4. itpro | 11.01.2012

    Производительность, естественно несколько снижается, т.к. теперь информация о всех операциях с файлами должна попасть в журнал.
    Естественно, для нескольких сотен — тысяч аудируемых документов, скорее всего падение производительности будет незаметным. Для большого же массива каталогов и файлов с часто изменяемой информации, аудит всех операций может просадить производительность сервера.
    Поэтому нужно учесть несколько нюансов
    1) Необходимо увеличить размер журнала Security (иначе в зависимости от настроек он будет либо часто перезатираться, либо после переполнения блокироваться на дальнейшую запись)
    2) нежелательно включать аудит на все объекты файловой системы (или делать это только осознанно), обычно аудит включен для конкретных контролируемых папок или файлов в них, либо же используется в целях диагностики и отладки
    3) если включен аудит на неком каталоге, то общая производительность будет снижаться прямо пропорционально количеству файлов в ней (т.е. лучше свести количество файлов, доступ к которым аудируется до необходимого минимума)

    Ответить
  5. Roman | 30.07.2012

    Настроил все как в стать но в журнале безопасность не видно к каким конкретно файлам был доступ, что удалили и кто удалил… в общем не очень понятно как это работает..

    Ответить
  6. itpro | 01.08.2012

    Roman Сложно сказать что у вас конкретно не работает..
    Опишите подробно что вы сделали (лучше со скриншотами) и заведите новую тему на нашем форуме (http://forum.winitpro.ru/) — попробуем вам помочь

    Ответить
  7. Roman | 01.08.2012

    Разобрался, работает. Только вот событие в ID 4660 (удален объект) не видно какой именно файл был удален…
    Где и как это точно можно посмотреть?
    Второй вопрос где можно глянуть список всех папок и файлов у которых включен аудит?
    Почему в этой статье вы не слова не упомянули о том что в WinServer 2008 эти 9 объектов разбиты ещё не подобъекты?..
    Посмотреть и включить/выключить их почему то можно только в командной строке:
    auditpol /get /category:* — выводит список и состояние подобъектов
    auditpol /set /subcategory:»ИМЯ КАТЕГОРИИ ПО РУССКИ» /failure:disable /success:disable — отключение подкатегории
    auditpol /set /subcategory:»ИМЯ КАТЕГОРИИ ПО РУССКИ» /failure:enable /success:enable — включение подкатегории
    Таким образом отключим некоторые подкатегории можно значительно сократить потом ненужных вам событий!

    Ответить
  8. itpro | 06.08.2012

    1. Вся информация об операциях с аудируемыми объектами будет присутствовать в журнале безопасности. Имя конкретного файла смотрите в свойствах конкретного события. На самом деле искать в нем без дополнительных телодвижений проблематично.
    Мы обычно выгружаем эти события скриптом, а потом парсим их на информацию о нужном файле.
    2. Хм, интересный вопрос — как это сделать встроенными средствами — не знаю. Видимо придется скрипт ваять

    Спасибо за важное дополнение! Статью немного дополнил

    Ответить
  9. Roman | 06.08.2012

    Все равно не вижу даже в свойствах имени файла который был удален..

    Может что-то я не донастроил?..


    4660
    0
    0
    12800
    0
    0x8020000000000000

    9856773

    Security
    SERVER.mydomen.ru


    S-1-5-21-1534995794-3278245879-885158751-1247
    sergey70
    MYDOMEN
    0x45528ca1a
    Security
    0x1f1c
    0x4

    {00000000-0000-0000-0000-000000000000}

    Ответить
  10. itpro | 07.08.2012

    Включите аудит только событий удаления файлов и папок.
    Удалите файл. Затем в журнале Windows Logs->Secutiry ищите событие
    Keywords:Audit Success, Task Category:File System, EventID:4656
    содержит примерно такой текст:

    A handle to an object was requested.

    Subject:
    Security ID: serv1\winadmin
    Account Name: winadmin
    Account Domain: serv1
    Logon ID: 0x13a659

    Object:
    Object Server: Security
    Object Type: File
    Object Name: C:\Distr\rest\New Rich Text Document.rtf
    Handle ID: 0xe08

    Process Information:
    Process ID: 0xbc8
    Process Name: C:\Windows\explorer.exe

    Access Request Information:
    Transaction ID: {00000000-0000-0000-0000-000000000000}
    Accesses: DELETE
    SYNCHRONIZE
    ReadAttributes

    Access Reasons: DELETE: Granted by D:(A;ID;FA;;;BA)
    SYNCHRONIZE: Granted by D:(A;ID;FA;;;BA)
    ReadAttributes: Granted by D:(A;ID;FA;;;BA)

    Access Mask: 0x110080
    Privileges Used for Access Check: —
    Restricted SID Count: 0

    Ответить
  11. Enzain | 12.02.2014

    А нельзя делать аудит этих событий допустим в mssql?

    Ответить
    • Den | 12.02.2014

      Как-то на Powershell приходилось реализовывать выгрузку данных из Windows Event Log с нескольких компов и загрузку инфы в базу MS SQL. К реализации доступа уже нет, но смысл такой:
      командой Powershell Get-EventLog получаем нужные логи, и потом сторонней функцией (готовой функции в POSH нет, но гуглится на раз) загружаем данные в таблицу MSSQL.

      Ответить
  12. Sasha Odarchuk | 17.07.2014

    Есть пачка серверов на Вин2003
    на каждом сервере есть свои сетевый шары
    Нужно всем этим шарам включить аудит (чтение/запись) — как это сделать через ГПО а не руками??

    Ответить
Полные правила комментирования на сайте winitpro.ru. Вопросы, не связанные с содержимым статьи или ее обсуждением удаляются.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)



MAXCACHE: 0.42MB/0.00048 sec