阻止所有傳入 VBox 來賓 VM 的流量,除了 ESTABLISHED 和 RELATED
我有主機,它正在執行 Virtualbox 和一個來賓 VM。假設主機有介面 br0 和 IP
1.2.3.4
,來賓有 eth0 和 IP1.2.3.5
。來賓
1.2.3.5
用作公共 IP(橋接介面,通過主機上的 br0)。我希望它能夠訪問 Internet,但希望完全阻止從外部訪問它的所有嘗試。它不提供任何服務,它可能完全被網際網路屏蔽,如果不是它需要不時下載一兩個東西的事實……如何在主機上做到這一點,而不影響主機?不在客人身上,在主人身上。我希望主機可以從外部世界訪問,從 Internet 訪問。但是客人應該只接收與客人建立的連接相關的數據包。沒有 ssh 登錄嘗試,沒有從外部發起(我知道,我也可以使用其他工具來保護訪客,比如訪客上的 sshd_config,我使用它們,但我也想使用 iptables)。
我嘗試先阻止與來賓相關的所有內容,然後逐步排除
RELATED
andESTABLISHED
,但即使我將 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-iptables
to1
和 doiptables -P FORWARD DROP
,則客人應該不再有網際網路。你可以從那裡拿走,看看你能不能做得更多。