Једноставан систем ревизије уклањања датотека и мапа за Виндовс Сервер

Сваки Виндовс администратор суочен је са ситуацијом када љути корисници желе да знају ко је тачно избрисао мега важну датотеку са годишњим извештајем у дељеној мапи на серверу датотека. Ове информације можете добити само ако извршите ревизију брисања датотека и мапа на датотечном серверу, у супротном остаје само да вратите избрисану датотеку из резервне копије (а већ их радите?) И слегнете раменима.

Али чак и ако је укључена ревизија брисања датотека, проналазак нечега у записницима може бити проблематичан. Прво, тешко је пронаћи жељени запис међу хиљадама догађаја (нема здравих начина за тражење догађаја који су занимљиви флексибилним филтрирањем у Виндовс-у), и друго, ако је датотека одавно избрисана, овај догађај може једноставно да изостане из дневника, јер је преписао новији.

У овом чланку ћемо показати пример организације уграђених алата Виндовс. ревизорски системи бришу датотеке и мапе у заједничком мрежном директорију (датотечни сервер) са снимањем догађаја у засебној бази података у МиСКЛ-у.

Због постојања базе података са подацима о свим избрисаним датотекама, администратор ће моћи да одговори на питања:

  • Ко је и када избрисао датотеку
  • Из које је датотеке избрисана датотека?
  • У том тренутку вам је потребно да вратите сигурносну копију

Пре свега, на Виндовс датотечном серверу морате омогућити ревизију догађаја, што осигурава да се подаци о брисању датотека бележе у системском дневнику. Овај поступак смо већ испитали у чланку Ревизија приступа датотекама и мапама у Виндовс-у.

Ревизија се може омогућити заједничком политиком. Приступ објекту ревизије у одељку са смерницама Подешавања безбедности -> Локална политика -> Политика ревизије

Или (по могућности) кроз напредне политике ревизије у ГПО-у: Сигурносна подешавања -> Напредна конфигурација политике ревизије -> Приступ објекту -> Систем датотека са ревизијом.

Савет. Провођење ревизије намеће додатне трошкове системским ресурсима. Користите са опрезом, посебно за високо учитане датотеке датотека..

У својствима дељене мрежне фасцикле (Безбедност -> Напредно -> Ревизија), уклањање датотека у којима желимо да надгледамо, за групу Сви омогућити ревизију брисања мапа и датотека (Избриши подмапе и датотека).

Савет. Ревизија брисања датотека у одређеној мапи може се омогућити и кроз ПоверСхелл:

$ Патх = "Д: \ јавно"
$ АудитЦхангесРулес = Нови објектни систем.Сецурити.АццессЦонтрол.ФилеСистемАудитРуле ('Сви', 'Избриши, ОбришиСубдиректоријуме и Фифиле', 'Нема', 'Нема', 'Успех')
$ Ацл = Гет-Ацл-Патх $ Патх
$ Ацл.АддАудитРуле ($ АудитЦхангесРулес)
Сет-Ацл -Патх $ Патх -АцлОбјецт $ Ацл

Када се датотека успешно обрише, догађај ИД догађаја се појављује у безбедносном дневнику система 4663 од извора Ревизија сигурности Мицрософт Виндовс-а. Опис догађаја садржи информације о имену избрисане датотеке, рачуну под којим је брисање извршено и име процеса.

Дакле, догађаји који нас занимају се записују у дневник, време је да направимо табелу на МиСКЛ серверу која се састоји од следећих поља:

  • Име сервера
  • Име удаљеног датотеке
  • Време уклањања
  • Име корисника који је избрисао датотеку

МиСКЛ упит за стварање такве табеле изгледаће овако:

ЦРЕАТЕ ТАБЛЕ трацк_дел (ид ИНТ НОТ НУЛЛ АУТО_ИНЦРЕМЕНТ, сервер ВАРЦХАР (100), име датотеке ВАРЦХАР (255), дт_тиме ДАТЕТИМЕ, корисничко име ВАРЦХАР (100), ПРИМАРИ КЕИ (ИД));

Напомена. Детаљно смо испитали карактеристике рада са МиСКЛ базом података у чланку Рад са МиСКЛ базом података из ПоверСхелл-а

Скрипта за прикупљање информација из дневника догађаја. Филтрирамо дневник догађаја са ИД 4663 за текући дан.

$ тодаи = датум-датум -ДисплаиХинт датум -УФормат% И-% м-% д
Гет-ВинЕвент -ФилтерХасхТабле @ ЛогНаме = "Безбедност"; старттиме = "$ данас"; ид = 4663 | Фореацх
$ евент = [кмл] $ _. ТоКсмл ()
иф ($ догађај)

$ Тиме = Датум добијања $ _. ТимеЦреате -УФормат "% И-% м-% д% Х:% М:% С"
$ Филе = $ евент.Евент.ЕвентДата.Дата [6]. "# Текст"
$ Усер = $ евент.Евент.ЕвентДата.Дата [1]. "# Текст"
$ Цомпутер = $ евент.Евент.Систем.цомпутер

Следећа скрипта ће снимати примљене податке у МиСКЛ базу података на удаљеном серверу:

Сет-ЕкецутионПолици РемотеСигнед
Адд-Типе -Патх 'Ц: \ Програмске датотеке (к86) \ МиСКЛ \ МиСКЛ Цоннецтор Нет 6.9.8 \ Скупштине \ в4.5 \ МиСкл.Дата.длл'
$ Цоннецтион = [МиСкл.Дата.МиСклЦлиент.МиСклЦоннецтион] @ ЦоннецтионСтринг = 'сервер = 10.7.7.13; уид = посх; пвд = П @ ссв0рд; база података = адусер'
$ Цоннецтион.Опен ()
$ скл = Нев-Објецт МиСкл.Дата.МиСклЦлиент.МиСклЦомманд
$ скл.Цоннецтион = $ веза
$ тодаи = датум-датум -ДисплаиХинт датум -УФормат% И-% м-% д
Гет-ВинЕвент -ФилтерХасхТабле @ ЛогНаме = "Безбедност"; старттиме = "$ данас"; ид = 4663 | Фореацх
$ евент = [кмл] $ _. ТоКсмл ()
иф ($ догађај)

$ Тиме = Датум добијања $ _. ТимеЦреате -УФормат "% И-% м-% д% Х:% М:% С"
$ Филе = $ евент.Евент.ЕвентДата.Дата [6]. "# Текст"

$ Филе = $ Филе.Реплаце ('\', '|')
$ Усер = $ евент.Евент.ЕвентДата.Дата [1]. "# Текст"
$ Цомпутер = $ евент.Евент.Систем.цомпутер
$ скл.ЦоммандТект = "УМЕТИТЕ ИНТО трацк_дел (сервер, име датотеке, дт_тиме, корисничко име) ВАЛУЕС ('$ Цомпутер', '$ Филе', '$ Тиме', '$ Усер')"
$ скл.ЕкецутеНонКуери ()


$ Реадер.Цлосе ()
$ Цоннецтион.Цлосе ()

Сада, да откријете ко је избрисао датотеку "доцумент1 - Цопи.ДОЦ", довољно је покренути следећу скрипту на ПоверСхелл конзоли.

$ ДелетедФиле = "% доцумент1 - Копирај.ДОЦ%"
Сет-ЕкецутионПолици РемотеСигнед
Адд-Типе -Патх 'Ц: \ Програмске датотеке (к86) \ МиСКЛ \ МиСКЛ Цоннецтор Нет 6.9.8 \ Скупштине \ в4.5 \ МиСкл.Дата.длл'
$ Цоннецтион = [МиСкл.Дата.МиСклЦлиент.МиСклЦоннецтион] @ ЦоннецтионСтринг = 'сервер = 10.7.7.13; уид = посх; пвд = П @ ссв0рд; база података = адусер'
$ Цоннецтион.Опен ()
$ МИСКЛЦомманд = Нови објекат МиСкл.Дата.МиСклЦлиент.МиСклЦомманд
$ МИСКЛДатаАдаптер = Нови објекат МиСкл.Дата.МиСклЦлиент.МиСклДатаАдаптер
$ МИСКЛДатаСет = Нови објектни систем.Дата.ДатаСет
$ МИСКЛЦомманд.Цоннецтион = $ веза
$ МИСКЛЦомманд.ЦоммандТект = "СЕЛЕЦТ корисничко име, дт_тиме из трацк_дел-а где је име датотеке ЛИКЕ '$ ДелетедФиле'"
$ МИСКЛДатаАдаптер.СелецтЦомманд = $ МИСКЛЦомманд
$ НумберОфДатаСетс = $ МИСКЛДатаАдаптер.Филл ($ МИСКЛДатаСет, "подаци")
фореацх ($ ДатаСет у $ МИСКЛДатаСет.таблес [0])

врите-хост "Усер:" $ ДатаСет.усер_наме "ат:" $ ДатаСет.дт_тиме

$ Цоннецтион.Цлосе ()

У конзоли добијамо корисничко име и време брисања датотеке.

Напомена. Јер откривен је проблем, цхир знак "\" није записан у базу података, заменили смо га с "|". Сходно томе, ако требате одредити потпуну путању до датотеке, приликом дохваћања из базе података, можете извршити обрнуту замену $ ДатаСет.филе_наме.Реплаце ('|', '\'). Хвала Алексу Корневу на коментару.!

Скрипта за избацивање података из дневника у базу података може се покренути једном на крају дана према планеру или прекинути на догађају за брисање (на догађају), који захтева много ресурса. Све зависи од системских захтева..

Савет. Морате бити сигурни да је сигурносни дневник довољно велик да садржи све догађаје у дану. У супротном ћете морати извршавати задатак бацања података из дневника у базу података чешће од 1 пута дневно, или опћенито уз окидач. За радну станицу Максимална величина дневника обично се постављају бар 64 Мб на северу - 262 Мб Оставите опцију преписивања укључену (Препишите догађаје према потреби).

Ако желите, аналогно томе, можете реаговати једноставном веб страницом на пхп да бисте добили информације о кривцима за брисање датотека у погоднијем облику. Задатак решава било који пхп програмер за 1-2 сата.

Важан савет. Ако дневник садржи податке о брисању датотеке од стране корисника, не журите да је недвосмислено протумачите као намерну или чак злонамерну. Многи програми (посебно МС Оффице програми греше) приликом спремања података прво креирају привремену датотеку, спремају је у њу и бришу стару верзију датотеке. У овом случају, има смисла додатно уписати у базу имена процеса који је извршио брисање датотеке (поље ПроцессНаме догађаја) и анализирати брисање датотека узимајући у обзир ову чињеницу. Или потпуно радикално филтрирајте догађаје из таквих процеса смећа, на пример, винворд.еке, екцел.еке итд..

Дакле, предложили смо идеју и одређени општи оквир система ревизије и складиштења података о избрисаним датотекама у мрежним куглицама, по жељи се могу лако модификовати како би одговарали вашим потребама.