1、前言
IPBand - IP Bandwidth Watchdog,ipband is a libpcap(Packet Capture Library) based IP traffic monitor ,簡單來說就是可以統計通過指定網卡的封包利用 (.txt or .html) 統計方式呈現,讓您可以很簡單的了解現在網卡上進、出的流量,或是用來觀看主機所在的網段進出的封包,例如用在 Gateway 上的話就可以很即時來查看 Client 目前的即時流量。IPBand 特色:
- pcap based IP traffic monitor。
- 統計結果可輸出為 .txt or .html 並可配合 MTA 設定來定時寄送統計結果。
- 可指定統計頻寬的門檻 (kBytes/sec)、Average 時間、Report 時間、Top Host。
IPBand 成果展示畫面:
文章目錄
1、前言2、實作環境
3、安裝及設定
步驟1.安裝相關套件 libpcap、libpcap-devel、gcc
步驟2.安裝 IPBand
步驟3.修改 ipband.conf 設定檔
步驟4.啟動 ipband
4、參考
5、Me FAQ
Q1.無法安裝 ipband 出現錯誤訊息 pcap.h: No such file or directory?
Q2.無法安裝 ipband 出現錯誤訊息 make: gcc: Command not found?
Q3.ipband 服務似乎沒啟動成功,查看狀態出現 ipband dead but subsys locked?
Q4.啟動 ipband 服務時卡住?
2、實作環境
- CentOS 5.1 (Linux 2.6.18-53.1.4.el5)
- ipband-0.8
- gcc-4.1.2-14.el5
- libpcap-0.9.4-11.el5
- libpcap-devel-0.9.4-11.el5
3、安裝及設定
步驟1.安裝相關套件 libpcap、libpcap-devel、gcc
先確定系統是否有此三個相關套件,否則等一下 ipband-0.8 的安裝過程會失敗。# rpm -qa libpcap libpcap-devel gcc
gcc-4.1.2-14.el5
libpcap-0.9.4-11.el5
libpcap-devel-0.9.4-11.el5
若有缺少相關套件就利用 yum 來安裝吧。
# yum -y install gcc //安裝 gcc 套件
# yum -y install libpcap //安裝 libpcap 套件 (/usr/lib/libpcap.so.0)
# yum -y install libpcap-devel //安裝 libpcap-devel 套件 (/usr/include/pcap.h)
步驟2.安裝 IPBand
以下為下載 IPBand v0.8 並解開該壓縮檔及安裝。# cd ~ ; wget http://ipband.sourceforge.net/ipband-0.8.tgz //下載 IPBand v0.8
# tar zxvf ipband-0.8.tgz //解壓縮 ipband-0.8.tgz
# cd ipband-0.8 //進入 ipband 資料夾
# make ; make install //安裝 ipband
步驟3.修改 ipband.conf 設定檔
修改 ipband.conf 設定檔,內容如下:# cd /etc ; cp ipband.sample.conf ipband.conf //複製範例設定檔
# vi /etc/ipband.conf //修改設定檔 (視個人需求調整)
debug 2 //啟動服務時可看到詳細的設定情形
interface eth0 //指定監聽的網卡
promisc yes //網卡混亂模式 promiscuous mode
fork yes //將 ipband 丟到背景執行
filter net 192.168.1.0/24 //指定過濾的網段
outfile /home/web/ipband/ipband.txt //將統計結果輸出成 .txt 並指定路徑
bandwidth 20 //指定統計頻寬門檻 (kBytes/sec)
average 5 //指定平均統計時間 5 秒
report 60 //指定輸出到 .txt 的時間 60 秒
top 10 //指定列出前 10 名
步驟4.啟動 ipband
完成設定之後,便可以啟動 ipband 服務,因為有設 debug 2 所以可清楚看到設定值。# /etc/rc.d/init.d/ipband start //啟動 ipband 服務
Starting ipband:
ipband 0.8 (compiled Apr 24 2008)
libpcap version 0.9.4
started Thu Apr 24 18:00:42 2008
Option values:
Debug level: 2 Promiscuous mode: yes
Configuration file: /etc/ipband.conf
Averaging period (sec): 5
Reporting peroid (sec): 60
Bandwidth threshold (kBps): 20
Pcap filter string: net 192.168.1.0/24
Subnet mask bits: 24
Report output file: /home/web/ipband/ipband.txt
HTML output file: (null)
Report mail to: (null)
Report mail footer file: (null)
MTA string: (null)
Report top connections: 10
Frame length adjustment: 0
Running in background...19296
OK
檢查 ipband process 是否執行中。
# ps ax |grep ipband
19351 ? Ss 0:00 /usr/local/bin/ipband
因為啟動了網卡的混亂模式 (promiscuous mode),所以可以從 /var/log/message 可知是否在監聽或結束監聽。
啟動監聽
Apr 24 12:12:20 test1 kernel: device eth0 entered promiscuous mode
Apr 24 12:12:20 test1 kernel: audit(1209010340.129:7): dev=eth0 prom=256 old_prom=0 auid=4294967295
結束監聽
Apr 24 12:13:20 test1 kernel: device eth0 left promiscuous mode
Apr 24 12:13:20 test1 kernel: audit(1209010400.495:8): dev=eth0 prom=0 old_prom=256 auid=4294967295
成果展示
4、參考
5、Me FAQ
Q1.無法安裝 ipband 出現錯誤訊息 pcap.h: No such file or directory?
Error Message:我在切換到 ipband-0.8 資料夾輸入 make 來產生安裝檔案時卻失敗了,並出現如下錯誤訊息?
~/ipband-0.8# make
gcc -Wall -I/usr/include/pcap -c -o main.o main.c
In file included from main.c:27:
ipband.h:49:18: error: pcap.h: No such file or directory
In file included from main.c:27:
ipband.h:180: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
ipband.h:239: warning: ‘struct pcap_pkthdr’ declared inside parameter list
ipband.h:239: warning: its scope is only this definition or declaration, which is probably not what you want
main.c: In function ‘main’:
main.c:39: error: storage size of ‘pkthdr’ isn’t known
main.c:148: warning: implicit declaration of function ‘pcap_fileno’
main.c:148: error: ‘pcapfile_m’ undeclared (first use in this function)
main.c:148: error: (Each undeclared identifier is reported only once
main.c:148: error: for each function it appears in.)
main.c:167: warning: implicit declaration of function ‘pcap_next’
main.c:237: warning: implicit declaration of function ‘pcap_close’
main.c:39: warning: unused variable ‘pkthdr’
make: *** main.o Error 1
Ans:
從錯誤訊息中可以看到關鍵的一行寫說 ipband.h:49:18: error: pcap.h: No such file or directory 查看了一下我的 /usr/include 下真的沒有 pcap.h 檔案所以當然出問題了,請安裝 libpcap-devel 套件即可解決。
# yum -y install libpcap-devel //安裝 libpcap-devel 套件 (/usr/include/pcap.h)
# rpm -ql libpcap-devel //列出此套件安裝了哪些檔案
/usr/include/pcap-bpf.h
/usr/include/pcap-namedb.h
/usr/include/pcap.h
/usr/lib/libpcap.a
/usr/lib/libpcap.so
Q2.無法安裝 ipband 出現錯誤訊息 make: gcc: Command not found?
Error Message:我在切換到 ipband-0.8 資料夾輸入 make 來產生安裝檔案時卻失敗了,並出現如下錯誤訊息?
~/ipband-0.8# make
gcc -Wall -I/usr/include/pcap -c -o main.o main.c
make: gcc: Command not found
make: *** main.o Error 127
Ans:
從錯誤訊息中可以看到關鍵的一行寫說 make: gcc: Command not found 查看了一下真的沒有安裝 gcc 套件所以當然出問題了,請安裝 gcc 套件即可解決。
# yum -y install gcc //安裝 gcc 套件
Q3.ipband 服務似乎沒啟動成功,查看狀態出現 ipband dead but subsys locked?
Error Message:如果你是使用指令的方式來啟動,而不是使用設定檔的方式來啟動的話就有可能出現這樣的問題。
# /etc/rc.d/init.d/ipband statusipband dead but subsys locked
Ans:
解決方式有二個 (停止 ipband、刪除 /var/lock/subsys/ipband) 即可,我個人是覺得把設定檔設一設然後指令方式啟動比較方便。
# /etc/rc.d/init.d/ipband stop //方式一
Shutting down ipband: [FAILED]
# rm /var/lock/subsys/ipband //方式二
# /etc/rc.d/init.d/ipband status //再查看狀態應該 OK!!
ipband is stopped
Q4.啟動 ipband 服務時卡住?
Error Message:當我啟動 ipband 服務時系統卡住了,也不知到底有沒有啟動成功?
# /etc/rc.d/init.d/ipband start //沒有出現 OK,也沒反應
Starting ipband:
Ans:
原因在於你設定檔可能沒有設將 ipband 丟到背景執行,所以當你執行服務時其實就是啟動了只是在前景執行你覺得好像沒反應而以。
# vi /etc/ipband.conf //修改設定檔
fork yes //將 ipband 丟到背景執行