MRTG(Multi Router Traffic Grapher)是一個跨平臺的監(jiān)控網(wǎng)絡(luò)鏈路流量負載的工具軟件,目前它可以運行在大多數(shù)Unix系統(tǒng)和Windows NT之上。它通過snmp協(xié)議從設(shè)備得到設(shè)備的流量信息,并將流量負載以包含PNG格式的圖形的HTML 文檔方式顯示給用戶,以非常直觀的形式顯示流量負載。
或許你還不知道,MRTG還是一個有效的入侵檢測工具。大家都知道,入侵者掃描與破壞后都能生成一些異常的網(wǎng)絡(luò)流量,而人們在一般情況下是意識不到的。但是MRTG卻能通過圖形化的形式給管理員提供入侵的信息。并可以查出數(shù)周之前的入侵信息,以備管理員參考。
一,攻擊行為對服務(wù)器造成的信息
1,攻擊者使用CGI漏洞掃描器對潛在的CGI漏洞腳本進行掃描時,HTTP 404 Not Found errors的記錄會增長。
2,攻擊者嘗試暴力破解服務(wù)器上的帳戶,HTTP 401 Authorization Required errors 的記錄會增長。
3,一種新的蠕蟲出現(xiàn),某一個特定的協(xié)議的流量會增長。
4,蠕蟲通過傀儡主機,攻擊其他的服務(wù)器,出外的流量增加,并增大CPU的負荷。
5,入侵者嘗試SQL injection攻擊,HTTP 500 Server Errors記錄會增長。
6,垃圾郵件發(fā)送者在網(wǎng)絡(luò)上尋找中繼SMTP服務(wù)器來發(fā)送垃圾郵件,會造成SMTP的和DNS lookups流量大增,同時造成CPU負荷增大。
7,攻擊者進行DDOS攻擊,會造成ICMP流量,TCP連接,虛假的IP,多播廣播流量大增。造成浪費大量的帶寬。
看完上面的,我們可以總結(jié)出,攻擊者要入侵必須會影響到服務(wù)器的這些資源:: CPU, RAM,磁盤空間,網(wǎng)絡(luò)連接和帶寬。入侵者還有可能對服務(wù)器建立進程后門,開放端口,他們還對他們的入侵行為進行偽裝掩蓋,避免遭到入侵檢測系統(tǒng)的監(jiān)視。
二,攻擊者使用以下的方法避免被檢測到:
1,探測掃描很長時間后,才進行真正的入侵進攻。
2,從多個主機進行攻擊,避免單一的主機記錄。 3,盡量避免入侵造成的CPU, RAM和驅(qū)動器的負荷。
4,利用管理員無人職守時入侵,在周末或者節(jié)假日發(fā)起攻擊。
三,對于IIS 6,我們需要監(jiān)視的是
1,網(wǎng)絡(luò)流量,包括帶寬,數(shù)據(jù)包,連接的數(shù)量等。
2,網(wǎng)絡(luò)協(xié)議的異常錯誤。 3,網(wǎng)站的內(nèi)外流量,包括用戶的權(quán)限設(shè)置,外部請求的錯誤流量等。
4,線程和進程。
四,在Windows 2003下安裝MRTG
在使用MRTG之前,你需要在你的服務(wù)器里安裝SNMP 服務(wù)。具體步驟如下:從控制面板中選擇添加/刪除程序,點擊添加和刪除windows組件。管理和監(jiān)視工具中的詳細資料里就可以找到簡單網(wǎng)絡(luò)管理協(xié)議,即可安裝。
安裝成功后,你需要立刻安全配置一下,我們大家都知道,SNMP在網(wǎng)絡(luò)上決不是一個安全的協(xié)議,你可以通過http://support.microsoft.com/?kbid=324261這個連接來具體了解。但是我們只是在本地使用SNMP,但是還是建議你通過防火墻屏蔽SNMP的161與162端口和使用IPSec。并且要配置為obscure community string。在管理工具中,在服務(wù)中選擇安全,設(shè)為只讀訪問。盡管community string安全問題不多,但是你還是要避免使用community string為只讀訪問。
MRTG是一個用Perl編譯的C程序。你還要安裝ActivePerl來解決支持腳本的問題。下載最新的MRTG??梢缘絟ttp://people.ee./~oetiker/webtools/mrtg/pub/下載, 注意要選擇.zip的文件下載。這篇文章所使用的版本請到http:///microsoft/images/burnett_MRTG_files.zip下載。 把MRTG解壓到C:/Program Files/MRTG目錄下。
在你的Inetpub目錄下為MRTG建立一個子目錄。為了安全,不要建立在wwwroot目錄下。然后,使用IIS建立一個MRTG的新站點。如果可能的話,最好能為MRTG站點配置一個主機頭和一個獨立的IP。也可以在一個已存在的目錄下為MRTG站點建立一個合法的虛擬目錄,也能達到同樣的目的。 注意,在新建立的MRTG站點不要運行可執(zhí)行的腳本,只提供只讀訪問。在NTFS下,要注意對用戶的權(quán)限的設(shè)置。如果可能的話,最好對指定MRTG站點的IP來選擇特定的主機。
現(xiàn)在,就可以把配置文件放到C:/Program Files/MRTG/Bin下了,并把index.html 文件拷貝到你的/Inetpub/MRTG 目錄下。
下面,我們來測試一下,在命令提示符下輸入:
C:/ProgramFiles/MRTG>perl mrtg mrtg.cfg
如果一些正常的話,就會在在你的MRTG站點就有了一些配置文件。如果安裝失敗,你可以回顧一下你安裝的步驟,是否有錯誤,并參考MRTG 的參考手冊。 五,具體配置SNMP計數(shù)器
圖1為我所配置的MRTG的以及所獲得流量的截圖:
盡管微軟提供了SNMP的計數(shù)器,但是我發(fā)現(xiàn)它對一些應(yīng)用程序支持有些問題,然而,MRTG卻能從很多的應(yīng)用程序中得到消息。但是我們通過Windows Management Instrumentation (WMI) 也能得到包括所有的計數(shù)器的性能信息。同SNMP不同的是,微軟在WMI下了很大的時間和金錢。比如:我想得到關(guān)于線程和進程的信息,我可以使用以下的腳本輕易實現(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
因為微軟的日志記錄工具也非常強大,和MRTG的計數(shù)器配合使用,在加上免費的入侵檢測系統(tǒng)Snort,效果會更好。 六,最后
在你自定義的完你的計數(shù)器完成之后,通過圖行化的狀況就可以輕易的找出入侵者??梢栽诰W(wǎng)站http://snmpboy.msft.net看到在Windows 2003 server中的snmp更多的信息。
【
|