libpcap源碼
① ubuntu下沒有沒有pcap.h頭文件,怎麼辦
今天在ubuntu下進行安裝wireshark,費了很多時間,過程中出了很多錯誤,但最終安裝成功了,這里寫下自己的安裝步驟和方法,供大家參考。
安裝編譯工具:
$sudo apt-get install build-essential
為了成功編譯Wireshark,您需要安裝GTK+的開發文件和GLib庫(libraries)。
$sudo apt-get install libgtk2.0-dev libglib2.0-dev
安裝Checkinstall以便管理您系統中直接由源代碼編譯安裝的軟體。
$sudo apt-get install checkinstall
wireshark源碼 (頁面中的source code)
下載後的文件名:wireshark-1.2.2.tar.bz2
cd到文件目錄解壓:$tar -xvf wireshark-1.2.2.tar.bz2
$cd wireshark-1.2.2
編譯安裝命令如下:
$./configure
$make
$sudo make install
其中make編譯時間會比較長,這樣下來就基本安裝了。
下面是我這篇文章的關鍵,也是用ubuntu安裝的過程中極有可能遇到的問題,且都是在進行./configure編譯過程中出現,兩個問題如下:
---------------------------------------------------------------------------------------------------------
問題1:
view plain to clipboardprint?
./configure執行到最後出錯
checking for perl... /usr/bin/perl
checking for bison... no
checking for byacc... no
checking for yacc... no
configure: error: I couldn't find yacc (or bison or ...); make sure it's installed and in your path
./configure執行到最後出錯
checking for perl... /usr/bin/perl
checking for bison... no
checking for byacc... no
checking for yacc... no
configure: error: I couldn't find yacc (or bison or ...); make sure it's installed and in your path
解決辦法:
view plain to clipboardprint?
sudo apt-get install flex bison
sudo apt-get install flex bison
yacc(Yet Another Compiler Compiler),是Unix/linux上一個用來生成編譯器的編譯器(編譯器代碼生成器)。
如想深入了解google下。
問題2:
view plain to clipboardprint?
configure: error: Header file pcap.h not found; if you installed libpcap from source, did you also do "make install-incl", and if you installed a binary package of libpcap, is there also a developer's package of libpcap,
and did you also install that package?
configure: error: Header file pcap.h not found; if you installed libpcap from source, did you also do "make install-incl", and if you installed a binary package of libpcap, is there also a developer's package of libpcap,
and did you also install that package?
問題原因是ubuntu下缺少pcap.h等文件。
解決方法:
編譯安裝libpcap.
在www.tcpmp.org頁面中可下載源碼:libpcap-1.0.0.tar.gz
cd到文件目錄:
view plain to clipboardprint?
$tar -xvf libpcap-1.0.0.tar.gz
$cd libpcap-1.0.0.tar.gz
$./configure
$make
$sudo make install
$tar -xvf libpcap-1.0.0.tar.gz
$cd libpcap-1.0.0.tar.gz
$./configure
$make
$sudo make install
----------------------------------------------------------------------------------------------------------------------------------------------------
採用上面的方法後再回到文章前面的步驟:
$cd wireshark-1.2.2編譯安裝:
$./configure
$make
$sudo make install
這樣就安裝好了。
啟動方法:進入wireshark-1.2.2,輸入命令:view plain to clipboardprint?
$sudo ./wireshark
$sudo ./wireshark
這里如果不用sudo,則wireshark找不到網路設備介面,這主要與許可權有關,啟動時注意下就行。
② linux下使用libpcap進行數據捕獲,能夠將捕獲到的數據包保存為pcap文件
libpcap和winpcap最大的不同就是 內核緩沖區,用戶緩沖區等都不能設置,沒有提供這樣的函數,要編譯libpcap源碼。
另外,linux Fedora 下使用libpcap時,找不到pcap.h,查找發現安裝了libpcap的庫但是沒有頭文件。解決辦法是:
1.如何查看是否安裝libpcap? #rpm -aq libpcap
2.查找libpcap源,yum search pcap
3.安裝libpcap, yum install libpcap-devel.i386
③ Linux下按裝snort遇到了包依賴關系.
要麼yum install snort;
要麼yum install rpmlib libdnet.1 libpcap.so.1 libsfbpf.so.0,然s後rpm -ivh snort-2.9.2.3-1.RHEL6.I386.RPM
要不rpm -ivh snort-2.9.2.3-1.RHEL6.I386.RPM --nodeps裝上,但不一定能用
④ 請教tshark源碼整合
tshark是wireshark的指令形式,有些情況下抓取網路包但是不想調用圖形界面時,可以用tshark
1、下載libpcap源代碼
http://www.tcpmp.org/
libpcap-x.x.x.tar.gz libpcap安裝源文件
2. 解壓縮libpcap
tar zxvf libpcap-x.x.x.tar.gz
進入到解壓縮後的文件夾中 cd libpcap- x.x.x
3. 安裝flex
apt-get install flex
4. 安裝bison
apt-get install biso
5. 安裝libpcap
./configure
make
make install
6. 安裝tshark
apt-get install tshark
7、指令應用
tshark是wireshark命令行形式
1)指定要監聽的介面
-i <介面名稱>
比如-i eth2.如果不用-i指定監聽的介面,則默認為介面列表中第一個非回環介面(-D列印介面列表)
2)可監聽的介面列表
-D 列印介面列表
3)設置cap過濾條件
-f <過濾參數設置>
A. 設置監聽的協議類型:-f udp/tcp/http 註:協議類型必須為小寫
B. 設置源ip: -f「src host x.x.x.x」
C. 設置源埠: -f「src port xx」
D. 設置源ip和源埠: -f 「srchost x.x.x.x and src port xx」
E. 設置目的ip: -f「dst host x.x.x.x」
F. 設置目的埠: -f「dst port xx」
G. 設置目的ip和埠: -f 「dsthost x.x.x.x and port xx」
註:設置ip或埠時,必須用雙引號
4)設置抓包數
-c <包數量> ,比如-c 15 表示抓15個包就停止
5) 設置cap包容量
-a filesize:NUM
其中NUM為filesize的包容量,用此命令需要用-w命令指定保存的文件包。NUM單位為KB
6)保存文件
-w <文件名稱>
-w後面是要保存到的文件名字,也可以指定路徑
7) 在屏幕中顯示抓包的內容
-S
8)指定數據包的最大長度
-s <數據包長度>,單位為bytes
其他指令請參照在線幫助
⑤ 如何通過源碼安裝升級libpcap
安裝libcap開發包後,再試試看 sudo apt-get install libpcap-dev sudo apt-get install libnids-dev sudo apt-get install libnet1-dev