
我想在 Linux VM 中執行一個不受信任的應用程式(主機是執行 VirtualBox 的 Windows 10)。它需要存取我的 LAN 上的另一台伺服器,但我想阻止一個 IP 上除此連接埠之外的任何其他網路存取。
AppArmor 似乎不允許這種細粒度的網路限制。
我不想阻止整個來賓作業系統的網路訪問,因為我希望能夠運行 eg sudo apt-get update
,但如果這是我能做的最好的事情,那就可以接受。
最好的解決方案是什麼?也許是在啟動該程式之前設定臨時系統範圍防火牆規則的腳本?
答案1
由於您的虛擬機器是 Linux,我會利用 Linux命名空間運行該應用程式沙箱化的環境,例如使用火獄。在你的情況下,一種可能的方法是創建一個虛擬網路介面範圍有限,只能到達 LAN 上的其他伺服器。
然後使用 Firejail 啟動您的應用程序,以便它只能「看到」一個網路介面 - 受限制的網路介面。
從命令列產生的命令將類似於以下內容:
firejail --net=veth0 yourapp
但您也可以建立自訂設定檔。