Python

在擷取數據包時將 tcpdump 生成的 pcap 文件重定向到另一台伺服器

  • September 18, 2018

我一直在尋找這樣的命令,它實現了:

  1. 將 tcpdump 生成的 pcap 文件重定向到另一台伺服器
  2. 1.過程中,使用python腳本或一些工具來分析每個數據包。

所以從系統使用者的角度來看,當數據包被擷取時,他/她可以像在wireshark中一樣查看數據包,並下載一個pcap文件。因為分析過程會消耗相當多的系統資源,所以我希望pcap文件可以重定向到另一台伺服器,並在該伺服器上執行分析。現在的問題是,nc監聽器在被殺死時退出tcpdump(我已經嘗試過-15),而我希望監聽器仍然可以執行,因為可能有多個伺服器正在執行tcpdump

tcpdump -i eth0 port 8801 -w a.pcap | nc 192.168.12.5 9901

設置 tcpdump 以將原始 PCAP 數據輸出到標準輸出,並利用 SSH 作為傳輸機制,將該數據作為連續流寫入遠端分析主機上的遠端文件。

例子:

tcpdump -i eth0 port 8801 -w - | ssh ${remote_host} "cat >> $(hostname).pcap"

在上面的範例中,我使用$(hostname)評估伺服器的主機名(正在執行 tcpdump 的位置)以智能地命名遠端文件,但當然,根據您的需要進行調整(可能在名稱中包含時間戳,如果這很有用)。

使用 UNIX 時間戳遠端文件命名的替代範例:

tcpdump -i eth0 port 8801 -w - | ssh ${remote_host} "cat > $(hostname)_$(date +%s).pcap"

引用自:https://serverfault.com/questions/931449