Nyomon követheti, hogy ki törölte a fájlt/mappát a Windows Server 2016-ból ellenőrzési házirenddel

még mindig nem tudja, hogyan lehet nyomon követni, hogy ki törölte a fájlt/mappát a Windows server 2016-ból ellenőrzési házirenddel? Vessen egy pillantást erre a blogra.

itt, a Bobcares-nél számos ilyen Windowshoz kapcsolódó hibát tapasztaltunk a Webtárhelyeknek és online szolgáltatóknak nyújtott Szerverkezelési szolgáltatásaink részeként.

ma meglátjuk, hogyan kell nyomon követni a törölt fájl / mappa Windows.

hogyan lehet nyomon követni, hogy ki törölte a fájlt/mappát a Windows Server 2016-ból ellenőrzési házirenddel

most nézzük meg, hogy Támogatási mérnökeink hogyan találják meg, ki törölte a fájlt/mappát a szerverről.

a fájlrendszer objektum-hozzáférési eseménynaplóját használjuk egy adott felhasználó azonosítására, aki létrehozott, törölt vagy módosított egy adott fájlt.

most meglátjuk, hogyan konfigurálhatjuk az eseménynaplózást a megosztott hálózati mappában lévő fájlokhoz A Windows Server 2016 rendszeren. A naplózás konfigurálása után az Eseménynaplóból származó információkat arra használjuk, hogy megtaláljuk azt a felhasználót, aki törölt egy adott fájlt a fájlkiszolgálón.

ha azonban egy megosztott hálózati mappából törölünk egy fájlt, akkor az azonnal törlődik, ahelyett, hogy elküldenénk a felhasználó lomtárába.

fájl-és Mappaelérés-naplózási házirend engedélyezése Windows rendszeren

alapértelmezés szerint a fájlrendszer-Objektumelérés-ellenőrzés nem lesz engedélyezve A Windows Server rendszeren. A csoportházirend használatával engedélyezhetjük és konfigurálhatjuk az ellenőrzési beállításokat. Az alábbi lépéseket követjük az auditálás konfigurálásához egy kiszolgálón a helyi csoportházirend-szerkesztő segítségével.

    • először megnyitjuk a helyi csoportházirend-szerkesztő konzolt-gpedit.msc
    • ezután a GPO szakaszhoz megyünk a fejlett ellenőrzési házirendekkel: Windows Settings >> Security Settings >> Advanced Audit Policy Configuration >> Object Access
    • ezt követően megnyitjuk az Audit fájlrendszer-házirendet, és megadjuk, hogy csak a sikeres hozzáférési eseményeket szeretnénk naplózni a fájlrendszer-objektumokba (konfiguráljuk a következő audit eseményeket >> siker)
      hogyan lehet nyomon követni, hogy ki törölte a fájlt/mappát a windows server rendszerből 2016 ellenőrzési házirend
    • végül mentjük a módosításokat, és frissítjük a helyi csoportházirend-beállításokat az alábbi paranccsal.
      gpupdate /force

a fájl törölt ellenőrzési beállításainak konfigurálása egy megosztott mappában

most konfiguráljuk a naplózást annak a hálózati megosztási mappának a tulajdonságaiban, amelyhez nyomon akarjuk követni a hozzáférést.

1. Először futtatjuk a File Explorer programot, és megnyitjuk a mappa tulajdonságait. Lépjen a Biztonság fülre, majd kattintson a Speciális gombra. Ezután megyünk az auditálás fülre.

2. Ha megjelenik az alábbi üzenet, kattintson a Folytatás gombra.

You must be an administrator or have been given the appropriate privileges to view the audit properties of this object

3. Ezután a Hozzáadás gombra kattintva adjuk meg azt a felhasználót vagy csoportot, amelyhez naplózási eseményeket szeretnénk rögzíteni. Ha minden felhasználó számára nyomon akarjuk követni a hozzáférési eseményeket, akkor megadjuk a mindenki csoportot.

4. Ezt követően azt is megadjuk, hogy az objektum eléréséhez használt engedélyeket naplózni kell. Ha csak fájl törlési eseményeket szeretne menteni az Eseménynaplóban, kattintson a speciális engedélyek megjelenítése gombra. Az eseménylistában a naplózást csak a mappa és a fájl törlési eseményekre hagyjuk – az almappák és fájlok törlése és törlése.

abban az esetben, ha a felhasználó töröl egy fájlt vagy mappát a megosztott hálózati mappában. Ezután a fájlrendszer -> a sikeres naplófájl törlése esemény megjelenik a biztonsági naplóban a Microsoft Windows biztonsági naplózási forrásának 4663 Eseményazonosítójával.

ezután megnyitjuk az Event Viewer MMC konzolt (eventvwr.MSC), bontsa ki a Windows naplók -> Biztonság részt. Engedélyezze az Eseménynapló szűrőt az EventID 4663 segítségével.

ezt követően megnyitjuk a fennmaradó eseményeket az Eseménynaplóban. Látjuk, hogy információkat tartalmaz a törölt fájl nevéről, a fájlt törölt felhasználó fiókjáról, valamint a folyamat nevéről.

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

a fájlhozzáférés-ellenőrzési házirend engedélyezése után az alábbi részleteket a biztonsági naplóban találhatjuk meg:

  • ki törölte a fájlt a megosztott hálózati mappából, és mikor történt
  • milyen alkalmazást (folyamatot) használtak a fájl törléséhez
  • mi a visszaállítandó biztonsági mentés dátuma

Hogyan írhatunk Fájl törlési eseményeket az SQL adatbázisba (MySQL/MSSQL)

azonban még akkor is, ha a törölt fájlok ellenőrzése engedélyezve van, nehéz lehet találni valamit a naplók. Először is, elég nehéz konkrét bejegyzést találni több ezer esemény között. Másodszor, ha egy fájlt régen töröltek, akkor ez az esemény hiányozhat a naplókban, mivel új események felülírták.

az összes fájl törlési eseményt az SQL adatbázisba mentjük. Ehhez Microsoft SQL Server, Elasticsearch vagy MySQL/MariaDB adatbázisokat használunk az események tárolására.

lássuk például, hogyan lehet naplózni az ellenőrzési eseményeket egy külön adatbázis táblába a MySQL-en. A következő táblázat formátumot használhatjuk:

  • kiszolgáló neve
  • a törölt fájl neve
  • dátum és idő
  • annak a Felhasználónak a neve, aki törölte a fájlt

a táblázat létrehozásához szükséges MySQL lekérdezés az alábbiak szerint néz ki:

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));

az EventID 4663-mal kapcsolatos események lekéréséhez az aktuális nap biztonsági naplójából a következő PowerShell parancsfájlt használjuk:

$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}}

a következő PowerShell szkript a MySQL adatbázisba érkező adatokat egy távoli kiszolgálón írja (az IP-címmel 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()

az események külső adatbázisba történő mentése után törölhetjük ezt az Eseménynaplót.

most, hogy megtudja, ki törölte a fájlt ” AnnualReport.DOC”, az alábbi szkriptet futtatjuk a PowerShell konzolban.

$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()

végül most látjuk a felhasználónevet és a fájl törlésének idejét a PS konzolban.

naplózási Fájl ellenőrzési események törlése szöveges fájlba

ha nem akarunk külön adatbázis-kiszolgálót használni, akkor a fájl törlési ellenőrzési eseményeket egy egyszerű szöveges naplófájlba mentjük. Ehhez ezt a PowerShell szkriptet használjuk a kimenet szöveges fájlba mentésére:

$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}}

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.