로 윈도우 서버 2016 에서 파일/폴더를 삭제한 사람 추적 아직도 누가 감사 정책으로 윈도우 서버 2016 에서 파일/폴더를 삭제했는지 추적하는 방법을 잘 모르십니까? 이 블로그를 살펴보십시오.
여기 밥케어스에서,우리는 웹 호스트 및 온라인 서비스 제공 업체에 대한 우리의 서버 관리 서비스의 일환으로 몇 가지 이러한 윈도우 관련 오류를 보았다.
오늘 우리는 삭제 된 파일/폴더 창을 추적하는 방법을 볼 수 있습니다.
감사 정책
윈도우 서버 2016 에서 파일/폴더를 삭제 한 사람을 추적하는 방법 이제 우리의 지원 엔지니어가 서버에서 파일/폴더를 삭제 한 사람을 찾는 방법을 살펴 보자.
파일 시스템 개체 액세스 이벤트 감사를 사용하여 특정 파일을 생성,삭제 또는 수정한 특정 사용자를 식별합니다.
이제 윈도우 서버 2016 에서 공유 네트워크 폴더에있는 파일에 대한 이벤트 감사를 구성하는 방법을 볼 것이다. 감사를 구성한 후 이벤트 뷰어의 정보를 사용하여 파일 서버에서 특정 파일을 삭제한 사용자를 찾습니다.
그러나 공유 네트워크 폴더에서 파일을 삭제하면 사용자의 휴지통으로 전송되는 대신 즉시 삭제됩니다.
파일 및 폴더 액세스 감사 정책을 활성화하는 방법
기본적으로 파일 시스템 개체 액세스 감사는 활성화되지 않습니다. 그룹 정책을 사용하여 감사 설정을 활성화하고 구성할 수 있습니다. 로컬 그룹 정책 편집기를 사용하여 한 서버에서 감사를 구성하기 위해 수행하는 단계는 다음과 같습니다.
-
- 먼저 로컬 그룹 정책 편집기 콘솔을 엽니 다.다음은 고급 감사 정책 섹션을 참조하십시오: 2817>>보안 설정>>고급 감사 정책 구성>>개체 액세스
- 그런 다음 감사 파일 시스템 정책을 열고 파일 시스템 개체에 대한 성공적인 액세스 이벤트만 기록하도록 지정합니다(다음 감사 이벤트 구성>>성공).2016 감사 정책
- 마지막으로 변경 사항을 저장하고 아래 명령을 사용하여 로컬 그룹 정책 설정을 업데이트합니다.
gpupdate /force
공유 폴더에서 삭제된 파일 감사 설정 구성
이제 액세스를 추적하려는 공유 네트워크 폴더의 속성에서 감사를 구성합니다.
1. 먼저 파일 탐색기를 실행하고 폴더 속성을 엽니 다. 우리는 보안 탭으로 이동하여 고급 버튼을 클릭합니다. 그런 다음 감사 탭으로 이동합니다.
2. 아래 메시지가 나타나면 계속 버튼을 클릭합니다.
You must be an administrator or have been given the appropriate privileges to view the audit properties of this object
3. 그런 다음 추가 단추를 클릭하여 감사 이벤트를 캡처할 사용자 또는 그룹을 지정합니다. 모든 사용자에 대한 액세스 이벤트를 추적하려면 모두 그룹을 지정합니다.
4. 그 후,우리는 또한 개체에 액세스하는 데 사용되는 권한이 기록되어야 지정합니다. 이벤트 로그에 파일 삭제 이벤트 만 저장하려면 고급 권한 표시 버튼을 클릭합니다. 이벤트 목록에서 폴더 및 파일 삭제 이벤트(하위 폴더 및 파일 삭제 및 삭제)에 대해서만 감사를 남깁니다.
사용자가 공유 네트워크 폴더에서 파일이나 폴더를 삭제하는 경우. 그런 다음 파일 시스템->감사 성공 파일 삭제 이벤트가 보안 로그에 나타납니다.이벤트 뷰어를 엽니 다.로그->보안 섹션을 확장합니다. 이벤트 로그 필터를 사용할 수 있습니다.
그 후 이벤트 뷰어에서 나머지 이벤트를 엽니다. 삭제된 파일의 이름,파일을 삭제한 사용자의 계정 및 프로세스 이름에 대한 정보가 포함되어 있습니다.
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
파일 액세스 감사 정책을 활성화한 후 보안 로그에서 아래 세부 정보를 찾을 수 있습니다:
- 공유 네트워크 폴더에서 파일을 삭제한 사용자 및 공유 네트워크 폴더에서 파일을 삭제한 사용자 및 공유 네트워크 폴더에서 파일을 삭제한 사용자 및 공유 네트워크 폴더에서 파일을 삭제한 사용자 및 공유 네트워크 폴더에서 파일을 삭제한 사용자 및 공유 네트워크 폴더에서 파일을 삭제한 사용자 및 공유 네트워크 폴더에서 파일을 삭제한 사용자 및 공유 네트워크 폴더에서 파일을 삭제한 사용자 및 공유 네트워크 폴더에서 파일을 삭제한 사용자 및 공유 네트워크 폴더에서 파일을 삭제한 사용자 및 공유 네트워크 폴더에서 파일을 삭제한 로그에. 첫째,수천 개의 이벤트 중에서 특정 항목을 찾는 것은 매우 어렵습니다. 둘째,파일이 오래 전에 삭제 된 경우,이 이벤트는 새로운 이벤트로 덮어 쓰기 때문에 로그에 없을 수 있습니다.
모든 파일 삭제 이벤트를 데이터베이스에 저장합니다. 이 응용 프로그램을 사용하여 이벤트를 저장할 수 있습니다.
예를 들어,감사 이벤트를 별도의 데이터베이스 테이블에 로깅하는 방법을 살펴보겠습니다. 다음 테이블 형식을 사용할 수 있습니다:
- 서버 이름
- 삭제된 파일의 이름
- 날짜 및 시간
- 파일을 삭제한 사용자의 이름
:
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));
현재 날짜의 보안 로그에서 이벤트를 가져오려면 다음 스크립트를 사용합니다:
$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}}
다음 스크립트는 원격 서버에 있는 데이터를 기록합니다 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()
외부 데이터베이스에 이벤트를 저장 한 후이 이벤트 로그를 지울 수 있습니다.
이제 파일을 삭제 한 사람을 찾으려면”연간 보고서.문서”,우리는 파워 쉘 콘솔에서 아래 스크립트를 실행.
$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()
마지막으로,이제 사용자 이름과 파일이 삭제 된 시간을 볼 수 있습니다.
파일 삭제 감사 이벤트를 텍스트 파일에 로깅
별도의 데이터베이스 서버를 사용하지 않으려면 파일 삭제 감사 이벤트를 일반 텍스트 로그 파일에 저장합니다. 이를 위해,우리는 텍스트 파일에 출력을 저장하기 위해이 파워 쉘 스크립트를 사용:
$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}}