ZT - UNIX 網路協議的深度分析(2)

saintsiro發表於2010-08-08
基本的網路分析 本文之前提到的許多網路嗅探工具都提供了不同級別的協議解碼,它們是透過檢查埠和內容來確定所使用的協議實現的。[@more@]基本的網路分析 本文之前提到的許多網路嗅探工具都提供了不同級別的協議解碼,它們是透過檢查埠和內容來確定所使用的協議實現的。 例如,snoop 和 tcpdump 都提供了關於 UDP 和 TCP 上不同協議的不同級別的詳細資訊。例如,在 snoop 中,您可以獲得從頂級協議到所傳輸的單個資料塊的關於 NFS 操作的詳細資訊。例如,您可以透過指定監控 RPC 使用 NFS 協議來實現對 NFS 流量的監控:$ snoop -v rpc nfs。 它能輸出非常詳細的資料包資訊,並且它們應該進行更緊密的觀察。清單 1 提供了 Ethernet 報頭資料。 清單 1. Ethernet 報頭資料 ETHER: ----- Ether Header ----- ETHER: ETHER: Packet 64 arrived at 16:14:41.79434 ETHER: Packet size = 238 bytes ETHER: Destination = 0:1a:ee:1:1:c0, ETHER: Source = 0:21:28:3c:c0:61, ETHER: Ethertype = 0800 (IP) ETHER: 這裡的輸出表明 Ethernet 資料包包含了 IP 資料、全部資料包大小和時間,以及資料包的目標和來源地址。 清單 2 顯示的是 IP 報頭。其中除了協議和來源/目標地址資訊,其餘許多 IP 資料是沒有用的。 清單 2. IP 報頭 IP: ----- IP Header ----- IP: IP: Version = 4 IP: Header length = 20 bytes IP: Type of service = 0x00 IP: xxx. .... = 0 (precedence) IP: ...0 .... = normal delay IP: .... 0... = normal throughput IP: .... .0.. = normal reliability IP: .... ..0. = not ECN capable transport IP: .... ...0 = no ECN congestion experienced IP: Total length = 224 bytes IP: Identification = 27460 IP: Flags = 0x4 IP: .1.. .... = do not fragment IP: ..0. .... = last fragment IP: Fragment offset = 0 bytes IP: Time to live = 64 seconds/hops IP: Protocol = 6 (TCP) IP: Header checksum = 4d11 IP: Source address = 192.168.0.112, tiger.mcslp.pri IP: Destination address = 192.168.0.2, bear.mcslp.pri IP: No options IP: 在 清單 3 中,您可以看到 TCP 報頭。同樣,這些資訊中通常只有來源和目標埠號才是有用的,因為這些資訊將可用於確定預期的協議,或者提供給您可用於更進一步觀察這個埠所傳輸流量的資訊。 清單 3. TCP 報頭 TCP: ----- TCP Header ----- TCP: TCP: Source port = 2049 TCP: Destination port = 889 (Sun RPC) TCP: Sequence number = 2834727685 TCP: Acknowledgement number = 2654368001 TCP: Data offset = 32 bytes TCP: Flags = 0x18 TCP: 0... .... = No ECN congestion window reduced TCP: .0.. .... = No ECN echo TCP: ..0. .... = No urgent pointer TCP: ...1 .... = Acknowledgement TCP: .... 1... = Push TCP: .... .0.. = No reset TCP: .... ..0. = No Syn TCP: .... ...0 = No Fin TCP: Window = 32806 TCP: Checksum = 0x4852 TCP: Urgent pointer = 0 TCP: Options: (12 bytes) TCP: - No operation TCP: - No operation TCP: - TS Val = 34449495, TS Echo = 253458642 TCP: 清單 4 的倒數第二部分顯示的是 RPC 報頭資料。 清單 4. RPC 報頭資料 RPC: ----- SUN RPC Header ----- RPC: RPC: Record Mark: last fragment, length = 168 RPC: Transaction id = 3041181596 RPC: Type = 1 (Reply) RPC: This is a reply to frame 63 RPC: Status = 0 (Accepted) RPC: Verifier : Flavor = 0 (None), len = 0 bytes RPC: Accept status = 0 (Success) RPC: 最後,清單 5 提供了 NFS 資料包內容,包括許可權(檔案模式)、檔案大小、擁有者和其他資訊。在這裡,這個 NFS 操作請求是進行檔案系統統計(這等同於 ls 操作結果),因此這就是詳細資訊。 清單 5. NFS 資料包內容 NFS: ----- Sun NFS ----- NFS: NFS: Proc = 18 (Get filesystem statistics) NFS: Status = 0 (OK) NFS: Post-operation attributes: NFS: File type = 2 (Directory) NFS: Mode = 0777 NFS: Setuid = 0, Setgid = 0, Sticky = 0 NFS: Owner's permissions = rwx NFS: Group's permissions = rwx NFS: Other's permissions = rwx NFS: Link count = 24, User ID = 502, Group ID = 10 NFS: File size = 29, Used = 2560 NFS: Special: Major = 4294967295, Minor = 4294967295 NFS: File system id = 781684113418, File id = 4304616 NFS: Last access time = 28-Feb-10 15:49:51.042953989 GMT NFS: Modification time = 25-Feb-10 09:39:07.965422590 GMT NFS: Attribute change time = 25-Feb-10 09:39:07.965422590 GMT NFS: NFS: Total space = 759567510016 bytes NFS: Available space = 659048374272 bytes NFS: Available space - this user = 659048374272 bytes NFS: Total file slots = 1288161604 NFS: Available file slots = 1287203856 NFS: Available file slots - this user = 1287203856 NFS: Invariant time = 0 sec NFS: 在這裡,我們可以看到所查詢的檔案事實上是一個目錄(見檔案型別行)。雖然我們沒有得到檔案的實際路徑,但是我們可以透過使用 Find 命令來查詢 inode 號對應的檔案/路徑來查詢上面提到的目錄(見 清單 6)。 清單 6. 查詢 inode 號對應的檔案 $ find /scratch -xdev -inum 4304616 /scratch/installed/mysql-6.0.11 如果您準備分辨流量,那麼使用這些工具的最佳方法是首先執行它們,收集儘可能多的資料,然後手動檢查資料內容,找出您的網路本來不應該出現的資料項。 一旦您識別出了可疑流量,您就可以開始在命令列上新增引數以便關注於流量細節。例如,您可以使用 清單 7 所示的命令之一,規定只顯示特定主機的流量。 清單 7. 規定只顯示一個特定主機的流量 $ snoop host 192.168.0.2 $ tcpdump host 192.168.0.2 要進一步限制,您可以限制協議資訊的埠:$ snoop host 192.168.0.2 and port 25。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16896827/viewspace-1036462/,如需轉載,請註明出處,否則將追究法律責任。

相關文章