隨時監控網路的任何風吹草動,才能在問題還未惡化之前即時排除,而NetFlow就是一項符合以上管理需求的網路監測功能,本文將示範如何利用常見的Cacti來收集匯整NetFlow相關資訊,讓企業內的網路管理維護變得更容易。
在2017-05-05目錄中,可以看到每分鐘都有產出檔案,如圖12所示。
|
▲圖12 確認檔案是否產生。 |
這裡使用flow-stat指令來驗證NetFlow封包內容是否正確,如圖13所示,指令內容如下:(檔名請自行代換)
|
▲圖13 以flow-stat指令確認NetFlow封包內容。 |
NetFlow封包的觀察與產出報表
可針對NetFlow的報表進行過濾,並針對過濾後的結果輸出報表,也可以定期產出報表,以下分別介紹其操作方式。
設定過濾器(Filters)
登入Cacti後,依序點選頁籤列的Flows,再點選Filters。Saved Query的部分在儲存時可自行命名,命名時必須考慮是否產出報表(Report),若須產出報表,建議可命名為與報表相關的名稱以便於識別。Listener的部分請先自行設定,在此以先前設定的MyTestRouter進行示範。
關於時間區段設定,必須設定要查看Flow的時間區間,日期的部分可以設定Start Date和End Date,詳細時間的部分,可設定Start Time(預設是8個小時前)以及End Time,End Time的部分預設值為現在的時間(NOW)。
網路協定的部分,可以設定ToS(Type of Service)針對IP優先權做篩選,也可針對TCP Flags和Protocols進行過濾,這裡使用預設值即可。
IP和Port的部分可以篩選Source IP和Dest IP,以及Source Port與Dest Port,Port的部分可以篩選多筆,例如80,443,就代表要同時篩選出80 Port和443 Port的部分。
|
▲圖14 設定Filters。 |
另外,也可以針對Source Interface、Dest Interface、Source AS及Dest AS進行篩選,在此使用預設值。相關的設定如圖14所示。
接著點選Save,會詢問Filter的名稱,在此輸入hourly report,與之後要設定的報表對齊,如圖15所示。
|
▲圖15 設定Filter名稱。 |
修改報表參數
然後,回頭修改報表的設定。在flows的Plugin中,報表可分為兩種,一種是週期性報表,另一種則是即時報表。在此修改之前建立的Filter:hourly report。
登入Cacti後,依序點選頁籤列的flows,再點選Filters,再點選Saved Query的下拉式選單,選擇之前建立的hourly report,接著針對Report Parameters進行調整。
Statistics的部分可選擇的項次很多,一般是選擇Source/Destination IP,可依自己的需要進行調整,若須觀察某些特殊的Port,亦可修改為UDP/TCP Port、UDP/TCP Destination Port或UDP/TCP Source Port。
Include if的部分則是選擇Flow出現的時間區間,Any Part in Specified Time Span指的是只要Flow的運作在該時段中就被列出,代表Flow可能不是在這個時段開始的,或者不是在這個時段結束的。而End Time in Specified Time Span,代表Flow最後是在這個時段結束的。Start Time in Specified Time Span則表示Flow是在這個時段開始的。至於Entirely in Specified Time Span,代表Flow的開始及結束都在該時段中。
此外,Resolve Addresses指的是否將IP轉換為Domain Name,Sort Field指的是可依Source IP、Destination IP、Flows、Bytes及Packets的大小進行排序,預設為Bytes。最後是Max Flows,可篩選Top 5至Top 200,預設為Top 20。設定完成後,記得點選Update更新Filter,相關設定如圖16所示。
|
▲圖16 設定報表參數。 |
查看即時報表
接著示範如何查看即時報表,在圖16中可以點選View(針對每個Filter都可以顯示它的View),點選後,輸出結果如圖17所示。
在Exclude部分,可以排除Top 1至Top 5的用戶不加以查看,以簡化檢查的過程。Show/Hide部分除了預設的Table之後,也可以採用Bytes Bar、Packet Bar和Flows Bar這三種柱狀圖的方式呈現。試著點選Bytes Bar,其輸出如圖18所示。
|
▲圖17 顯示即時報表。 |
|
▲圖18 Bytes Bar的柱狀圖輸出。 |
即時報表的部分,也可以修改報表參數並在不同頁面查看出其報表,可便於比對。例如想查看Top 20及Top 10的差異,可以在Report Parameters頁面下選擇Max Flows為Top 20再點選View,接著再修改Max Flows為Top 10並點選View,這樣就會產生兩頁不同的報表,也就能點選不同的報表以找出問題點。
建立週期性報表
設定Filter後,接著示範如何建立定期報表。登入Cacti之後,依序點選頁籤列的flows,再點選Schedules,再點選右上角的Add。
Title的部分輸入NetFlow Hourly Report,Enable的部分預設為勾選,而Filter Name應該會自動選擇先前設定的hourly report(因筆者目前只有這一個Filter),請依現況調整。
另外,Send Interval的部分預設為Every Hour,在此使用預設值即可。Start Time部分設定為下一個整點,最後是Email Addresses,請輸入想收取報表的電子郵件帳號,相關設定如圖19所示。
|
▲圖19 設定Report。 |
設定完成後,就可以每個小時在電子郵件信箱看到以下的報表,如圖20所示。
|
▲圖20 可以每個小時在電子郵件信箱內看到報表。 |
<本文作者:丁光立,在ISP工作多年。對於Cisco設備較熟悉,除此之外也研究Linux,這幾年慢慢把觸角伸到資安的領域,並會在自己的blog(http://tiserle.blogspot.com/)分享一些實務上的經驗和測試心得。>