Навеяно темой 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 msdb.dbo.sp_send_dbmail@profile_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*
При это в логе на клиенте SEPM будет отображаться информация в формате ниже на скрине с указанием названия правила которое фигурирует выше в политике (важно!).
Настраиваем в SEPM сроки хранения журнала на клиенте и его размер (в SEPM выбираем Clients-->группу-->в политиках Client log settings).
Нужные нам параметры - в control log. Обязательно ставим галку Upload to management server.
Устанавливаем в параметрах сервера 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