MRTG(Multi Router Traffic Grapher)是一個(gè)跨平臺(tái)的監(jiān)控網(wǎng)絡(luò)鏈路流量負(fù)載的工具軟件,目前它可以運(yùn)行在大多數(shù)Unix系統(tǒng)和Windows NT之上。它通過(guò)snmp協(xié)議從設(shè)備得到設(shè)備的流量信息,并將流量負(fù)載以包含PNG格式的圖形的HTML 文檔方式顯示給用戶,以非常直觀的形式顯示流量負(fù)載。
或許你還不知道,MRTG還是一個(gè)有效的入侵檢測(cè)工具。大家都知道,入侵者掃描與破壞后都能生成一些異常的網(wǎng)絡(luò)流量,而人們?cè)谝话闱闆r下是意識(shí)不到的。但是MRTG卻能通過(guò)圖形化的形式給管理員提供入侵的信息。并可以查出數(shù)周之前的入侵信息,以備管理員參考。
一,攻擊行為對(duì)服務(wù)器造成的信息
1,攻擊者使用CGI漏洞掃描器對(duì)潛在的CGI漏洞腳本進(jìn)行掃描時(shí),HTTP 404 Not Found errors的記錄會(huì)增長(zhǎng)。
2,攻擊者嘗試暴力破解服務(wù)器上的帳戶,HTTP 401 Authorization Required errors 的記錄會(huì)增長(zhǎng)。
3,一種新的蠕蟲(chóng)出現(xiàn),某一個(gè)特定的協(xié)議的流量會(huì)增長(zhǎng)。
4,蠕蟲(chóng)通過(guò)傀儡主機(jī),攻擊其他的服務(wù)器,出外的流量增加,并增大CPU的負(fù)荷。
5,入侵者嘗試SQL injection攻擊,HTTP 500 Server Errors記錄會(huì)增長(zhǎng)。
6,垃圾郵件發(fā)送者在網(wǎng)絡(luò)上尋找中繼SMTP服務(wù)器來(lái)發(fā)送垃圾郵件,會(huì)造成SMTP的和DNS lookups流量大增,同時(shí)造成CPU負(fù)荷增大。
7,攻擊者進(jìn)行DDOS攻擊,會(huì)造成ICMP流量,TCP連接,虛假的IP,多播廣播流量大增。造成浪費(fèi)大量的帶寬。
看完上面的,我們可以總結(jié)出,攻擊者要入侵必須會(huì)影響到服務(wù)器的這些資源:: CPU, RAM,磁盤(pán)空間,網(wǎng)絡(luò)連接和帶寬。入侵者還有可能對(duì)服務(wù)器建立進(jìn)程后門(mén),開(kāi)放端口,他們還對(duì)他們的入侵行為進(jìn)行偽裝掩蓋,避免遭到入侵檢測(cè)系統(tǒng)的監(jiān)視。
二,攻擊者使用以下的方法避免被檢測(cè)到:
1,探測(cè)掃描很長(zhǎng)時(shí)間后,才進(jìn)行真正的入侵進(jìn)攻。
2,從多個(gè)主機(jī)進(jìn)行攻擊,避免單一的主機(jī)記錄。
3,盡量避免入侵造成的CPU, RAM和驅(qū)動(dòng)器的負(fù)荷。
4,利用管理員無(wú)人職守時(shí)入侵,在周末或者節(jié)假日發(fā)起攻擊。
三,對(duì)于IIS 6,我們需要監(jiān)視的是
1,網(wǎng)絡(luò)流量,包括帶寬,數(shù)據(jù)包,連接的數(shù)量等。
2,網(wǎng)絡(luò)協(xié)議的異常錯(cuò)誤。
3,網(wǎng)站的內(nèi)外流量,包括用戶的權(quán)限設(shè)置,外部請(qǐng)求的錯(cuò)誤流量等。
4,線程和進(jìn)程。
四,在Windows 2003下安裝MRTG
在使用MRTG之前,你需要在你的服務(wù)器里安裝SNMP 服務(wù)。具體步驟如下:從控制面板中選擇添加/刪除程序,點(diǎn)擊添加和刪除windows組件。管理和監(jiān)視工具中的詳細(xì)資料里就可以找到簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議,即可安裝。
安裝成功后,你需要立刻安全配置一下,我們大家都知道,SNMP在網(wǎng)絡(luò)上決不是一個(gè)安全的協(xié)議,你可以通過(guò)http://support.microsoft.com/?kbid=324261這個(gè)連接來(lái)具體了解。但是我們只是在本地使用SNMP,但是還是建議你通過(guò)防火墻屏蔽SNMP的161與162端口和使用IPSec。并且要配置為obscure community string。在管理工具中,在服務(wù)中選擇安全,設(shè)為只讀訪問(wèn)。盡管community string安全問(wèn)題不多,但是你還是要避免使用community string為只讀訪問(wèn)。
MRTG是一個(gè)用Perl編譯的C程序。你還要安裝ActivePerl來(lái)解決支持腳本的問(wèn)題。下載最新的MRTG??梢缘絟ttp://people.ee.ethz.ch/~oetiker/webtools/mrtg/pub/下載,
注意要選擇.zip的文件下載。這篇文章所使用的版本請(qǐng)到http://securityfocus.com/microsoft/images/burnett_MRTG_files.zip下載。
把MRTG解壓到C:/Program Files/MRTG目錄下。
在你的Inetpub目錄下為MRTG建立一個(gè)子目錄。為了安全,不要建立在wwwroot目錄下。然后,使用IIS建立一個(gè)MRTG的新站點(diǎn)。如果可能的話,最好能為MRTG站點(diǎn)配置一個(gè)主機(jī)頭和一個(gè)獨(dú)立的IP。也可以在一個(gè)已存在的目錄下為MRTG站點(diǎn)建立一個(gè)合法的虛擬目錄,也能達(dá)到同樣的目的。
注意,在新建立的MRTG站點(diǎn)不要運(yùn)行可執(zhí)行的腳本,只提供只讀訪問(wèn)。在NTFS下,要注意對(duì)用戶的權(quán)限的設(shè)置。如果可能的話,最好對(duì)指定MRTG站點(diǎn)的IP來(lái)選擇特定的主機(jī)。
現(xiàn)在,就可以把配置文件放到C:/Program Files/MRTG/Bin下了,并把index.html 文件拷貝到你的/Inetpub/MRTG 目錄下。
下面,我們來(lái)測(cè)試一下,在命令提示符下輸入:
C:/ProgramFiles/MRTG>perl mrtg mrtg.cfg
如果一些正常的話,就會(huì)在在你的MRTG站點(diǎn)就有了一些配置文件。如果安裝失敗,你可以回顧一下你安裝的步驟,是否有錯(cuò)誤,并參考MRTG 的參考手冊(cè)。
五,具體配置SNMP計(jì)數(shù)器
圖1為我所配置的MRTG的以及所獲得流量的截圖:
盡管微軟提供了SNMP的計(jì)數(shù)器,但是我發(fā)現(xiàn)它對(duì)一些應(yīng)用程序支持有些問(wèn)題,然而,MRTG卻能從很多的應(yīng)用程序中得到消息。但是我們通過(guò)Windows Management Instrumentation (WMI) 也能得到包括所有的計(jì)數(shù)器的性能信息。同SNMP不同的是,微軟在WMI下了很大的時(shí)間和金錢。比如:我想得到關(guān)于線程和進(jìn)程的信息,我可以使用以下的腳本輕易實(shí)現(xiàn):
Set oWService=GetObject("winmgmts://localhost/root/cimv2")
Set colItems=oWService.ExecQuery("SELECT * FROM Win32_PerfFormattedData_PerfOS_System",,48)
For Each Item in colItems
Param1=Param1 + Item.Processes
Param2=Param2 + Item.Threads
Uptime=Item.SystemUptime
Next
WScript.Echo Param1
WScript.Echo Param2
WScript.Echo Uptime & " seconds"
WScript.Echo "LocalHost"
Another problem I had was getting detailed or custom web statistics through either SNMP or WMI. To solve that
, I used Microsoft’s LogParser tool to run custom queries from a simple batch file:
@for /f "tokens=1,2,3,4* delims=/ " %%i in (’date /t’) do @set year=%%l&& @set month=%%j&& @set day=%%k
@set logfile=c:/windows/system32/LogFiles/%1/ex%YEAR:~2,2%%month%%day%.log
@If Exist %logfile% (
@logparser "SELECT COUNT(*) FROM %logfile% WHERE (sc-status>= 400AND sc-status<500)
AND TO_TIMESTAMP(date, time) > SUB(SYSTEM_TIMESTAMP(), TO_TIMESTAMP(’5’,’m’))" -q
@logparser "SELECT COUNT(*) FROM %logfile% WHERE (sc-status>= 500AND sc-status<600)
AND TO_TIMESTAMP(date, time) > SUB(SYSTEM_TIMESTAMP(), TO_TIMESTAMP(’5’,’m’))" -q
) ELSE (
@Echo %logfile%
@Echo 0
)
@Echo Unknown
@Echo %1
因?yàn)槲④浀娜罩居涗浌ぞ咭卜浅?qiáng)大,和MRTG的計(jì)數(shù)器配合使用,在加上免費(fèi)的入侵檢測(cè)系統(tǒng)Snort,效果會(huì)更好。
六,最后
在你自定義的完你的計(jì)數(shù)器完成之后,通過(guò)圖行化的狀況就可以輕易的找出入侵者??梢栽诰W(wǎng)站http://snmpboy.msft.net看到在Windows 2003 server中的snmp更多的信息。
聯(lián)系客服