2014-09-23 58 views
0

我想阻止流量到我的機器上運行的虛擬機,除了某些端口。我在虛擬網橋中添加了一些規則,以接受FORWARD鏈中過濾器表中端口80上的流量,因爲虛擬網橋設置爲轉發來自VM的流量。阻止所有流量,但在虛擬機的特定端口上

我寫了下面:

sudo iptables -F sudo iptables -I FORWARD -o [bridge_iface] -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT sudo iptables -I FORWARD -i [bridge_iface] -p tcp --sport 80 -m state --state NEW,ESTABLISHED -j ACCEPT sudo iptables -I FORWARD -o [bridge_iface] -p tcp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT sudo iptables -I FORWARD -i [bridge_iface] -p tcp --sport 53 -m state --state NEW,ESTABLISHED -j ACCEPT sudo iptables -P FORWARD DROP 當我連接托特他VM在橋上我無法連接到一個外部網站。如果我刪除最後一行,當然,一切正常,但一切都是開放的。所以這不太合適。

+0

你爲每個規則指定了什麼接口作爲'[bridge_iface]'?嘗試添加一些即席記錄規則,或者在您測試連接時監視哪些計數器遞增。 – Yoel 2014-09-23 22:12:13

回答

0

如果你想丟棄流量到你的虛擬機,爲什麼你也過濾另一個方向,你真的想阻止你的虛擬機訪問互聯網?

iptables -I FORWARD -o [bridge_iface] -m state --state NEW,ESTABLISHED -j DROP 
iptables -I FORWARD -o [bridge_iface] -p tcp -m state --state NEW,ESTABLISHED --dport 80 -j ACCEPT 
iptables -I FORWARD -o [bridge_iface] -p udp -m state --state NEW,ESTABLISHED --dport 53 -j ACCEPT 

請注意:DNS主要使用UDP,而不是TCP,所以您應該過濾UDP。

關於我的設置的整個想法:您應該允許您的計算機轉發任何內容,默認情況下只允許DROP連接到特定接口,並在設備上打開特定端口。

我懷疑你在端口80和53上的傳入連接上使用端口轉發由VM提供服務,我是否正確? 如果您想拒絕您的虛擬機訪問互聯網,除了我們剛剛設置的兩個端口,您必須在腳本中更改-o至-i。