eventcreate.exe是自定義事件日志處理工具
windows日志的保護(hù)
日志對(duì)于系統(tǒng)安全的作用是顯而易見的,一個(gè)有經(jīng)驗(yàn)的管理員往往能夠迅速通過日志了解到系統(tǒng)的安全性能。
概述:Windows2000的系統(tǒng)日志文件有應(yīng)用程序日志,安全日志、系統(tǒng)日志、DNS服務(wù)器日志等等,應(yīng)用程序日志、安全日志、系統(tǒng)日志、DNS日志默認(rèn)位置:%systemroot%system32config,默認(rèn)文件大小512KB。
安全日志文件:%systemroot%system32configSecEvent.EVT
系統(tǒng)日志文件:%systemroot%system32configSysEvent.EVT
應(yīng)用程序日志文件:%systemroot%system32configAppEvent.EVT
這些log文件在注冊(cè)表中的:
HKEY_LOCAL_MACHINESystemCurrentControlSetServicesEventlog
有的管理員很可能將這些日志重定位。其中EVENTLOG下面有很多的子表,里面可查到以上日志的定位目錄。
作為網(wǎng)絡(luò)管理員
1、日志的安全配置:
默認(rèn)的條件下,日志的大小為512KB大小,如果超出則會(huì)報(bào)錯(cuò),并且不會(huì)再記錄任何日志。所以首要任務(wù)是更改默認(rèn)大小,具體方法:注冊(cè)表中HKEY_LOCAL_MACHINESystemCurrentControlSetServicesEventlog對(duì)應(yīng)的每個(gè)日志如系統(tǒng),安全,應(yīng)用程序等均有一個(gè)maxsize子鍵,修改即可。
下面給出一個(gè)來(lái)自微軟站點(diǎn)的一個(gè)腳本,利用VMI來(lái)設(shè)定日志最大25MB,并允許日志自行覆蓋14天前的日志:
該腳本利用的是WMI對(duì)象, WMI(Windows Management Instrumentation)技術(shù)是微軟提供的Windows下的系統(tǒng)管理工具。通過該工具可以在本地或者管理客戶端系統(tǒng)中幾乎一切的信息。很多專業(yè)的網(wǎng)絡(luò)管理工具都是基于WMI開發(fā)的。該工具在Win2000以及WinNT下是標(biāo)準(zhǔn)工具,在Win9X下是擴(kuò)展安裝選項(xiàng)。所以以下的代碼在2000以上均可運(yùn)行成功。
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate,(Security)}!\" & _
strComputer & "rootcimv2") '獲得VMI對(duì)象
Set colLogFiles = objWMIService.ExecQuery _
("Select * from Win32_NTEventLogFile")
For each objLogfile in colLogFiles
strLogFileName = objLogfile.Name
Set wmiSWbemObject = GetObject _
("winmgmts:{impersonationLevel=Impersonate}!\.rootcimv2:" _
& "Win32_NTEventlogFile.Name='" & strLogFileName & "'")
wmiSWbemObject.MaxFileSize = 2500000000
wmiSWbemObject.OverwriteOutdated = 14
wmiSWbemObject.Put_
Next
將上述腳本用記事本存盤為vbs為后綴的即可使用。
另外需要說明的是代碼中的strComputer="."在windows腳本中的含義相當(dāng)于localhost,如果要在遠(yuǎn)程主機(jī)上執(zhí)行代碼,只需要把"."改動(dòng)為主機(jī)名,當(dāng)然首先得擁有對(duì)方主機(jī)的管理員權(quán)限并建立IPC連接.本文中的代碼所出現(xiàn)的strComputer均可作如此改動(dòng).
2、日志的查詢與備份:
一個(gè)優(yōu)秀的管理員是應(yīng)該養(yǎng)成備份日志的習(xí)慣,如果有條件的話還應(yīng)該把日志轉(zhuǎn)存到備份機(jī)器上或直接轉(zhuǎn)儲(chǔ)到打印機(jī)上,筆者還有一篇文章《利用腳本編程格式化輸出系統(tǒng)日志》,詳細(xì)的講述了利用windows腳本把日志轉(zhuǎn)儲(chǔ)并輸出成html頁(yè)已便于查詢,有興趣的可以查看,在這里推薦微軟的resourceKit工具箱中的dumpel.exe,他的常用方法:
dumpel -f filename -s \server -l log
-f filename 輸出日志的位置和文件名
-s \server 輸出遠(yuǎn)程計(jì)算機(jī)日志
-l log log 可選的為system,security,application,可能還有別的如DNS等
如要把目標(biāo)服務(wù)器server上的系統(tǒng)日志轉(zhuǎn)存為backupsystem.log可以用以下格式:
dumpel \server -l system -f backupsystem.log
再利用計(jì)劃任務(wù)可以實(shí)現(xiàn)定期備份系統(tǒng)日志。
另外利用腳本編程的VMI對(duì)象也可以輕而易舉的實(shí)現(xiàn)日志備份:
下面給出備份application日志的代碼:
backuplog.vbs
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate,(Backup)}!\" & _
strComputer & "rootcimv2") '獲得 VMI對(duì)象
Set colLogFiles = objWMIService.ExecQuery _
("Select * from Win32_NTEventLogFile where LogFileName='Application'") '獲取日志對(duì)象中的應(yīng)用程序日志
For Each objLogfile in colLogFiles
errBackupLog = objLogFile.BackupEventLog("f:application.evt") '將日志備份為f:application.evt
If errBackupLog <> 0 Then
Wscript.Echo "The Application event log could not be backed up."
else Wscript.Echo "success backup log"
End If
Next
程序說明:如果備份成功將窗口提示:"success backup log" 否則提示:"The Application event log could not be backed up",此處備份的日志為application 備份位置為f:application.evt,可以自行修改,此處備份的格式為evt的原始格式,用記事本打開則為亂碼,這一點(diǎn)他不如dumpel用得方便。