運用Ntop監控網絡流量
運用Ntop監控網絡流量
____網 絡流量反映了網絡的運行狀態,是判別網絡運行是否正常的關鍵數據,在實際的網絡中,如果對網絡流量控制得不好或發生網絡擁塞,將會導致網絡吞吐量下降、網 絡性能降低。通過流量測量不僅能反映網絡設備(如路由器、交換機等)的工作是否正常,而且能反映出整個網絡運行的資源瓶頸,這樣管理人員就可以根據網絡的 運行狀態及時采取故障補救措施和進行相關的業務部署來提高網絡的性能。對網絡進行流量監測分析,可以建立網絡流量基準,通過連接會話數的跟蹤、源/目的地 址對分析、TCP流的分析等,能夠及時發現網絡中的異常流量,進行實時告警,從而保障網絡安全。本節將介紹的Ntop便可以提供詳細的網絡流量明細表。在 Ossim系統中集成了Ntop可以直接使用。
1.Ntop簡介
____Ntop是一種監控網絡流量的工具,用NTOP顯示網絡的使用情況比其他一些網管軟件更加直觀、詳細。NTOP甚至可以列出每個節點計算機的網絡帶寬利用率。
2.Ntop主要功能
Ntop主要提供以下一些功能:
①.自動從網絡中識別有用的信息;
②.將截獲的數據包轉換成易于識別的格式;
③.對網絡環境中通信失敗的情況進行分析;
④.探測網絡環境中的通信瓶頸,記錄網絡通信的時間和過程。
____Ntop可以通過分析網絡流量來確定網絡上存在的各種問題;也可以用來判斷是否有黑客正在攻擊網絡系統;還可以很方便地顯示出特定的網絡協議、占用大量帶寬的主機、各次通信的目標主機、數據包的發送時間、傳遞數據包的延時等詳細信息。
3. Ntop支持的協議
____Ntop 比MRTG更容易安裝,如果用手機話費來比喻流量,MRTG便如同提供總費用的電話賬單,而Ntop則是列出每一筆費用的明細一樣。目前市場上可網管型的 交換機、路由器都支持SNMP協議,Ntop支持簡單網絡管理協議,所以可以進行網絡流量監控。Ntop幾乎可以監測網絡上的所有協議: TCP/UDP /ICMP、(R)ARP、IPX、Telnet、DLC、Decnet、DHCP-BOOTP、AppleTalk、Netbios、TCP/UDP、 FTP、HTTP、DNS、Telnet、SMTP/POP/IMAP、SNMP、NNTP、NFS、X11、SSH和基于P2P技術的協議 eDonkey。
4.Ntop支持插件
①.ICMPWATCH:
____用 于端口檢測很多人都已經知道了可以借助NETSTAT -AN來查看當前的連接與開放的端口,但NETSTAT并不萬能,比如Win2000遭到OOB攻 擊的時候,不等NETSTAT就已經死機了。為此,出現了一種特殊的小工具——端口監聽程序。端口監聽并不是一項復雜的技術,但卻能解決一些局部問題。
②.NetFlow:
____近年來,很多服務提供商一直使用NetFlow。因為NetFlow在大型廣域網環境里具有伸縮能力,可以幫助支持對等點上的最佳傳輸流,同時可以用來進行建立在單項服務基礎之上的基礎設施最優化評估,解決服務和安全問題方面所表現出來的價值,為服務計費提供基礎。
③.rrdPlugin:
____用于生成流量圖。RRD的作者,也是MRTG的作者,RRD可以簡單的說是MRTG的升級版,它比MRTG更靈活,更適合用shell、perl等程序來調用,成生所要的圖片。
④.sFlow:
____sFlow(RFC 3176) 是基于標準的最新網絡協議,能夠解決當前網絡管理人員面臨的很多問題。sFlow已經成為一項線速運行的“永遠在線”技術,可以將sFlow技術嵌入到網 絡路由器和交換機 ASIC芯片中。與使用鏡像端口、探針和旁路監測技術的傳統網絡監視解決方案相比,sFlow能夠明顯地降低實施費用,同時可以使面向 每一個端口的全企業網絡監視解決方案成為可能。與數據包采樣技術(如RMON)不同,sFlow是一種導出格式,它增加了關于被監視數據包的更多信息,并 使用嵌入到網絡設備中的sFlow代理轉發被采樣數據包,因此在功能和性能上都超越了當前使用的RMON、RMON II和NetFlow技術。 sFlow技術獨特之處在于它能夠在整個網絡中,以連續實時的方式監視每一個端口,但不需要鏡像監視端口,對整個網絡性能的影響也非常小。
____另外,Ntop還允許用戶安裝插件用,以提供對于特定協議下具體統計數據的報告,如NFS和NetBIOS插件。當然,Ntop也可以生成運行它的主機的統計數據,列出開放套接字、接收和發送的數據以及每個過程的相關主機對。
二、Ntop系統的部署
對 于共享網絡,只須將連接到共享網絡中的流量采集點的網絡接口置為混雜工作模式,就可實現采集網絡流量數據的功能。與交換網絡相比,網絡發生擁塞時,集線器 網絡的可靠性很低,SNMP問詢命令和回應數據包可能發生延遲或丟失,這時候Ntop檢測數據也就不準確了,對于交換網絡的情況,需要交換設備的支持(如 具有SPAN端口的交換機)。流量采集主機連接到交換設備的一個端口后,通過交換機的SPAN至(Switched PortAnalyzer)端口把要 分析的所有流量鏡像到該采集點上。SPAN在使用中非常靈活,可以監視交換機的單個端口,也可以監視多個端口,還可以對VLAN進行監視。這就使流量異常 監測系統具有了很大的靈活性。在一些流量比較大的企業,我們一般選用兩個網卡,一塊網卡作為Ntop專用嗅探網卡,連到核心交換機的鏡像端口,另一塊配上 IP地址并開放相應端口(默認是3000,也可以修改),連接交換機的作用是用來登錄Web界面進行管理,Ntop的部署如圖1所示。
圖1 Ntop的安裝位置
____Ntop 沒有自己的捕包工具,它需要一個外部的捕包程序庫:libpcap。Ntop利用libpcap獨立地從物理鏈路上進行捕包,它可以借助libpcap的 平臺成為一個真正的與平臺無關的應用程序。它直接從網卡捕包的任務由libpcap承擔,所以我們必須確保Linux系統下正確安裝了libpcap。
三.Ntop安裝配置
____Ntop工作時需要使用zlib、gd、libpcap及libpng的函數,安裝前須檢查服務器中是否已經含有下列的軟件:zlib(zlib-1.1.3-xx以上)、gd(gd-1.3.xx以上)、libpng。可以使用RPM來確認:
rpm -qa | grep libpcap
rpm -qa | grep zlib
rpm -qa | grep gd
rpm -qa | grep libpng
如果發現缺少任何一個就需要自行安裝,舉例如下。
1.安裝libpcap
# tar zxvf libpcap-0.9.8.tar.gz
# cd libpcap-0.9.8
#./configure
# make&&make install
2.安裝RRDtool
____RRDtool 是指Round Robin Database 工具(環狀數據庫)。Round Robin是一種處理定量數據以及當前元素指針的技術。想象一個周邊標 有點的圓環,這些點就是時間存儲的位置。從圓心畫一條到圓周的某個點的箭頭,這就是指針。一個圓環上沒有起點和終點,可以一直存儲下去。經過一段時間后, 所有可用的位置都會被用過,該循環過程會自動重用原來的位置。這樣,數據集不會增大,并且不需要維護。
#tar -zxvf rrdtool-1.3.1.tar.gz
#export PKG_CONFIG_PATH=/usr/lib/pkgconfig/
#./configure
#make
#make install
3.安裝Ntop
下載ntop安裝包:http://www.nmon.net/packages/rpm/x86_64/ntop/
#rpm -ivh ntop-3.3.10-.x86.rpm
#yum install ntop \\CentOS系統
#apt-get install ntop \\Debian系統
____注意:在Ossim 系統中已經為我們安裝好Ntop軟件,可以直接使用。如果您選擇單獨安裝可以繼續參考以下內容。另外如果您使用Red Hat Linux 、Fedora或CentOS請首先關閉 SELinux功能。
4.建立Ntop用戶并配置權限
#useradd ntop
5.建立Ntop存放數據的目錄
#mkdir -p /var/ntop
#chown -R ntop.ntop /var/ntop
6.復制ntop.conf配置文件
#cp /ntop-3.3.10/ntop.conf.sample /etc/ntop.conf
7.設置管理密碼
在執行ntop之前必須先建立管理員密碼,長度至少5位。使用參數-A建立管理員密碼
#ntop -A
8. Ntop的管理員密碼重置方法
Ntop的用戶密碼文件是經過加密存儲在ntop_pw.db文件中,Ntop用戶密碼存儲位置:
64位版本:/var/lib/ntop_db_64/ntop_pw.db
64位版本需先刪除其密碼文件ntop_pw.db,然后用notp -A 重置管理員密碼后,最后重啟ntop服務就能生效。
#/etc/init.d/ntop restart
另外,注意一個細節,ntop的訪問日志位置在/var/log/ntop/目錄下,它的pcap log在/var/lib/ntop目錄下。
四、應用Ntop
1.啟動Ntop
#/usr/local/bin/ntop -i eth0 -d -L -u ntop -P /var/ntop --use-syslog=daemon
命令行中各項簡要介紹如下。
l -i "eth0":指定監聽網卡。
l -d:后臺執行。
l -L:輸出日志寫入系統日志(/var/log/messages)。
l -u ntop:指定使用Ntop身份執行。
l -P /var/ntop:指定Ntop數據庫的文件位置。
l -use-syslog=daemon:使用系統日志進程。
l -w:使用其他端口,指定ntop使用其他端口,例如執行ntop –w 1900以后,便可以使用http://ip:1900來連接ntop
2.利用Web瀏覽器查看Ntop狀況
Ntop的通訊端口為3000,所以在瀏覽器使用IP:3000進入ntop便可看到ntop歡迎界面
,如圖2所示。
圖2 查看Ntop狀況
3.查看整體流量
____對 于網絡整體流量的統計,分別是Protocol Traffic Counters、IP Traffic Counters、 TCP/UDP Connections Stats、Active TCP Connections List、Peers List。按照不同的 Packet,將流量數據存放到不同的Counter中。對網絡整體流量進行分類統計,包括下列情形。
流量分布情形:區分為本網絡主機之間、本網絡與外部網絡之間、外部網絡與本網絡之間的網絡流量統計。
數據包分布情形:依據數據包大小、廣播形態及IP與非IP等加以分類及統計。
協議使用及分布情形:本網絡各主機傳送與接收數據所使用的通信協議種類與數據傳輸量。
通過Summary→Traffic查看整體流量(如圖3所示),網絡流量會以清晰的表格形式顯示,如圖3所示。
圖3 查看整體流量
____在 圖3中,Summary內容為目前玩過的整體概況,包括流量,主機網絡負載等。All Protocols選項可以查看各主機占用的帶寬和各時段使用的流 量明細。IP顯示網絡主機的流量狀況和排名;Utils可以顯示ntop記錄的網絡狀況、流量統計并可以將數據存儲為txt,xml等格 式;Plugins包含了ntop所支持的插件類型;Admin選項可以對ntop進行配置,例如我們可以配置Pcap Log的路徑,這對于解決 Ntop數據占用磁盤空間問題很有幫助,默認路徑為/usr/local/ntop/var/ntop目錄下。另外為了節約磁盤空間可以降低 Max Hashes和Max Sessions的值。此外還可以進行ntop重啟停止等操作。另外,如果ntop啟動失敗,你可以到/var/log /messages中尋找錯誤日志。如果你需要設置開機自動啟動還可以到/etc/rc.d/rc.local文件最后加入啟動ntop的命令。如果你想 修改ntop外觀可以編輯ntop的HTML文檔、或CSS式樣文件,這些內容在/usr/share/ntop/html目錄下。
圖4 以表格形式顯示網絡流量
4.查看通信數據包(協議)比例
____數 據包對于網絡管理的網絡安全而言具有至關重要的意義,如防火墻的作用就是檢測網絡中的數據包,判斷其是否違反了預先設置的規則,如果違反就加以阻止。 Linux網絡中最常見的數據包是TCP和UDP。如果想了解一個計算機傳輸了哪些數據,可以雙擊計算機名稱即可分析出用戶各種網絡傳輸的協議類型和占用 帶寬的比例,如圖5所示。
圖5查看協議類型和占用比例
5.與Google Map整合:Ntop中標注IP所在國家的位置
____選 取Summary→Hosts World Map Ntop命令,與Google Earth(谷歌地球)進行技術整合,能將收集到的信息實時地在谷歌 地球上顯示出來。首先要有Gmail賬號,然后到http://code.google.com/apis/maps/signup.html上申請 Google Maps API的密鑰,成功后如圖6所示。
圖6注冊使用Google Maps API
____接下來復制密鑰,選擇Admin→Configure→Preferences,這時會提示輸入用戶名、密碼,如圖7所示。
圖7 定位到Admin→Configure→Preferences
____在如圖8所示的界面中找到google_maps.key選項,并把密鑰填寫進去。注意,調整參數需要輸入用戶和密碼,如果忘記了Ntop密碼,可以通過root輸入“/usr/sbin/ntop –A”來修改用戶admin的密碼。
圖8 填寫密鑰
保存退出后,在Chrome 瀏覽器中再次選擇Hosts World Map,配置完成。
注意:由于Google Maps的限制,不能跟蹤所有IP地址。如果在設置時出現“Please enable make sure that the ntop html/ directory is properly installed”提示錯誤,多半是權限問題,可采用以下方法解決:
#chown -R ntop:ntop /var/lib/ntop/
#chown -R ntop:ntop /usr/share/ntop/
# ln -s /usr/share/ntop/html /var/lib/ntop/
# /etc/init.d/ntop restart
6.數據轉儲功能
____Ntop還支持把流量轉儲成其他格式(如文本文件、Perl、PHP、Python),以便其他外部程序可以對數據進行深加工。可以選擇Utils→Data Dump命令,如圖9所示。
圖9定位到Utils→Data Dump
如我們選擇報告主機類型,格式為PHP。則轉儲數據如下:
'1.1.1.12' => array(
'hostResolvedName' => '1.1.1.12',
'pktSent' => 12628,
'pktRcvd' => 32668,
'ipv4BytesSent' => 1818480,
'ipv4BytesRcvd' => 30936426,
'bytesMulticastSent' => 0,
'pktMulticastSent' => 0,
'bytesMulticastRcvd' => 0,
'pktMulticastRcvd' => 0,
'bytesSent' => 1818480,
'bytesRcvd' => 30936426,
'ipv4BytesSent' => 1818480,
'ipv4BytesRcvd' => 30936426,
'ipv6BytesSent' => 0,
'ipv6BytesRcvd' => 0,
'tcpBytesSent' => 1813788,
'tcpBytesRcvd' => 30936426,
'udpBytesSent' => 4692,
'udpBytesRcvd' => 0,
'icmpSent' => 0,
'icmpRcvd' => 0,
),
7.查看網絡流量圖(Local Network Traffic Map)
____首 先,在Admin→Configure→Preference中,配置dot.path的參數為 /usr/bin/dot,然后選擇 IP→Local→Network Traffic Map,就可以看到一張反應各個主機流量流向的拓撲圖,箭頭方向代表數據的流向,鼠標點擊相應的IP 地址就能看到非常詳細的IP統計信息。圖10是Ntop根據網絡流量情況自動生成的拓撲圖。
圖10Ntop檢測數據流向圖
8.查看主機流量
____管理人員在查看了網絡整體流量信息后,還希望能深入分析網絡中的主機流量情況,從而進行流量限制等方面的管理工作,可以選擇IP→Summary→Traffic,如圖11所示。
圖11 查看主機流量
查看傳輸層的會話,能明顯看出接收和發送了多少數據包,如圖12所示。
圖12 查看傳輸層的會話
9.啟用插件,Ntop還提供了5個插件,如圖13所示。
圖13 Ntop提供的插件
(1)ICMPWatch: 用于端口檢測,很多人都已經知道了可以借助“netstat –an”來查看當前的連接與開放的端口,但netstat并不是萬能的,在遭到OOB攻擊 時,不等使用netstat命令,機器就已經死機了。為此,出現了一種特殊的小工具——端口監聽程序。端口監聽并不是一項復雜的技術,但卻能解決一些局部 問題。
____圖中的圖標表示這是一臺Linux主機,圖標
表示是Windows主機,
表示郵件服務器,
表示是Web服務器。當我們需要查看所有服務器發送流量的大小排序的,只要單擊Byte下方的Sent即可,若單擊Host下方的某一臺主機,還能詳細顯示當前主機的IP、主機名、MAC、每小時發送/接收數據包的大小、協議分布類型統計等信息,如圖14所示,非常詳細。
圖14
(2)NetFlow: 近年來,很多服務提供商一直使用NetFlow。因為NetFlow在大型廣域網環境里具有伸縮能力,可以幫助支持對等點上的最佳傳輸流,同時可以用來建 立在單項服務基礎之上的基礎設施最優化評估,解決服務和安全問題方面所表現出來的價值,為服務計費提供基礎。NetFlow是一種數據交換方式,其工作原 理是:NetFlow利用標準的交換模式處理數據流的第一個IP包數據,生成NetFlow 緩存,隨后同樣的數據基于緩存信息在同一個數據流中進行傳 輸,不再匹配相關的訪問控制等策略,NetFlow緩存同時包含了隨后數據流的統計信息。
____下 面我們分兩步走,首先在路由器上配置一個NetFlow轉發流量,然后在Ntop上增加一個NetFlow接收流量。啟用NetFlow,定位到 Plugins→NetFlow→Activate,然后添加設備,在NetFlow Device Configuration中選擇 Add NetFlow Device選項,如圖15所示,設置端口可以自己定義,只要不與現有的沖突就可以,接口地址填寫打算監控的網段地址。
圖15NetFlow的配置
圖 16 網絡接口選擇
____接著,我們需要在路由器上做設置,NetFlow早期都是在路由器上實現的,但是現在一些高端的交換機支持NetFlow,比如Cisco6500系列。
首先需要全局配置,啟用NetFlow:
ip flow-export version 5
ip flow-sampling-mode packet-interval 100
在需要監控的Interface,啟用NetFlow:
Interface FastEthernet 9/0/1
ip address 192.168.150.20 255.255.255.0
ip route-cache flow sampled
show ip cache fow //查看NetFlow統計信息
show ip flow export //查看NetFlow輸出信息
____不 是所有的NetFlow源設備都支持基于Interface的NetFlow,比如Cisco4500就不支持。也就是說它不能在某個Interface 配置打開NetFlow,要么所有端口啟用,要么都不啟用,重要的是無法區分不同Interface上的流量情況,只能看到整個設備所有的流量情況。
在實踐中配置NetFlow需要注意以下兩點:
(1)根據NetFlow流的單向性,部署NetFlow時應根據網絡拓撲盡量在邊界的兩個端設備上配置協議。
(2)對于Catalyst 6000三層交換設備,通過Supervisor Engine 1和MultilayerSwitch Feature Card CMSFC支持多層交換(MLS)來實現快速交換。
____然 后,是Ntop的設置環節,這很重要,各個參數不能設置錯誤。首先是NetFlow的設備名稱,可以隨便填寫一個。接下來是使用的端口,這里一定要填寫路 由器上NetFlow的應用端口,例如3217。同時還要針對NetFlow監控的地址網段做設置,例如筆者的是 192.168.150.0/255.255.255.0。如圖10.24所示,每項參數修改設置完畢后直接單擊右邊的按鈕生效,完成后定位到菜單中的 Admin→switch NIC命令,找到我們添加的這個NetFlow設備點Switch Nic按鈕讓其生效,生效后我們就可以方便查看流量了,如 圖17所示。
圖17 查看流量
(3)rrdPlugin:用于生成流量圖。RRD可以簡單的說是MRTG的升級版,它比MRTG更靈活,更適合用Shell、Perl等程序來調用,生成所要的圖片。
(4)sFlow:sFlow(RFC 3176) 是基于標準的最新網絡導出協議,能夠解決當前網絡管理人員面臨的很多問題。sFlow已經成為一項線速運行的“永遠在線”技術,可以將sFlow技術嵌入 到網絡路由器和交換機ASIC芯片中。與使用鏡像端口、探針和旁路監測技術的傳統網絡監視解決方案相比,sFlow能夠明顯地降低實施費用,同時可以使面 向每一個端口的全企業網絡監視解決方案成為可能。與數據包采樣技術(如RMON)不同,sFlow是一種導出格式,它增加了關于被監視數據包的更多信息, 并使用嵌入到網絡設備中的sFlow代理轉發被采樣數據包,因此在功能和性能上都超越了當前使用的RMON、RMON II和NetFlow技術。 sFlow技術的獨特之處在于它能夠在整個網絡中,以連續實時的方式監視每一個端口,但不需要鏡像監視端口,對整個網絡性能的影響也非常小。
(5)手機插件:這個功能很有意思,我們可以用智能手機,隨時隨地監控我們的網絡,如圖18所示。
圖18 手機插件
插件使用高清演示:http://www.tudou.com/programs/view/Jvq8HOBDOuI/
Ntop在病毒查殺方面的應用
____某 客戶感染病毒案例:某天上班時間,網絡性能突然下降,導致不少用戶無法上網傳輸文件。首先懷疑是設備故障,后來又查找了線路是否有問題,但都能ping通 從而一一排除,隨后在Ntop檢測的“IP協議”菜單中發現網絡負荷維持在95%以上。在“Network Traffic:Data Sent”圖表中 顯示局域網中一臺機器發送大量的數據包,這臺機器的IP地址和MAC也能找到。基本能斷定這臺機器中了病毒在發送大量的UDP包,從而造成了廣播風暴,導 致網絡性能急速下降,如圖19所示,是Ntop捕捉到的隨機發送的地址列表。找到故障節點后,隨后根據MAC-IP-墻點的對應,及時將這臺機器隔離出網 絡進行殺毒處理。
圖19 病毒隨機發送數據包列表
____除 此之外,Ntop另一個重要功能是探測DDoS類型攻擊,主要是它可以通過分析網路流量來確定網路上存在的各種問題,也可以用來判斷是否有駭客正在攻擊網 路系統,還可以很方便地顯示出特定的網路協議、佔用大量頻寬的 主機、各次通信的目標主機、資料包的發送時間、傳遞資料包的延時等詳細訊息。
___上 面介紹了一些ntop工具的特點,不過還有很多由于篇幅限制沒有給大家介紹,要知道Ntop這個工具只是Ossim平臺的一個很小的模塊,Ossim系統 中集成的ntop可以將netflow數據存入mysql數據庫,并可以再下次系統啟動后繼續從數據庫中讀取,不會影響新生成的數據分析圖。要了解 Ossim是什么,請參考我的其他有關博文或視頻。