skip to content
鰭狀漏斗

為使用 Ubuntu 映像的 Oracle Cloud Compute VM 開放連接埠

/ 閱讀時間 3 分鐘

目次

Oracle Cloud 的 Compute VM 在建立之後只能用 ssh 連進去,安裝像 nginx 的伺服器後是沒辦法用瀏覽器連上的。這是因為防火牆把來自幾乎全部連接埠(port)的連線擋掉了,只留下 22 連接埠讓我們可以用 ssh 連進去。所以我們要開放 80(HTTP)和 443(HTTPS)連接埠才能讓瀏覽器連上 Compute VM 上的網頁伺服器。

要開放連接埠,除了要修改 VM 的防火牆設定外,還要在 Console 修改 Virtual Cloud Network 的 Security List。

在 VM 檢查防火牆規則(sudo iptables -nvL)會發現預設的規則除了一般的 INPUTFORWARDOUTPUT 外多了一個 Chain InstanceServices,裡面的規則都有這個註解:

See the Oracle-Provided Images section in the Oracle Cloud Infrastructure documentation for security impact of modifying or removing this rule

文件上也有這些建議:

  • 不要把這些規則移除
  • 不要建立不包含這些規則的映像
  • 不要在 Ubuntu 映像上用 Uncomplicated Firewall(UFW)修改防火牆規則

不能用 ufw,所以我們只能用 iptablesChain INPUT 最後一條 REJECT 規則前加上允許某些連接埠的封包通過的規則:

sudo iptables -I INPUT <position> -m state --state NEW -p tcp --dport <port number> -j ACCEPT

<...> 的內容請依自己的需求填入。

然後如果要在重新啟動後也保留規則,就要用 sudo netfilter-persistent save 儲存。

VM 的防火牆設定修改完後,還要修改 Security List。到 Networking > Virtual Cloud Network(VCN),選擇 VM 所在的 VCN,到 Security 分頁可以看到預設的 Security List,進去到 Security rules 分頁,增加 Ingress Rule。

來源選 CIDR:0.0.0.0/0,IP Protocol 選 TCP,Source Port Range 不填,Destination Port Range 則填你想開放的連接埠。

增加完成後應該就可以連上 Compute VM 上的網頁伺服器了。

參考資料