我的 80 連接埠 iptables 規則有什麼問題?

我的 80 連接埠 iptables 規則有什麼問題?

我只想上網衝浪並成為網路伺服器但它不起作用。

我的規則是:

-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?

相關內容