最近更新文章
2017/11/21
偵測、鑑識、回應兼備 端點安全更上層樓
2017/11/21
四個開源大數據工具 打造超高速輿情監控系統
2017/11/20
VMware協助台灣託管服務商轉型並交付新型服務
2017/11/20
打造私有雲協作平台 重新定義工作型態
2017/11/20
虛擬桌面VMware再出招 新版Horizon 7.2大提升
2017/11/19
Pure Storage 推出全新SAP自動化拷貝工具(CAT)
2017/11/17
打造智慧工廠 IPC大廠分享實戰經驗
2017/11/17
跨雲時代的轉型秘訣
2017/11/17
行為鑑識搭配防毒引擎 提升端點偵測效率
2017/11/16
威聯通科技引領雲端風潮 整合高速運算啟動AI應用
2017/11/16
Juniper Networks協助國立暨南國際大學擴充校園核心網路
2017/11/16
EDR跨足次世代防毒 挺進端點保護平台市場
2017/11/15
台灣駭客隊伍數破新高,全球駭客12月來台爭冠
2017/11/15
趨勢科技獲 2017 NSS Labs 評測,入侵偵測率的完美成績
2017/11/15
紅帽與阿里雲攜手 運用開放原始碼技術帶來更高靈活性
2017/11/15
team+攜手VMware 打造俱行動安全管理的企業協作平台
2017/11/15
多功能工作站 設備擴充好利害
2017/11/15
SAP協助如興進行數位轉型
2017/11/15
英特爾首款桌上型電腦與工作站專用Optane固態硬碟
2017/11/15
曜越全新數位監控軟體 雲端智慧電源管理平台
2017/11/15
達友科技、中華電信與Carbon Black聯手打造最強資安艦隊!
2017/11/15
VMware結合凌華科技提出預先整合式物聯網方案
將此篇文章跟 Facebook 上的朋友分享將此篇文章跟 Plurk 上的朋友分享將此篇文章跟 Twitter 上的朋友分享列印轉寄
2011/11/10

抓出誰在惡搞網路 用Netflow流量分析工具監控IP異常活動

丁光立
除了購買昂貴的設備軟體來分析網路流量來源,網管人員還可以運用免費的開放原始碼工具Netflow,找出可能影響公司網路正常運作的內部IP亂源。Netflow是一個分析引擎,只要讀取其他設備或程式送出格式支援的資料,便可提供用以分析的IP流量資料。本文介紹Netflow的安裝、設定及教學,並且針對其網頁介面NfSen及其模組PortTracker的安裝、設定與部署提供簡單的教學及說明。
身為網管人員總會經常發現自家的網路被惡搞。除了不定時偵測Server、設備的駭客外,更讓網管人頭痛的莫過於總是有著千奇百怪的理由而去點那些一看就知道有問題的惡意連結,或者執行看起來就有問題的郵件附檔而致使自己電腦被開後門或感染病毒、蠕蟲而把公司網路搞得一團糟的內部同仁。

要找到這些吹皺一池春水的公司同仁是迫切而且必要的。聰明的網管人必須懂得使用便利的工具來減輕自己的負擔,並且能快速而準確地找到亂源。

比較簡單但陽春的作法是,利用Cisco Router的IP Accounting功能用人眼進行觀察(假設是VPN內部連線或者Cisco Router是對外連線的設備)。

一般而言,企業對外的Internet出口通常是使用防火牆和IDS/IPS來過濾進出的封包,這一類的設備通常都有分析網路流量來源的功能。中小企業大多因預算考量而採用UTM設備,部分UTM設備也有提供陽春的報表或圖表功能。

除了這些昂貴的設備外,還是有一些不花錢的方法。在實務上,針對流量的部分,比較入門的就是MRTG(Multi Router Traffic Grapher),簡單輸入一下,就可以畫出淺顯易懂的圖表,其圖形輸出如圖1所示。MRTG已經發展了很久,相當地成熟,網路上參考資料繁多,在此不再贅述。

如果MRTG不能符合自身的需求,而希望能產生更多變化的話,則可使用RRDtool。它不受限於兩個輸入,熟練的話可以做出更多的效果,並且能夠產出豐富而多變的圖表。RRDtool的輸出如圖2所示。

▲圖1 MRTG的圖形輸出。


▲圖2 RRDtool的圖形輸出。


MRTG和RRDtool主要是用來做流量的觀測,雖然RRDtool也可以針對個別IP的活動進行繪圖,但是在操作時較為困難。

在圖1與圖2中刻意不使用流量圖作範例,目的是要告訴讀者,它們不僅僅只能用來繪製流量圖,更可以提供不同的輸出變化。

針對個別IP活動的偵測,比較知名而適宜的套件是ntop及本文的主角Netflow。從筆者的使用心得來看,ntop比較容易入門,也較不需要參考資料。Netflow入門的門檻較高,相對ntop而言,其參考資料也較少。因此本文選定Netflow作為介紹的對象。

使用套件說明

在本文中,會介紹Netflow的安裝、設定及教學,並且針對其網頁介面NfSen及其模組PortTracker的安裝、設定與部署做簡單的教學及說明。

在開始之前,必須先介紹一下相關的概念。Netflow充其量只是一個分析引擎,它需要由其他設備(程式)用Netflow認識的資料格式,提供用以分析的IP流量資料。

有幾個方法可以提供IP流量給Netflow程式,一是使用設備,例如Cisco路由器或防火牆,二為使用程式,例如安裝在FreeBSD或Linux上的套件。本文將使用pfSense作為提供分析資料的來源,它的原理是使用FreeBSD上的套件,將流量加以處理後,再以Netflow的格式輸出。

pfSense是一個開放原始碼(Open Source)的防火牆軟體,它可以輕鬆地安裝在個人電腦上,依筆者的經驗,P4等級的機器就可以妥善運作。安裝的部分也很簡單,把ISO檔燒錄成光碟之後,再用此光碟開機,它就會引導使用者進行安裝及相關的設定。

在安裝完成後,就可以在毋須花大錢添購高級設備的前提下,以最少的人力及物力來完成監控IP活動的目的,pfSense架設的位置如圖3防火牆所在的位置。

接著討論網路架構的部分,本文所使用的架構如圖3所示。不管是用戶連至Internet的流量,或是Internet連入用戶端的流量,都會經過pfSense,而pfSense會將流經它的流量,使用pfflowd套件將這些流量加以剖析,並將之轉換為Netflow可以接受的格式,再傳送給Netflow Server進行處理。接著說明Netflow的設定與安裝。

▲圖3 Netflow網路架構圖。


使用Netflow

在此選用的Linux發行版本是這幾年相當受歡迎的Ubuntu,使用版本是10.04 Server版。所安裝的套件及安裝方法如下(若是新安裝的機器,記得先執行「apt-get update」指令):



安裝librrd-dev時需時較久,請耐心等候。最後所安裝的nfdump就是Netflow的套件。

Netflow的安裝到此就完成了,接著驗證一下Server是否有收到pfSense送過來的資料。必須先到pfSense的管理介面(筆者使用的版本是1.2.1)安裝相關的套件,才能將收到的資料以Netflow的格式輸出。安裝畫面如圖4所示,先點選System選單中的「Packages」。

▲圖4 安裝Netflow的套件。


點選後、往下尋找可以找到如圖5的頁面,在pfflowd的項次,點選〔+〕號進行安裝。

▲圖5 安裝pfflowd。


安裝完成後,在Services的最下面一行可以看到「pfflowd」,點選它以進行相關的設定。選單所在位置如圖6所示。

▲圖6 啟動pfflowd。


圖7是相關資訊的輸入頁面,填入所需的資料。「Host」欄位是用來輸入要接收Netflow的主機,也就是剛剛安裝nfdump的主機。「Port」部分使用預設的「9995」即可。

而「Source Hostname/IP」欄位要輸入的是pfSense主機的IP。「pf rule direction restriction」毋須做特別指定,「Netflow version」使用預設的「5」即可。

▲圖7 pfflowd相關設定。


接著驗證Netflow主機是否有收到pfSense送過來的資訊。執行指令「tcpdump udp port 9995」以便確認UDP的Port 9995是否有收到封包,輸出如圖8所示。

▲圖8 檢查Netflow是否有收到資料。


確認有收到封包後啟動nfcapd,這是Netflow用來收集封包的程式。執行指令「mkdir -p /var/log/nfdump」,先建立一個目錄來收這些檔案,之後使用「nfcapd -w -D -l /var/log/nfdump」這個命令來啟動nfdump。在該命令中,-w是指輸出成檔案,-D代表以daemon的方式執行,而-l則是指定要儲存的目錄。

接著檢查一下「/var/log/nfdump」目錄裡面是不是已經有檔案。以筆者為例,此時在「/var/log/nfdump」目錄內,已經產生了一個名為「nfcapd.201109221600」的檔案(檔名會依當時的時間而定)。

不過,由於nfcapd產出的是二進位檔,裡面的內容無法直接看懂,必須依靠其他工具的協助,因此在本文中會介紹GUI介面NfSen,屆時就能一窺其中的內容。

在此要特別注意的是,在執行NfSen時,它會自動去呼叫nfcapd,不需要手動執行nfcapd。因此要把剛剛執行的nfcapd從行程池中刪除,使用指令為「kill -9 'ps ax | grep nfcapd | awk '{print $1}"」。測試時建立的目錄「/var/log/nfdump」記得一併刪除。

安裝NfSen

NfSen的全名是Netflow Sensor,它是一個Web介面的Netflow前端程式。可以用圖像化的方式讓管理者輕鬆地查看目前網路的狀態,接下來介紹其安裝及設定方式。

NfSen的安裝及設定流程是,先下載NfSen,將其解壓縮,之後再把預設的設定檔複製成安裝時的設定檔,並編輯其內容,相關指令如下:



接著,開始編輯nfsen.conf。首先要編輯的是$BASEDIR,端賴管理者將它安裝在何處,本例安裝至「/usr/local/nfsen」。$WWWUSER及$WWWGROUP部分請參照個人使用的Linux發行版本來調整。以Ubuntu而言,須改為「www-data」。

此外,$HTMLDIR部分必須指定為個人置放網頁的目錄(請自行安裝apache2和php5),在此設定為 「/var/www/nfsen」。$PREFIX部分,筆者設定為 「/usr/bin」,請依nfdump此執行檔所在的目錄進行設定。

而%sources,則將peer1和peer2那兩行刪除。至於upstream1該行最後面的逗號也要拿掉。(upsteam1可以自行更換成自行定義的名稱)。

接下來新增一個使用者netflow,將用來執行該程式,請使用如下的指令格式:



然後就可以開始安裝nfsen,指令如下:



在安裝過程中,會提示是否要將peer1和peer2的相關資訊刪除,回答「Y」將其刪除。在完成安裝後,可以登入「http://yourhost/nfsen/nfse.php」查看(yourhost請自行代換為自己使用的IP或Domain Name)。

此時會有錯誤訊息,這是因為nfsen還沒有啟動的關係。然後,使用指令「/usr/local/nfsen/bin/nfsen start」啟動nfsen。

倘若之前沒有特別指定profile-data所在目錄,那麼在「/usr/local/nfsen/profiles-data/live/upstream1」目錄中,就會自動產生檔案,檔名為「nfcapd.current」。

在五分鐘之後,就可以看到2011的目錄自動產生。在預設的狀況下,nfsen會自動依年、月、日來儲存,並分類nfcapd所儲存的檔案。

此時可以驗證一下成果,先切換到profiles-data所在的目錄,例如「/usr/local/nfsen/profiles-data/live/upstream1/2011/09/24」,接著執行命令「nfdump -r nfcapd.201109241035」(檔案的副檔名請依實際狀況進行更改)。理論上,應該可以看到許多資料,實際情形類似圖9所示:

▲圖9 nfdump的輸出。


NfSen的安裝到此已完成,讀者可以自行操作一下NfSen的介面,它並不難入門。

不過,在略為操作之後,讀者可能會覺得奇怪,NfSen似乎沒有提供更詳細資料的查詢,它只有提供Flows、Packets、Traffic的統計資訊,無法讓管理者去查詢IP、port的使用及連線情形。

要讓NfSen查詢相關的資料,必須自己下filter,它的語法有點類似tcpdump,讀者可以參考網頁「http://nfsen.sourceforge.net/#mozTocId652064」,官網有詳細的說明,並不會太難以理解,不過缺點就是只能用文字的方式呈現,如果想要用圖型化的方式來查看,就需要配合其他的工具。

使用PortTracker

NfSen提供非常豐富的外掛程式(Plugins),如果想要針對IP、Port的使用及連線情形查看的話,需要安裝PortTracker這個套件。接著就來示範怎麼安裝及設定PortTracker。

這裡必須事先說明的是,透過apt-get安裝的nfdump無法提供安裝PortTracker時所需的程式,因此必須手動下載nfdump,並將之編譯,但無須安裝。

STEP 1 首先下載nfdump。


(全部為同一行)

STEP 2 將之解壓縮,並切換至解壓縮後的目錄。



STEP 3 把編譯過程式需要使用的套件也安裝進來。



STEP 4 開始編譯,指定安裝在「/usr/local/nfdump」目錄,並且啟用nftrack模組。再把剛剛產出的nftrack複製到「/usr/bin」目錄內。



STEP 5 再來安裝PortTracker,切換至PortTracker所在的目錄。



STEP 6 把檔案複製至nfsen的相關目錄。



STEP 7 建立目錄來存放PortTracker的資料,並且設定所屬的使用者為www-data。



STEP 8 之後編輯「/usr/local/nfsen/plugins/PortTracker.pm」檔,把$PORTSDBDIR的「/data/ports-db」改為「/var/log/netflow/porttracker」(剛剛建立的目錄)。

STEP 9 接著編輯「/usr/local/nfsen/etc/nfsen.conf」,找到@plugins,修改內容如下:



STEP 10 以www-data身分執行nftrack以建立rrd檔,此步驟需時較久。



STEP 11 隨後,設定此目錄所屬的使用者、群組和權限。



STEP 12 執行指令「/usr/local/nfsen/bin/nfsen reload」重新啟動NfSen。稍待片刻,再點選「http://yourhost/nfsen/nfsen.php」裡面的「Plugins」,就可以看到PortTracker的輸出結果。

▲圖10 PortTracker的輸出結果。


找出占用大量Session的IP

接下來示範如何查看占用大量session的IP。首先,點選TCP Packets,然後將Display改為12 Hours,將Y-axis改為Log(Y軸取Log,在查看時會比較明顯),最後把Type改為Stacked以方便查看。這個時候可以看出Port 25565(紅色)占了大多數的TCP Packets,如圖10所示。

再來回到NfSen的主選單,找出是哪一個IP正在使用這個Port。點選上面選單的Details,再點選TCP,Display同樣點選12 Hours,旁邊的時間軸,點選最右邊的〔>|〕(Goto last slot),如圖11所示。

▲圖11 NfSen的輸出。


最後,在Filter裡執行指令「proto tcp and port 25565」,並按下〔process〕,就可以看到Filter之後的輸出,可以看出210.68.X.Y(IP我遮蔽了)占了最大的流量。

隨後就可以到防火牆或是前述的pfSense做攔阻或監控的動作,相關操作如圖12所示。

▲圖12 使用Filter查出占大流量的IP。


結語

此次示範了如何在不增加公司的支出下,使用自由軟體來架設功能強大的Netflow,以找出可能影響公司正常網路運作的IP。

事實上,使用價格昂貴的設備和軟體可以更輕易地解決這些問題,但並不是每一間公司都願意做這樣的投資,如何在兼顧公司成本及管理效率下,對公司網路做適宜的管控,才是真正考驗網管人能力之處。希望每位網管人都能善用這些自由軟體資源,減輕自己和公司的負擔。
這篇文章讓你覺得滿意不滿意
送出
相關文章
資安委外考驗實力 雄厚資源墊高服務等級
新技術分析加密流量 免解密就能揪出潛伏威脅
Divergent Dynamics無線區域網路效能測試中Ruckus大勝其他802.11ac設備商
5G將帶動產業數位化 電信商整合資通訊成推手
威脅意識帶動資安預算 NGFW/UTM市場火熱
回應
Eric Chou
於 2011/12/11 22:25 回應
NFSen 和 NFDump 都是好軟體,謝謝介紹。順帶一提的是有一些產品已不支持NetFlow v5,利如 Cisco ASA (8.0 後) 還有就是我以前在安裝時曾浪費了一些時間抓 Bug 結果發現 ASA 根本需要用不同的版本, NetFlow Security Event (NSEL)。
在高傳送或非 Cisco 的環境下,有時 sFlow 也是一種選擇。
留言
顯示暱稱:
留言內容:
送出