Перейти к содержанию
Shell

Строим отчеты по доступу к файлам

Recommended Posts

Shell

Навеяно темой http://www.symantec.com/connect/downloads/...t-report-e-mail

Где то на форуме была политика для ведения лога по записанным и прочитанным файлам на съемных накопителях.

в этой теме покажу как получать отчеты о доступе к файлам на съемных устройствах с помощью простых манипуляций.

Будет рассмотрена связка SQL 2008 + SEPM 11.0.6005

Что нам понадобится. Во первых, настроить Database Mail согласно рекомендаций.

http://marslert.com/blog/2009/03/16/config...-database-mail/

С помощью запроса SQL Query получаем параметры которые нам будут нужны:

SELECT [profile_id]      ,[name]       ,[description]      ,[last_mod_datetime]      ,[last_mod_user]   ,'EXEC [email protected]_name = ''' + name + ''',@recipients = ''ваш_емайл@company.com'', @subject = ''Test'',@body  = ''Message'',  @body_format = ''HTML'';' AS TestSQL  FROM [msdb].[dbo].[sysmail_profile]

Получаем строку типа

EXEC msdb.dbo.sp_send_dbmail  @profile_name = 'Database Mail',  @recipients = 'ваш_емайл@company.com',   @subject = 'Test',  @body  = 'Message',    @body_format = 'HTML';

В SEPM на необходимую группу вешаем политику. Импорт из атача Log documents from-to removable drives.dat

В этой политике уже готово правило которое будет записывать в Client Management logs-->Control Log все операции с файлами с расширениями *.doc, *.docx, *.xls, *.xlsx,*.pst,*.xml,*.txt,*.xlt,*.pdf,*.csv,*.xml,*.mht,*.mhtml,*.rar,*.zip,*.7z,

*.0*

36fd53d7ebd2t.jpg

8c38f4f77194t.jpg

При это в логе на клиенте SEPM будет отображаться информация в формате ниже на скрине с указанием названия правила которое фигурирует выше в политике (важно!).

01a44d56d321t.jpg

Настраиваем в SEPM сроки хранения журнала на клиенте и его размер (в SEPM выбираем Clients-->группу-->в политиках Client log settings).

Нужные нам параметры - в control log. Обязательно ставим галку Upload to management server.

ee9f73c02dc8t.jpg

Устанавливаем в параметрах сервера SEPM настройки хранения логов.

Все логи с клиентов будут собираться в нашу базу в таблицы:

[Endpoint].[Endpoint].[AGENT_BEHAVIOR_LOG_1]

[Endpoint].[Endpoint].[AGENT_BEHAVIOR_LOG_2]

Endpoint - название БД. Что в них собирается - вы можете посмотреть сами и выбрать необходимые поля :)

По сути поля почти теже что и в логе на клиенте.

Обращение к этим двум таблицам сразу возможно через уже встроенную вьюшку [Endpoint].[Endpoint].[V_AGENT_BEHAVIOR_LOG] содержащую простейшее обращение к этим таблицам:

SELECT     *FROM         AGENT_BEHAVIOR_LOG_1UNION ALLSELECT     *FROM         AGENT_BEHAVIOR_LOG_2

Строим запрос к БД с нужными полями, преобразуем формат времени из bigint в удобоваримый.

Возьмем следующие поля:

FILE_NAME - имя файла с которым производятся операции

VAPI_NAME - операция Read\Write (к сожалению, другие операции не будут видны)

CALLER_PROCESS_NAME -- имя процесса которым читается\записывается файл

HOST_NAME,USER_NAME,DOMAIN_NAME - имя хоста (будет без домена), имя пользователя (будет без домена), имя конечного домена без сабдоменов.

EVENT_TIME - собственно время. Время в БД юниксовое, так что приводим его в удобоваримый вид.

select PARAMETER AS FILE_NAME,VAPI_NAME,CALLER_PROCESS_NAME,HOST_NAME,USER_NAME,DOMAIN_NAME, EVENT_TIME = DATEADD(SECOND, EVENT_TIME / 1000, '19700101 00:00'), RULE_NAMEfrom [Endpoint].[Endpoint].[V_AGENT_BEHAVIOR_LOG]where [rule_name] like '%Log documents from-to removable drives%'order by [EVENT_TIME];

Обращаю внимание на строку '%Log documents from-to removable drives%' - берем совпадения по названию правила. В БД оно несколько изменено на конце, поэтому построен запрос именно так.

Если правильно все сделали и журналы уже собраны в SEPM - в результате запроса увидите результат о доступе к файлам на устройстве.

Собрав данные в БД вы простым запросом за интересующий вас интервал по любым полям (пользователю\компу\домену\времени) можете сделать выборку.

Переходим к украшательствам.

Нужны автоматические письма? Делаем автоматический запуск SQL Agent (без него не работают джобы) и вешаем задание.

В задание вешаем скрипт:

DECLARE @xml NVARCHAR(MAX)DECLARE @body NVARCHAR(MAX)SET @xml = CAST(( select PARAMETER AS 'td',' ' FILE_NAME,VAPI_NAME AS 'td',' ',CALLER_PROCESS_NAME AS 'td',' ',HOST_NAME AS 'td',' ',USER_NAME AS 'td',' ',DOMAIN_NAME AS 'td',' ',DATEADD(SECOND, EVENT_TIME / 1000, '19700101 00:00') AS 'td',' 'from [Endpoint].[Endpoint].[V_AGENT_BEHAVIOR_LOG]where ([rule_name]like '%Log documents from-to removable drives%') and(DATEADD(SECOND, EVENT_TIME / 1000, '19700101 00:00') between DATEADD (HOUR, -24, getdate()) and GETDATE())order by [EVENT_TIME] FOR XML PATH ('tr'), ELEMENTS ) AS NVARCHAR(MAX))SET @body ='<html><H3><center><FONT COLOR="#7E2217">SEPM - Отчет за последние 24 часа по записи\чтению на съемные накопители USB</FONT></H3></center><body><table border = 1><tr><FONT COLOR="#736AFF"><th>Имя файла</th><th>Операция</th><th>Процесс</th><th>Имя ПК</th><th>Имя пользователя</th><th>Имя домена</th><th>Время (Мск)</th></tr>'SET @body = @body + '<style>' + 'td {font-size:8pt;} '+ '</style>'+ @xml +'</table></FONT></body></html>'EXEC msdb.dbo.sp_send_dbmail/*msdb.dbo.sp_send_dbmail*//*EXEC [msdb].[dbo].[sysmail_profile]*/@recipients=N'ваш_емйл@company.com',@body = @body,@body_format = 'HTML',@subject ='SEPM Application Control - USB Read\Write Attempts',@profile_name = 'Database Mail'

@profile_name = 'Database Mail' - здесь прописать то что получилось в результате запроса выше (EXEC msdb.dbo.sp_send_dbmail @profile_name = 'Database Mail', @recipients = 'ваш_емайл@company.com', @subject = 'Test', @body = 'Message', @body_format = 'HTML';)

Скрипт автоматом будет получать время запуска и строить отчет за последние 24 часа за счет

(DATEADD(SECOND, EVENT_TIME / 1000, '19700101 00:00') between DATEADD (HOUR, -24, getdate()) and GETDATE())

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

На свой указанный в скрипте емайл будете получать отчеты.

Если есть какие то добавления\желания - все можно сделать на основе этой реализации.

Удачи :)

Log_documents_from_to_removable_drives.rar

Log_documents_from_to_removable_drives.rar

  • Upvote 10

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Shell

Опять кнопки редактировать нет)

Добавлю одно замечание:

Если время желаете по МСК в отчетах - выставьте

(DATEADD(SECOND, EVENT_TIME / 1000, '19700101 04:00')

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Создайте учетную запись или войдите, чтобы комментировать

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Сообщения

    • alexkirilov2018
      Добро пожаловать на сайт! Портал новостей «Листай.ру» создан с целью отражения общественной новостной повестки в России и мире. У нас на сайте любой пользователь может ознакомиться со свежей и актуальной информацией по большинству значимых общественных тем в стране. Среди таких тем: Политика, экономика, пенсионные вопросы, ЖКХ, деньги, вопросы изменений в действующее законодательство РФ, дачные темы, спорт, техника и многое другое.
    • alexkirilov2018
      Наказывать нужно за расклейку таких вот украшений!
    • Gannadey
      Мы когда переехали в этот поселок, то тоже, само собой задавались этим вопросом. Так как работа у меня связана с интернетом, то мне бы хотелось, помимо дешевых тарифов и хорошего интернета, ещё и быстрое подключение. Полазил по сайтам провайдеров и фразочки типа " подключение в течении 3-4х дней" меня никак не устраивали. Но нашёл здесь https://it-yota.ru/uslugi/internet-mosoblast/dmitrovskij-rajon/poselok-nekrasovskij.html , что подключают в тот же день, глянул и на тарифы, условия и всё меня устроило. Подключили и вправду в тот же день, всё работает отлично. Сбоев и обрывов сети не было. 
    • Elisea
      Приветствую! Есть кто из Подмосковья? Переехали в поселок Некрасовский совсем недавно, под Дмитровым. Нужно подключить интернет. Какой провайдер получше будет?
    • fafa
      Очень странно, как по мне. Так как этот товар не подходит для такого вариант продвижения. Как мне казалось то лучше использовать прямую рекламу не думали? Тем более что товар не такой дешевый и рассчитан немного на другую аудиторию. 
×