Hogyan állapítható meg, hogy ki törölt egy fájlt a Windows Server rendszeren Az ellenőrzési házirenddel?

a fájlrendszer-objektum-hozzáférési eseménynaplózással azonosíthat egy adott fájlt létrehozó, törölt vagy módosított felhasználót. Ebben a cikkben bemutatjuk, hogyan konfigurálhatja 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ók segítségével megkeresheti azt a felhasználót, aki törölte az adott fájlt a fájlkiszolgálón.

ha töröl egy fájlt egy megosztott hálózati mappából, akkor az azonnal törlődik, ahelyett, hogy elküldené a felhasználó lomtárába. A megosztás mappában megnyitott fájlok listája a következőképpen érhető el.

hogyan engedélyezhető a fájl – és Mappaelérési naplózási házirend Windows rendszeren?

alapértelmezés szerint a fájlrendszer-objektum-hozzáférés-ellenőrzés nincs engedélyezve A Windows Server rendszeren. A csoportházirend használatával engedélyezheti és konfigurálhatja az ellenőrzési beállításokat. Ha több kiszolgálón vagy számítógépen engedélyeznie kell a naplózási házirendeket, használhatja a tartományi csoportházirend-objektumokat (a gpmc.msc mmc konzol segítségével konfigurálható). Ha csak egy kiszolgálón szeretné konfigurálni a naplózást, használhatja a helyi csoportházirend-szerkesztőt.

  1. nyissa meg a helyi csoportházirend-szerkesztő konzolt– gpedit.msc;
  2. lépjen a csoportházirend-csoportházirend szakaszra a speciális ellenőrzési házirendekkel: Windows beállítások – > Biztonsági beállítások – > speciális ellenőrzési házirend-konfiguráció – > objektum-hozzáférés;
  3. nyissa meg az ellenőrzési fájlrendszer-házirendet, és adja meg, hogy csak a sikeres hozzáférési eseményeket szeretné naplózni a fájlrendszer-objektumokba (konfigurálja a következő ellenőrzési eseményeket – > siker);
    a helyi objektumokhoz való hozzáférés naplózását a Windows beállítások -> Biztonsági beállítások -> Helyi házirend -> ellenőrzési házirend alatt található Objektumhozzáférési házirend használatával is engedélyezheti. A fájlrendszer-ellenőrzési házirend használata azonban előnyösebb, mivel csak az NTFS-hozzáférési eseményeket követi nyomon.

     fájlrendszer-házirend engedélyezése windows server rendszeren

  4. mentse el a módosításokat, és frissítse a helyi csoportházirend-beállításokat a következő paranccsal: gpupdate /force.

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

most a naplózást annak a hálózati megosztási mappának a tulajdonságaiban kell konfigurálnia, amelyhez a hozzáférést nyomon szeretné követni. Futtassa a File Explorer programot, és nyissa meg a mappa tulajdonságait. Menjen a Biztonság fülre. Kattintson a Speciális gombra – > lépjen a naplózás fülre.

ha megjelenik a “rendszergazdának kell lennie, vagy megfelelő jogosultságokat kapott az objektum ellenőrzési tulajdonságainak megtekintéséhez” üzenet, kattintson a Folytatás gombra.

a naplózási beállítások konfigurálása egy megosztott mappában

Ezután kattintson a Hozzáadás gombra annak a felhasználónak vagy csoportnak a megadásához, amelyhez naplózási eseményeket szeretne rögzíteni. Ha az összes felhasználó hozzáférési eseményeit szeretné nyomon követni, adja meg a mindenki csoportot.

ezután meg kell adnia, 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 hagyja a naplózást csak a mappa-és fájltörlési eseményekre-az almappák és fájlok törlése.

fájltörlési műveletek ellenőrzésének konfigurálása megosztott mappán Windows Server 2016 rendszeren mappa

tipp. Ne feledje, hogy a windows-objektumok naplózási házirendje további számítási erőforrásokat igényel. Óvatosan használja, mindig próbálja minimalizálni a naplózandó ellenőrzési objektumok és események számát.

$Path = "E:\Public"
$AuditChangesRules = New-Object System.Security.AccessControl.FileSystemAuditRule('Everyone', 'Delete,DeleteSubdirectoriesAndFiles', 'none', 'none', 'Success')
$Acl = Get-Acl -Path $Path
$Acl.AddAuditRule($AuditChangesRules)
Set-Acl -Path $Path -AclObject $Acl

most, ha a felhasználó töröl egy fájlt vagy mappát a megosztott hálózati mappában, a fájlrendszer -> Audit Success file delete esemény megjelenik a biztonsági naplóban a 4663 eseményazonosítóval a Microsoft Windows biztonsági naplózási forrásból.

nyissa meg az Eseménynapló 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.

 fájl törlési eseményazonosító 4663 a Windows event viewer biztonsági naplójában

nyissa meg a fennmaradó események bármelyikét az Eseménynaplóban. Amint láthatja, 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 és a folyamat nevéről.

An attempt was made to access an object.Subject:Security ID: CORP\jsmithAccount Name: jsmithAccount 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

4663-as fájltörlés-ellenőrzési esemény felhasználónévvel a biztonsági naplóban

miután engedélyezte a fájlhozzáférés-ellenőrzési házirendet, megtalálható a biztonsági naplóban :

  • 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 írhatok 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, problémás lehet valamit találni a naplókban. Először is, elég nehéz megtalálni egy adott bejegyzést több ezer esemény között (a Windows rendszerben nincs kényelmes eszköz egy esemény rugalmas szűrővel történő keresésére). 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 elmentheti az SQL adatbázisba. Az események tárolásához használhatja a Microsoft SQL Server, az Elasticsearch vagy a MySQL/MariaDB adatbázisokat.

ebben a példában megmutatjuk, hogyan kell naplózni a naplózási eseményeket egy külön adatbázis táblába egy MySQL-en. A következő táblázat formátumot fogom használni:

  • szerver neve;
  • a törölt fájl neve;
  • dátum és idő;
  • a fájlt törölt felhasználó neve.

a táblázat létrehozásához szükséges MySQL lekérdezés így 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));

jegyzet. A MySQL adatbázis PowerShell-ből történő elérésének példáját korábban a MySQL adatbázis lekérdezése a PowerShell-vel című cikkben tárgyaltuk.

Ha Microsoft SQL Server adatbázist szeretne használni, olvassa el a “hogyan futtathat MSSQL szerver lekérdezést a PowerShell – ből?”

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

$today = get-date -DisplayHint date -UFormat %Y-%m-%d
Get-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
}
}

Windows Security audit-event 4663 tulajdonságok

a következő PowerShell parancsfájl a MySQL adatbázisba érkező adatokat egy távoli szerverre í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;pwd=P@ssw0rd;database=aduser'}
$Connection.Open()
$sql = New-Object MySql.Data.MySqlClient.MySqlCommand
$sql.Connection = $Connection
$today = get-date -DisplayHint date -UFormat %Y-%m-%d
Get-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()

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

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