Windows server 2008 R2 – log smazaných souborů
Dlouho jsme v práci nebyli schopni zjistit, kdo vymazal nějakou sloužku. Proto jsem vygooglil řešení, pomocí kterého už můžeme tyto události logovat – http://www.bouska.biz/logovani-udalosti-na-sdilenem-ulozisti. Návod na export do CSV jsem pak našel tady – http://blogs.technet.com/b/mspfe/archive/2013/08/27/auditing-file-access-on-file-servers.aspx
Na windows serveru od verze 7/2008 R2 je k dispozici toto:
Nástroje pro správu / Místní zásady zabezpečení / upřesnit konfiguraci zásad auditování / přístup k objektu / auditovat systém souborů
Administrative tools / local security policy / advanced audit security configuration/ object access / audit file system
Povolíme zde obě možnosti (úspěch i neúspěch).
Zatím se nic nestane, dokud ve vlastnostech sdílené složky (buď vlastnosti složky na lokálním disku serveru nebo vlastnosti sdílené složky ve správě počítače) :
zabezpečení / upřesnit / auditování
security / advanced / auditing
Nastavíme, jaké operace se budou zaznamenávat v logu.
Doporučuji nastavit minimálně úspěšné pokusy o smazání, změnu oprávnění a převzetí vlastnictví.
V systémovém logu (“zabezpečení” resp. audit) pak máme záznamy o všech výmazech a podezřelých operacích, samozřejmě včetně přesného času a už. účtu, ze kterého byly operace provedeny.
Vytvořil jsem si soubor smazane.ps1, který provede export do souboru CSV pomocí PowerShell ze http://blogs.technet.com/b/mspfe/archive/2013/08/27/auditing-file-access-on-file-servers.aspx
$server = "DOPLNTE-JMENO-SERVERU" $out = New-Object System.Text.StringBuilder $out.AppendLine("ServerName,EventID,TimeCreated,UserName,File_or_Folder,AccessMask") $ns = @{e = "http://schemas.microsoft.com/win/2004/08/events/event"} foreach ($svr in $server) { $evts = Get-WinEvent -computer $svr -FilterHashtable @{logname="security";id="4663"} -oldest foreach($evt in $evts) { $xml = [xml]$evt.ToXml() $SubjectUserName = Select-Xml -Xml $xml -Namespace $ns -XPath "//e:Data[@Name='SubjectUserName']/text()" | Select-Object -ExpandProperty Node | Select-Object -ExpandProperty Value $ObjectName = Select-Xml -Xml $xml -Namespace $ns -XPath "//e:Data[@Name='ObjectName']/text()" | Select-Object -ExpandProperty Node | Select-Object -ExpandProperty Value $AccessMask = Select-Xml -Xml $xml -Namespace $ns -XPath "//e:Data[@Name='AccessMask']/text()" | Select-Object -ExpandProperty Node | Select-Object -ExpandProperty Value $out.AppendLine("$($svr),$($evt.id),$($evt.TimeCreated),$SubjectUserName,$ObjectName,$AccessMask") Write-Host $svr Write-Host $evt.id,$evt.TimeCreated,$SubjectUserName,$ObjectName,$AccessMask } } $out.ToString() | out-file -filepath d:\DOPLNTE-CESTU\4663Events_$(get-date -f yyyy-MM-dd__hh-mm-ss).csv |
Ještě jsem musel vytvořit spoštěcí BAT soubor, aby se mohl předchozí skript v pořádku spustit, jehož obsahem bylo:
powershell -ExecutionPolicy ByPass -File c:\smazane.ps1 |
V kategorii: Windows Server