tcpdump經常使用參數詳解

                        tcpdump經常使用參數詳解html

                                                做者:尹正傑安全

版權聲明:原創做品,謝絕轉載!不然將追究法律責任。服務器

 

 

  很久沒有更新個人博客了,看來本身最近尚未在放假中回過神來啊,哈哈~是否是也有小夥伴跟我同樣呢?迴歸正題,來學習咱們今天的Linux命令!這個命令在咱們的工做中用的頻率雖然不是過高,可是做爲一個運維人員,一個複合型人才對這個命令仍是必須瞭解一點的喲!網絡

  tcpdump是一個用於截取網絡分組,並輸出分組內容的工具。tcpdump憑藉強大的功能和靈活的截取策略,使其成爲類UNIX系統下用於網絡分析和問題排查的首選工具。 
  tcpdump提供了源代碼,公開了接口,所以具有很強的可擴展性,對於網絡維護和入侵者都是很是有用的工具。tcpdump存在於基本的Linux系統中,因爲它須要將網絡界面設置爲混雜模式,普通用戶不能正常執行,但具有root權限的用戶能夠直接執行它來獲取網絡上的信息。所以系統中存在網絡分析工具主要不是對本機安全的威脅,而是對網絡上的其餘計算機的安全存在威脅。用簡單的話來定義tcpdump,就是:dump the traffic on a network,根據使用者的定義對網絡上的數據包進行截獲的包分析工具。 tcpdump能夠將網絡中傳送的數據包的「頭」徹底截獲下來提供分析。它支持針對網絡層、協議、主機、網絡或端口的過濾,並提供and、or、not等邏輯語句來幫助你去掉無用的信息。
運維

 

一.數據鏈路層頭信息 ssh

[root@yinzhengjie ~]# tcpdump -e host 192.168.2.45 | grep "00:0c:29:d4:db:87"tcp

抓取zabbix服務器的數據包,過濾掉有關本機IP的數據包:(192.168.2.45是zabbix服務器,後面的mac地址是本機的的mac)工具

 二.ARP包的tcpdump輸出信息 學習

[root@yinzhengjie ~]# tcpdump arp | grep -v "ARP, Request who-has bogon tell bogon, length 46"優化

過濾掉無用的信息

 

 三.抓取2個主機之間的數據包

[root@yinzhengjie ~]# tcpdump host 192.168.2.45  and 172.30.1.2 or 172.30.1.60 

在這裏我截獲的是zabbix服務器(192.168.2.45)與其中2個agent主機的數據(172.30.1.2,172.30.1.60),下圖是部分數據截圖:

 四.想要截獲一臺主機除了某個IP的數據包信息

[root@yinzhengjie ~]# tcpdump host 192.168.2.45   and ! 172.30.1.2

這裏截獲了zabbix服務器(192.168.2.45),除了172.30.1.2的全部數據包信息

 五.截獲某臺機器的ssh服務連接信息,而且不轉換主機名

[root@yinzhengjie ~]# tcpdump -nn -n src host 192.168.2.45 and port 22 and tcp

我這裏是截獲的zabbix服務器的ssh服務信息,先敲擊這個命令,而後在去連接,就會出現如下信息。(個人宿主機IP是172.30.1.2)

固然,上面只是能看到IP,若是你還想看到這些IP所對應的MAC也是能夠的喲

[root@yinzhengjie ~]# tcpdump -e src host 192.168.2.45 and port 22 and tcp -n -nn

六.過濾源主機和指定的目的主機的信息

[root@yinzhengjie ~]# tcpdump src host 192.168.2.45 and dst net 172.30.1.0/24

 這裏是過濾源主機是192.168.2.45到目的網絡(172.30.1.0/24)的數據包.

七.過濾源物理地址的數據包信息(不能跟IP,僅僅支持MAC喲)

 [root@yinzhengjie ~]# tcpdump ether src 00:0C:29:D4:DB:87 

八.過濾源主機和目的端口不是telnet的報頭,並導入到tes.t.txt文件中:

 [root@yinzhengjie ~]# tcpdump src host 192.168.2.45 and dst port not telnet -l > test.txt

我這裏過濾的是192.168.2.45並且目的端口不是telnet的報文喲

 九.抓取本地迴環網卡信息

十.抓取ICMP數據包

[root@yinzhengjie ~]#  tcpdump  -nnn -s 10000 | grep -i icmp
 

 

其餘經常使用參數:

-A 以ASCII格式打印出全部分組,並將鏈路層的頭最小化。 
-c 在收到指定的數量的分組後,tcpdump就會中止。 
-C 在將一個原始分組寫入文件以前,檢查文件當前的大小是否超過了參數file_size 中指定的大小。若是超過了指定大小,則關閉當前文件,而後在打開一個新的文件。參數 file_size 的單位是兆字節(是1,000,000字節,而不是1,048,576字節)。 
-d 將匹配信息包的代碼以人們可以理解的彙編格式給出。 
-dd 將匹配信息包的代碼以c語言程序段的格式給出。 
-ddd 將匹配信息包的代碼以十進制的形式給出。 
-D 打印出系統中全部能夠用tcpdump截包的網絡接口。 
-e 在輸出行打印出數據鏈路層的頭部信息。 
-E 用spi@ipaddr algo:secret解密那些以addr做爲地址,而且包含了安全參數索引值spi的IPsec ESP分組。 
-f 將外部的Internet地址以數字的形式打印出來。 
-F 從指定的文件中讀取表達式,忽略命令行中給出的表達式。 
-i 指定監聽的網絡接口。 
-l 使標準輸出變爲緩衝行形式,能夠把數據導出到文件。 
-L 列出網絡接口的已知數據鏈路。 
-m 從文件module中導入SMI MIB模塊定義。該參數能夠被使用屢次,以導入多個MIB模塊。 
-M 若是tcp報文中存在TCP-MD5選項,則須要用secret做爲共享的驗證碼用於驗證TCP-MD5選選項摘要(詳情可參考RFC 2385)。 
-b 在數據-鏈路層上選擇協議,包括ip、arp、rarp、ipx都是這一層的。
-n 不把網絡地址轉換成名字。
-nn 不進行端口名稱的轉換。
-N 不輸出主機名中的域名部分。例如,‘nic.ddn.mil‘只輸出’nic‘。 
-t 在輸出的每一行不打印時間戳。 
-O 不運行分組分組匹配(packet-matching)代碼優化程序。 
-P 不將網絡接口設置成混雜模式。 
-q 快速輸出。只輸出較少的協議信息。 
-r 從指定的文件中讀取包(這些包通常經過-w選項產生)。 
-S 將tcp的序列號以絕對值形式輸出,而不是相對值。 
-s 從每一個分組中讀取最開始的snaplen個字節,而不是默認的68個字節。 
-T 將監聽到的包直接解釋爲指定的類型的報文,常見的類型有rpc遠程過程調用)和snmp(簡單網絡管理協議;)。 
-t 不在每一行中輸出時間戳。 
-tt 在每一行中輸出非格式化的時間戳。 
-ttt 輸出本行和前面一行之間的時間差。 
-tttt 在每一行中輸出由date處理的默認格式的時間戳。 
-u 輸出未解碼的NFS句柄。 
-v 輸出一個稍微詳細的信息,例如在ip包中能夠包括ttl和服務類型的信息。 
-vv 輸出詳細的報文信息。 
-w 直接將分組寫入文件中,而不是不分析並打印出來。

 

 

 

 

 

參考連接一:http://www.cnblogs.com/zhuimengle/p/5737848.html

參考連接二:http://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html

相關文章
相關標籤/搜索