
我只想上網衝浪並成為網路伺服器但它不起作用。
我的規則是:
-P INPUT DROP
-P OUTPUT DROP
-P FORWARD DROP
-A INPUT -p tcp --dport 80 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
另外,我不太確定這些州。哪些對我來說沒用,為什麼?
非常感謝你的幫忙。
編輯
我仍然無法上網。有了這些規則,我希望我的伺服器成為一個網頁伺服器,同時能夠從這台機器上網(這只是為了練習)
這是我更新的規則。他們怎麼了? (我為 DNS 連接埠添加了兩行,不確定它們是否有用或正確)
-P INPUT DROP
-P OUTPUT DROP
-P FORWARD DROP
-I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-I OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
-A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
-A OUTPUT -p tcp --dport 53 -j ACCEPT
-A INPUT -p tcp --dport 53 -j ACCEPT
答案1
您的INPUT
規則看起來像是試圖允許傳入連接到本機電腦上的 Web 伺服器。您的OUTPUT
規則看起來像是試圖允許從本機電腦到任何外部 Web 伺服器的傳出連線。您想實現哪個目標?兩個都?
無論如何,您需要對已建立的相關規則更加寬容。您希望允許屬於已建立連線的所有資料包,而不僅僅是那些具有目標連接埠 80 的資料包。 。通常,您會在每個鏈的頂部有一個規則,允許所有已建立的和相關的資料包:
-I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-I OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
完成此操作後,您可以只允許形成新連接的初始資料包。允許存取本機 Web 伺服器:
-A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
....以及允許從本機電腦存取外部 Web 伺服器:
-A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
但對於第二種情況(允許從本機電腦存取外部網路伺服器),您是否考慮過這是否是您真正想要的?您只想透過 HTTP,甚至不需要 DNS?