當未設定拒絕規則且預設原則設定為 ACCEPT 時,為什麼 Oracle CN 上需要 iptables 規則來允許連接埠 80 上的 HTTP 流量?

當未設定拒絕規則且預設原則設定為 ACCEPT 時,為什麼 Oracle CN 上需要 iptables 規則來允許連接埠 80 上的 HTTP 流量?

我有一個免費套餐上的 Oracle 雲端基礎架構運算節點,配置了 Ubuntu 22.04 作為作業系統。我成功安裝了 Nginx 並向子網路添加了入口規則,以允許連接埠 80 上的網路連線。

但是,我遇到了一個問題,即我無法透過在瀏覽器中輸入公共 IP 來存取伺服器。經過一番研究,我發現我需要添加 iptables 規則以允許連接埠 80 上的 HTTP 流量。我找到了方法來做到這一點:

透過新增此規則:

sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 80 -j 接受 sudo netfilter-persistent save

或加入這兩個規則:$

sudo iptables -I 輸入 -p tcp --dport 80 -m conntrack --ctstate 新,已建立 -j 接受

$ sudo iptables -I 輸出 -p tcp --sport 80 -m conntrack --ctstate 已建立 -j 接受

我很困惑的是,即使預設的 INPUT 策略設定為 ACCEPT 並且我找不到任何專門阻止連接埠 80 的拒絕規則,我也無法在不添加規則的情況下從外部存取伺服器。

在新增規則之前,我使用了指令:sudo iptables -S,得到了以下結果:

-P 輸入接受

-P 轉發接受

-P 輸出接受

-N 實例服務

-A 輸入 -m 狀態 --state 相關,已建立 -j 接受

-A 輸入 -p icmp -j 接受

-A 輸入 -i lo -j 接受

-A 輸入 -p udp -m udp --sport 123 -j 接受

-A 輸入 -p tcp -m 狀態 --state 新 -m tcp --dport 22 -j 接受

-A 輸入 -j 拒絕 --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

-A 輸出 -d 169.254.0.0/16 -j 實例服務

-A InstanceServices -d 169.254.0.2/32 -p tcp -mowner --uid-owner 0 -m tcp --dport 3260 -m comment --comment "請參閱 Oracle 雲端基礎架構文件中的 Oracle 提供的映像部分修改或刪除此規則的安全影響」-j ACCEPT

-A InstanceServices -d 169.254.2.0/24 -p tcp -mowner --uid-owner 0 -m tcp --dport 3260 -m comment --comment "請參閱 Oracle 雲端基礎架構文件中的 Oracle 提供的映像部分修改或刪除此規則的安全影響」-j ACCEPT

-A InstanceServices -d 169.254.4.0/24 -p tcp -mowner --uid-owner 0 -m tcp --dport 3260 -m comment --comment "請參閱 Oracle 雲端基礎架構文件中的 Oracle 提供的映像部分修改或刪除此規則的安全影響」-j ACCEPT

-A InstanceServices -d 169.254.5.0/24 -p tcp -mowner --uid-owner 0 -m tcp --dport 3260 -m comment --comment "請參閱 Oracle 雲端基礎架構文件中的 Oracle 提供的映像部分修改或刪除此規則的安全影響」-j ACCEPT

-A InstanceServices -d 169.254.0.2/32 -p tcp -m tcp --dport 80 -m comment --comment 「請參閱Oracle 雲端基礎架構文件中的Oracle 提供的映像部分,了解修改或刪除此規則的安全影響” -j 接受

-A InstanceServices -d 169.254.169.254/32 -p udp -m udp --dport 53 -m comment --comment 「請參閱Oracle 雲端基礎架構文件中的Oracle 提供的映像部分,了解修改或刪除此規則的安全影響” -j 接受

-A InstanceServices -d 169.254.169.254/32 -p tcp -m tcp --dport 53 -m comment --comment 「請參閱Oracle 雲端基礎架構文件中的Oracle 提供的映像部分,以了解修改或刪除此規則的安全影響” -j 接受

-A InstanceServices -d 169.254.0.3/32 -p tcp -mowner --uid-owner 0 -m tcp --dport 80 -m comment --comment "請參閱 Oracle 雲端基礎架構文件中的 Oracle 提供的映像部分修改或刪除此規則的安全影響”-j ACCEPT

-A InstanceServices -d 169.254.0.4/32 -p tcp -m tcp --dport 80 -m comment --comment 「請參閱Oracle 雲端基礎架構文件中的Oracle 提供的映像部分,了解修改或刪除此規則的安全影響” -j 接受

-A InstanceServices -d 169.254.169.254/32 -p tcp -m tcp --dport 80 -m comment --comment 「請參閱Oracle 雲端基礎架構文件中的Oracle 提供的映像部分,以了解修改或刪除此規則的安全影響” -j 接受

-A InstanceServices -d 169.254.169.254/32 -p udp -m udp --dport 67 -m comment --comment 「請參閱Oracle 雲端基礎架構文件中的Oracle 提供的映像部分,了解修改或刪除此規則的安全影響” -j 接受

-A InstanceServices -d 169.254.169.254/32 -p udp -m udp --dport 69 -m comment --comment 「請參閱Oracle 雲端基礎架構文件中的Oracle 提供的映像部分,了解修改或刪除此規則的安全影響” -j 接受

-A InstanceServices -d 169.254.169.254/32 -p udp -m udp --dport 123 -m comment --comment 「請參閱Oracle 雲端基礎架構文件中的Oracle 提供的映像部分,了解修改或刪除此規則的安全影響” -j 接受

-A InstanceServices -d 169.254.0.0/16 -p tcp -m tcp -m comment --comment “請參閱Oracle 雲端基礎設施文件中的Oracle 提供的映像部分,了解修改或刪除此規則的安全影響” -j REJECT - -拒絕-帶有 TCP 重置

-A InstanceServices -d 169.254.0.0/16 -p udp -m udp -m comment --comment “請參閱Oracle 雲端基礎設施文件中的Oracle 提供的映像部分,了解修改或刪除此規則的安全影響” -j REJECT - -拒絕 icmp 連接埠不可達

INPUT、FORWARD 和 OUTPUT 鏈的預設策略設定為 ACCEPT。指向特定 IP 的連接埠 80 的唯一規則也設定為活動。

問題:這對於伺服器的可訪問性來說還不夠嗎?我缺什麼?

由於我是初學者,請用簡單的方式解釋原因和方法。萬分感謝!

相關內容