2014-03-19 119 views
0

我需要這個iptables規則的幫助。我不明白爲什麼需要輸入規則端口8080iptables輸入,輸出規則

公網IP 123.123.123.123服務器

iptables -P INPUT DROP 
iptables -P OUTPUT ACCEPT 

iptables -I INPUT 1 -p all -m state --state ESTABLISHED,RELATED -j ACCEPT 

iptables -A INPUT -p tcp --dport 8080 -s 123.123.123.123 -j ACCEPT 

當我禁用輸入規則親8080,防火牆會阻止端口8080

當服務器嘗試打開GET 123.123.123.123:8080失敗! (響應超時)爲什麼?

爲什麼它沒有啓用規則ESTABLISHED,RELATED ???

回答

1
iptables -I INPUT 1 -p all -m state --state ESTABLISHED,RELATED -j ACCEPT 

^這適用於已經建立的連接,所以id不會捕獲任何新的連接。

iptables -A INPUT -p tcp --dport 8080 -s 123.123.123.123 -j ACCEPT 

^這個接收任何東西試圖發送TCP數據包到123.123.123.123:8080並接受它。 如果在這個目不存在,你無法連接到該服務是因爲可以在鏈其中趕上TRAFIC東西此外,使-j REJECT-j DROP

...或者你已經拒絕或丟棄策略這條鏈。

檢查iptables -L INPUT檢查,並iptables -P INPUT ACCEPT改變它。

檢查鏈條上發生了什麼的一個簡單方法是檢查iptables -L -n -v。詳細參數將爲您提供每個規則的pkts和字節數量,以便查看它,您可以確定您的規則是否捕獲任何內容。

0

感謝,解決方案是不使能輸入ACCEPT

但對於從服務器到自我

iptables -I INPUT 2 -p all -m state --state NEW -s 123.123.123.123 -j ACCEPT 

所有方面,我沒有reliaze添加enabletion,從服務器的新的連接是有效的(OUTPUT啓用),但防火牆然後獲得與INPUT的NEW連接...默認情況下未啓用

+0

通常DROP策略和使用規則知道您要接受什麼是一種很好的做法。你的問題是'爲什麼第一條規則不能捕捉到它,沒有第二條規則就無法工作。根據您的需求選擇最佳方法和解決方案是您的選擇。 – pawel7318