stadig ikke sikker på, hvordan man sporer, hvem der slettede fil/mappe fra vinduer server 2016 med revisionspolitik? Tag et kig på denne blog.
her hos Bobcares, har vi set flere sådanne vinduer-relaterede fejl som en del af vores Server Management Services for værter og online-udbydere.
i dag ser vi, hvordan du sporer de slettede fil/mappevinduer.
- Sådan sporer du hvem slettet fil/mappe fra vinduer Server 2016 med revisionspolitik
- Sådan aktiveres revisionspolitik for fil-og mappeadgang i vinduer
- konfiguration af Fil slettet Revisionsindstillinger på en delt mappe
- hvordan man skriver Filsletningshændelser til databasen
- logning af fil Slet Revisionshændelser til en tekstfil
Sådan sporer du hvem slettet fil/mappe fra vinduer Server 2016 med revisionspolitik
lad os nu se på, hvordan vores Supportingeniører finder ud af, hvem der har slettet filen/mappen fra serveren.
vi gør brug af filsystemet object access event auditing til at identificere en bestemt bruger, der har oprettet, slettet eller ændret en bestemt fil.
vi skal nu se, hvordan du konfigurerer hændelsesrevision for filer på en delt netværksmappe på vinduer Server 2016. Efter konfiguration af revision bruger vi oplysningerne fra Begivenhedsviseren til at finde den bruger, der slettede en bestemt fil på filserveren.
men når vi sletter en fil fra en delt netværksmappe, slettes den straks i stedet for at blive sendt til brugerens papirkurv.
Sådan aktiveres revisionspolitik for fil-og mappeadgang i vinduer
som standard aktiveres revisionen af Filsystemobjektadgang ikke på vinduer Server. Vi kan aktivere og konfigurere revisionsindstillinger ved hjælp af Gruppepolitik. Her er de trin, vi følger for at konfigurere revision på en server ved hjælp af Local Group Policy Editor.
-
- først åbner vi den lokale Gruppepolitikredaktørkonsol – gpedit.msc
- dernæst går vi til GPO-sektionen med avancerede revisionspolitikker: Indstillinger >> sikkerhedsindstillinger >> konfiguration af avanceret revisionspolitik >> Objektadgang
- derefter åbner vi Revisionsfilsystempolitikken og specificerer, at vi kun vil logge vellykkede adgangshændelser til filsystemobjekter (Konfigurer følgende revisionshændelser >> succes)
- Endelig gemmer vi ændringerne og opdaterer indstillingerne for lokal gruppepolitik ved hjælp af nedenstående kommando.
gpupdate /force
konfiguration af Fil slettet Revisionsindstillinger på en delt mappe
nu konfigurerer vi revision i egenskaberne for den delingsnetværksmappe, som vi vil spore adgang til.
1. Først kører vi Filudforsker og åbner mappeegenskaberne. Vi går til fanen Sikkerhed og klikker på knappen Avanceret. Så går vi til fanen revision.
2. Hvis meddelelsen nedenfor vises, skal du klikke på knappen Fortsæt.
You must be an administrator or have been given the appropriate privileges to view the audit properties of this object
3. Derefter klikker vi på knappen Tilføj for at specificere den bruger eller gruppe, som vi vil fange revisionshændelser for. Hvis vi vil spore adgangshændelser for alle brugere, specificerer vi Gruppen alle.
4. Derefter specificerer vi også, hvilke tilladelser der bruges til at få adgang til objektet, der skal logges. For kun at gemme filsletningshændelser i hændelsesloggen klikker vi på knappen Vis avancerede tilladelser. I begivenhedslisten forlader vi kun revision for mappe – og filsletningshændelser-slet og Slet undermapper og filer.
hvis brugeren sletter en fil eller mappe i den delte netværksmappe. Derefter vises filsystemet – > Audit Success file delete event i Sikkerhedsloggen med Event ID 4663 fra Microsoft-vinduet sikkerhedsrevisionskilde.
så åbner vi Begivenhedsviseren MMC-konsol.MSc), udvide vinduer logfiler- > sikkerhed sektion. Aktiver hændelseslogfilteret ved hjælp af EventID 4663.
derefter åbner vi nogen af de resterende begivenheder i Begivenhedsviseren. Vi ser, at den indeholder oplysninger om navnet på den slettede fil, kontoen for den bruger, der slettede filen, og procesnavnet.
An attempt was made to access an object.Subject:Security ID: CORP\jonAccount Name: jonAccount Domain: CORPLogon ID: 0x32B12627Object:Object Server: SecurityObject Type: FileObject Name: E:\Distr\Backup.rarHandle ID: 0x7bc4Resource Attributes: S:AIProcess Information:Process ID: 0x4Process Name:Access Request Information:Accesses: DELETEAccess Mask: 0x10000
efter aktivering af filadgangsrevisionspolitik kan vi finde nedenstående detaljer i Sikkerhedsloggen:
- hvem slettede filen fra den delte netværksmappe, og hvornår det skete
- hvilken applikation (proces) blev brugt til at slette filen
- Hvad er datoen for sikkerhedskopien, der skal gendannes
hvordan man skriver Filsletningshændelser til databasen
men selvom revisionen af de slettede filer er aktiveret, kan det være besværligt at Find noget i logfilerne. For det første er det ret svært at finde en bestemt post blandt tusindvis af begivenheder. For det andet, hvis en fil blev slettet for længe siden, kan denne begivenhed være fraværende i logfilerne, da den blev overskrevet af nye begivenheder.
Vi gemmer alle fil Slet begivenheder til databasen. Til det bruger vi Microsoft Microsoft Server, Elasticsearch eller Myscl/MariaDB databaser til at gemme begivenhederne.
lad os f.eks. se, hvordan du logger audithændelser i en separat databasetabel. Vi kan bruge følgende tabelformat:
- servernavn
- navn på den slettede fil
- Dato og klokkeslæt
- navn på den bruger, der har slettet filen
:
CREATE TABLE deleted_items (id INT NOT NULL AUTO_INCREMENT, server VARCHAR(100), file_name VARCHAR(255), dt_time DATETIME, user_name VARCHAR(100), PRIMARY KEY (ID));
for at hente begivenheder med EventID 4663 fra Sikkerhedsloggen for den aktuelle dag bruger vi følgende:
$today = get-date -DisplayHint date -UFormat %Y-%m-%dGet-WinEvent -FilterHashTable @{LogName="Security";starttime="$today";id=4663} | Foreach {$event = $_.ToXml()if($event){$Time = Get-Date $_.TimeCreated -UFormat "%Y-%m-%d %H:%M:%S"$File = $event.Event.EventData.Data."#text"$User = $event.Event.EventData.Data."#text"$Computer = $event.Event.System.computer}}
det næste Strømshell-script skriver de data, vi får til Myskl-databasen på en fjernserver (med IP-adressen 10.1.1.13):
Add-Type –Path 'C:\Program Files (x86)\MySQL\MySQL Connector Net 6.9.8\Assemblies\v4.5\MySql.Data.dll'$Connection = @{ConnectionString='server=10.1.1.13;uid=posh;;database=aduser'}$Connection.Open()$sql = New-Object MySql.Data.MySqlClient.MySqlCommand$sql.Connection = $Connection$today = get-date -DisplayHint date -UFormat %Y-%m-%dGet-WinEvent -FilterHashTable @{LogName="Security";starttime="$today";id=4663} | Foreach {$event = $_.ToXml()if($event){$Time = Get-Date $_.TimeCreated -UFormat "%Y-%m-%d %H:%M:%S"$File = $event.Event.EventData.Data."#text"$File = $File.Replace('\','|')$User = $event.Event.EventData.Data."#text"$Computer = $event.Event.System.computer$sql.CommandText = "INSERT INTO deleted_items (server,file_name,dt_time,user_name ) VALUES ('$Computer','$File','$Time','$User')"$sql.ExecuteNonQuery()}}$Reader.Close()$Connection.Close()
når vi har gemt begivenheder i en ekstern database, kan vi rydde denne hændelseslog.
nu for at finde ud af, hvem der har slettet filen “Annualrapport.DOC”, kører vi nedenstående script i Kraftshell-konsollen.
$DeletedFile = "%AnnualReport.DOC%"Set-ExecutionPolicy RemoteSignedAdd-Type –Path 'C:\Program Files (x86)\MySQL\MySQL Connector Net 6.9.8\Assemblies\v4.5\MySql.Data.dll'$Connection = @{ConnectionString='server=10.1.1.13;uid=posh;;database=aduser'}$Connection.Open()$MYSQLCommand = New-Object MySql.Data.MySqlClient.MySqlCommand$MYSQLDataAdapter = New-Object MySql.Data.MySqlClient.MySqlDataAdapter$MYSQLDataSet = New-Object System.Data.DataSet$MYSQLCommand.Connection=$Connection$MYSQLCommand.CommandText="SELECT user_name,dt_time from deleted_items where file_name LIKE '$DeletedFile'"$MYSQLDataAdapter.SelectCommand=$MYSQLCommand$NumberOfDataSets=$MYSQLDataAdapter.Fill($MYSQLDataSet, "data")foreach($DataSet in $MYSQLDataSet.tables){write-host "User:" $DataSet.user_name "at:" $DataSet.dt_time}$Connection.Close()
endelig ser vi nu brugernavnet og det tidspunkt, hvor filen blev slettet i PS-konsollen.
logning af fil Slet Revisionshændelser til en tekstfil
hvis vi ikke ønsker at bruge en separat databaseserver, gemmer vi revisionshændelser til sletning af filer i en almindelig tekstlogfil. Til det bruger vi dette Strømshell-script til at gemme output i en tekstfil:
$Outfile = "C:\Logs\Deleted-file-history-log.txt"$today = get-date -DisplayHint date -UFormat %Y-%m-%dGet-WinEvent -FilterHashTable @{LogName="Security";starttime="$today";id=4663} | Foreach {$event = $_.ToXml()if($event){$Time = Get-Date $_.TimeCreated -UFormat "%Y-%m-%d %H:%M:%S"$File = $event.Event.EventData.Data."#text"$User = $event.Event.EventData.Data."#text"$strLog = $Computer + " " + $File + " " + $Time + " " + $User$strLog | out-file $Outfile –append}}