Python
在擷取數據包時將 tcpdump 生成的 pcap 文件重定向到另一台伺服器
我一直在尋找這樣的命令,它實現了:
- 將 tcpdump 生成的 pcap 文件重定向到另一台伺服器
- 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"