記錄 Docker 內 Linux 中特定應用程式的網路流量,阻止其存取網路並欺騙回應

記錄 Docker 內 Linux 中特定應用程式的網路流量,阻止其存取網路並欺騙回應

我有一個應用程式(透過 QEMU 運行的 Google Android 模擬器)在 Ubuntu 上的 docker 實例中運行。我想要:

  • 擷取來自 QEMU 內執行的 VM 的所有網路流量(資料包)。
  • 防止來自該虛擬機器的流量到達互聯網,同時保持執行個體的其餘部分保持連接
  • 對該虛擬機器向其他伺服器發出的請求進行欺騙回應,假裝我就是那些伺服器
  • 以自動無頭方式完成所有這些(沒有用戶輸入,只有腳本)

在研究這個問題時我發現https://github.com/mandiant/flare-fakenet-ng,這正是我所需要的。問題是它似乎在我的設定中不起作用(每當 Fakenet 的網路驅動程式載入時,無論任何配置如何,它都會停用所有網路流量,並且我失去了對 docker 實例的控制)。我在這裡問了一個關於它的問題(在 Ubuntu Linux 上啟用 fakenet-ng 中的分流器會停用所有網路流量),但沒有收到任何答覆。

由於到目前為止我還沒有設法解決這個問題,所以我正在尋找一種不同的方法來實現這一目標。我應該使用什麼工具和方法?它們的優點和缺點是什麼?

答案1

Android 模擬器本身包含 tcpdump 的實作以及將資料包轉儲到檔案的選項。像這樣使用它emulator -tcpdump {path_to_dump}.pcap {other_options}

至於阻止它到達互聯網和欺騙回應,可以在單獨的用戶群組中啟動模擬器,並根據進程的 GID 進行 iptables 過濾,將來自特定 GID 的所有流量重定向到本地伺服器,在本地伺服器上,欺騙回應將予以實施。就像是https://pypi.org/project/spoof/或者https://pypi.org/project/fake-server/可能適用於此用例。

相關內容