2008-01-31

Darkstat-統計指定網卡的封包流量

【前言】

[Darkstat - Nework Traffic Analyzer] 簡單來說就是把通過指定網卡的封包利用圖表統計方式呈現,讓您可以很簡單的了解現在網卡上進、出的流量。

Darkstat 特色:

  • 使用圖表方式來呈現 Host、Port。
  • 使用嵌入式網頁伺服器 (因此不需安裝 Web Server)。
  • 預設使用 DNS 來解析分析到的 Host。
  • 體積小、可攜式、單執行緒、高效率、不複雜。

Darkstat 成果展示畫面:

[Darkstat Graphs Screenshots]

[Darkstat Hosts Screenshots]

[Darkstat Hostnames Screenshots]

【作業環境】

FreeBSD 5.4-RELEASE-p7

darkstat-3.0.707

【安裝及設定】

Step1.安裝 darkstat 套件

 #cd /usr/ports/net-mgmt/darkstat    //切換到安裝路徑
#make install clean //安裝套件並清除安裝中不必要的檔案

Step2.編輯 /etc/rc.conf

編輯 /etc/rc.conf 來達到開機啟動 Darkstat 及指定要監聽的網卡名稱

 #vi /etc/rc.conf
darkstat_enable="YES" //開機啟動 Darkstat service
darkstat_interface="em0" //指定監聽的網卡名稱

Step3.啟動 darkstat

 #/usr/local/etc/rc.d/darkstat.sh start
Starting darkstat.
darkstat 3.0.707 (built with libpcap 2.4)
darkstat (03360): starting up
darkstat (03360): daemonizing to run in the background!
darkstat (03360): parent waiting
darkstat (03361): I am the main process
darkstat (03362): set uid/gid to 65534/65534
darkstat (03361): DNS child has PID 3362
darkstat (03361): caplen is 54
darkstat (03361): capturing in promiscuous mode
darkstat (03361): listening on 0.0.0.0:667
darkstat (03361): loaded 131 protos
darkstat (03361): loaded 1002 tcp and 968 udp servs, from total 1975
darkstat (03361): chrooted into: /var/run/darkstat
darkstat (03361): set uid/gid to 65534/65534
darkstat (03361): local_ip update(em0) = 61.60.59.58
darkstat (03361): entering main loop
darkstat (03360): parent done reading, calling waitpid
darkstat (03360): waitpid ret 0, status is 0

檢查 darkstat service 是否啟動

 #/usr/local/etc/rc.d/darkstat.sh status
darkstat is running as pid 3361.

檢查 darkstat service 是否開啟服務的 Port (Default 667)

 #sockstat |grep 667
nobody darkstat 3361 10 tcp4 *:667 *:*

檢查 darkstat process 是否執行中

 #ps ax |grep darkstat
3361 ?? Ss 0:00.01 /usr/local/sbin/darkstat -i em0 --chroot /var/run/darkstat --pidfile darkstat.pid --user nobody
3362 ?? Is 0:00.00 darkstat: DNS child (darkstat)

補充參數說明

參數說明
-i interface指定監聽的網路卡名稱
--debug開啟除錯模式
--no-promisc不使用混亂模式(promiscuous mode )
--no-dns不使用 DNS 來解析 IP -> Hostname 名稱
-p port指定 embedded webserver 使用的 Port (預設為 667)
-b bindaddr指定 embedded webserver 使用的 IP Address 預設使用 0.0.0.0
-f filter指定過濾 (packet filter),詳細過濾語法請參考 man tcpdump
-l network/netmask定義本地網段(local network),所以進入及出去的封包將會顯示在圖表(Graphs)中
--chroot dir指定 Chroot 資料夾
--user username指定執行服務的使用者 (預設使用 nobody)
--daylog filename指定 daily Log traffic statistics (必須配合 --chroot 設定)
--import filename匯入 darkstat database
--export filename匯出 darkstat database(必須配合 --chroot 設定)
--pidfile filename建立 darkstat process ID

【Me FAQ】

Q1.無法安裝 darkstat?

Error Meaage:

無法安裝 darkstat 並出現如下錯誤訊息

 #cd /usr/ports/net-mgmt/darkstat ; make install clean
On FreeBSD before 6.2 ports system unfortunately can not set default X11BASE by itself so please help it a bit by setting X11BASE=${LOCALBASE}
in make.conf.On the other hand, if you do wish to use non-default X11BASE, please set variable USE_NONDEFAULT_X11BASE. *** Error code 1 Stop.

Ans:

因 為本次安裝的機器為 FreeBSD 5.4-RELEASE-p7 而訊息也很清楚說明,若你在更新 Port tree 後且您的 FreeBSD 版本為 6.2 以前的話,那麼若是在安裝此套件時會安裝 X11 套件或不想安裝的話可以把相關的參數加到 /etc/make.conf 內。

 #vi /etc/make.conf                  //視個人需求加入吧
X11BASE=${LOCALBASE} //會安裝 X11 相關套件
USE_NONDEFAULT_X11BASE=yes //不安裝 X11 相關套件

【參考】

[Darkstat - Nework Traffic Analyzer or Network Monitor and Screenshots]

[苗栗縣大湖鄉大南國民小學FreeBSD 全球資訊網路架站日誌 - 流量統計 darkstat]

【Log】

初稿-2008/01/31

1 comment:

熊&揪 said...

請問你的.sh檔內容是什麼呀,照著做好像無法show出結果,因為我沒有產生出.sh檔@@