WindowsIIS日志文件分析程序避免安全隱患
WindowsIIS日志文件分析程序用于分析和檢測(cè)IIS日志里針對(duì)某個(gè)URL地址進(jìn)行攻擊的IP地址。對(duì)于用戶維護(hù)自己電腦的網(wǎng)絡(luò)安全有一定的作用,具體內(nèi)容如下所述。
WindowsServer具有事件日志記錄的功能,其IIS日志文件里記錄了包括下列信息:誰(shuí)訪問(wèn)了您的站點(diǎn),訪問(wèn)者查看了哪些內(nèi)容等等。通過(guò)定期檢查這些日志文件,網(wǎng)站管理員可以檢測(cè)到服務(wù)器或站點(diǎn)的哪些方面易受攻擊或存在其他安全隱患。
不過(guò),目前的日志分析工具并不是很完善,有些功能并不具備,特別是針對(duì)某個(gè)URL地址進(jìn)行攻擊的分析并不多,下面是一個(gè)VBScript程序,保存為VBS程序后可以在服務(wù)器上運(yùn)行,用于分析和檢測(cè)IIS日志里針對(duì)某個(gè)URL地址進(jìn)行攻擊的IP地址。
'代碼開(kāi)始
- targeturl="/archives/2761.html"'受攻擊網(wǎng)站的URL地址。
 - logfilepath="C:\LogFiles\W3SVC\ex110813.log"'受攻擊網(wǎng)站的日志路徑。
 - OnErrorResumeNext
 - Setfileobj=CreateObject("scripting.filesystemobject")
 - Setfileobj2=CreateObject("scripting.filesystemobject")
 - Setmyfile=fileobj2.opentextfile(logfilepath,1,False)
 - DoWhilemyfile.atendofstream<>True
 - myline=myfile.readline()
 - myline2=Split(myline,"")
 - newip=myline2(9)
 - myurl=myline2(5)
 - Iftargeturl=myurlThen
 - writelognewip
 - EndIf
 - Loop
 - myfile.Close
 - Setfileobj2=Nothing
 - Msgbox"結(jié)束."
 - Subwritelog(errmes)
 - ipfilename="blockip.txt"
 - Setlogfile=fileobj.opentextfile(ipfilename,8,True)
 - logfile.writelineerrmes
 - logfile.Close
 - Setlogfile=Nothing
 - EndSub
 
'代碼結(jié)束

分析出來(lái)的IP如果出現(xiàn)異常,可以通過(guò)程序,將其批量添加到IIS的屏蔽IP列表里,下面是網(wǎng)上找到的一段VBScript代碼,將其改名為vbs后,把上面那段程序的IP導(dǎo)入,即可批量屏蔽攻擊者的IP地址。
'代碼開(kāi)始
- '/*=========================================================================
 - '*IntroVBScript使用ADSI為IIS批量添加屏蔽或允許訪問(wèn)的IP
 - '*FileNameVBScript-ADSI-IIS-Add-Deny-Grant-IP-Change-MetaBase.xml.vbs
 - '*==========================================================================*/
 - 'AddDenyIP2All"192.168.1.106,255.255.255.0"
 - 'AddDenyIP"123456","127.0.0.1"
 - 'AddDenyIP2All"14.113.226.116"
 - '添加要屏蔽的IP或一組計(jì)算機(jī),到一個(gè)指定站點(diǎn)上
 - SubAddDenyIP(strWebNo,strDenyIp)
 - OnErrorResumeNext
 - SetSecObj=GetObject("IIS://LocalHost/W3SVC/"&strWebNo&"/Root")
 - SetMyIPSec=SecObj.IPSecurity
 - MyIPSec.GrantByDefault=True
 - IPList=MyIPSec.IPDeny
 - i=UBound(IPList)+1
 - ReDimPreserveIPList(i)
 - IPList(i)=strDenyIp
 - MyIPSec.IPDeny=IPList
 - SecObj.IPSecurity=MyIPSec
 - SecObj.Setinfo
 - EndSub
 - '添加要屏蔽的IP或一組計(jì)算機(jī),到IIS公共配置,以應(yīng)用到所有站點(diǎn)
 - '如果之前對(duì)有些站點(diǎn)單獨(dú)做過(guò)屏蔽IP設(shè)置,在些設(shè)置不會(huì)生效,得在總的網(wǎng)站上設(shè)置一下,然后覆蓋所有子結(jié)點(diǎn)
 - SubAddDenyIP2All(strDenyIp)
 - OnErrorResumeNext
 - SetSecObj=GetObject("IIS://LocalHost/W3SVC")
 - SetMyIPSec=SecObj.IPSecurity
 - MyIPSec.GrantByDefault=True
 - IPList=MyIPSec.IPDeny
 - i=UBound(IPList)+1
 - ReDimPreserveIPList(i)
 - IPList(i)=strDenyIp
 - MyIPSec.IPDeny=IPList
 - SecObj.IPSecurity=MyIPSec
 - SecObj.Setinfo
 - EndSub
 - '添加允許的IP或一組計(jì)算機(jī),到一個(gè)指定站點(diǎn)上
 - SubAddGrantIP(strWebNo,strGrantIp)
 - OnErrorResumeNext
 - SetSecObj=GetObject("IIS://LocalHost/W3SVC/"&strWebNo&"/Root")
 - SetMyIPSec=SecObj.IPSecurity
 - MyIPSec.GrantByDefault=False
 - IPList=MyIPSec.IPGrant
 - i=UBound(IPList)+1
 - ReDimPreserveIPList(i)
 - IPList(i)=strGrantIp
 - MyIPSec.IPGrant=IPList
 - SecObj.IPSecurity=MyIPSec
 - SecObj.Setinfo
 - EndSub
 
'添加允許的IP或一組計(jì)算機(jī),到IIS公共配置,以應(yīng)用到所有站點(diǎn)
'如果之前對(duì)有些站點(diǎn)單獨(dú)做過(guò)屏蔽IP設(shè)置,在些設(shè)置不會(huì)生效,得在總的網(wǎng)站上設(shè)置一下,然后覆蓋所有子結(jié)點(diǎn)
- SubAddGrantIP2All(strGrantIp)
 - OnErrorResumeNext
 - SetSecObj=GetObject("IIS://LocalHost/W3SVC")
 - SetMyIPSec=SecObj.IPSecurity
 - MyIPSec.GrantByDefault=False
 - IPList=MyIPSec.IPGrant
 - i=UBound(IPList)+1
 - ReDimPreserveIPList(i)
 - IPList(i)=strGrantIp
 - MyIPSec.IPGrant=IPList
 - SecObj.IPSecurity=MyIPSec
 - SecObj.Setinfo
 - EndSub
 
'顯示IIS公共配置里禁止訪問(wèn)的IP
- SubListDenyIP()
 - SetSecObj=GetObject("IIS://LocalHost/W3SVC")
 - SetMyIPSec=SecObj.IPSecurity
 - IPList=MyIPSec.IPDeny'IPGrant/IPDeny
 - WScript.EchoJoin(IPList,vbCrLf)
 - 'Fori=0ToUBound(IPList)
 - 'WScript.Echoi+1&"-->"&IPList(i)
 - 'Next
 - EndSub
 
總結(jié):
希望本文介紹的WindowsIIS日志文件分析程序避免安全隱患的內(nèi)容能夠?qū)ψx者有所幫助,更多有關(guān)操作系統(tǒng)的知識(shí)還有待于讀者去探索和學(xué)習(xí)。
【編輯推薦】















 
 
 


 
 
 
 