Iptables

阻止所有傳入 VBox 來賓 VM 的流量,除了 ESTABLISHED 和 RELATED

  • September 9, 2020

我有主機,它正在執行 Virtualbox 和一個來賓 VM。假設主機有介面 br0 和 IP 1.2.3.4,來賓有 eth0 和 IP 1.2.3.5

來賓1.2.3.5用作公共 IP(橋接介面,通過主機上的 br0)。我希望它能夠訪問 Internet,但希望完全阻止從外部訪問它的所有嘗試。它不提供任何服務,它可能完全被網際網路屏蔽,如果不是它需要不時下載一兩個東西的事實……

如何在主機上做到這一點,而不影響主機?不在客人身上,在主人身上。我希望主機可以從外部世界訪問,從 Internet 訪問。但是客人應該只接收與客人建立的連接相關的數據包。沒有 ssh 登錄嘗試,沒有從外部發起(我知道,我也可以使用其他工具來保護訪客,比如訪客上的 sshd_config,我使用它們,但我也想使用 iptables)。

我嘗試先阻止與來賓相關的所有內容,然後逐步排除RELATEDand ESTABLISHED,但即使我將 1.2.3.5 作為源和目標的 DROP 規則添加到主機 ( INPUT, FORWARD, OUTPUT) 上的所有鏈中,我仍然可以1.2.3.5從外部ping世界。我究竟做錯了什麼?是的,我在鏈的開頭添加了這些規則(-I)。當我在主機上執行它並且流量注定到虛擬機/來賓時,iptables 的行為會有所不同?還是因為我使用橋接器 br0?

因此,我什至無法刪除來自和去往1.2.3.5(來賓 VM 上的 IP)的所有內容,即使1.2.3.5當我執行主機上的 tcpdump 以攔截 ICMP 數據包時顯示為源和目標,而我從外部 ping 1.2.3.5世界。

儘管您可以操縱通過網橋的流量,但我不確定您是否可以進行連接跟踪 ( RELATED/ ESTABLISHED)。

這樣做的地方將是FORWARD鏈條。

sysctl -a|grep -E "bridge-nf-call-ip.*tables"給你什麼?例如,如果您設置net.bridge.bridge-nf-call-iptablesto1和 do iptables -P FORWARD DROP,則客人應該不再有網際網路。你可以從那裡拿走,看看你能不能做得更多。

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