附註:

使用 Oracle Cloud Infrastructure Network Firewall 保護網站和應用程式

簡介

Oracle Cloud Infrastructure (OCI) Network Firewall 是 Oracle Cloud Infrastructure VCN 的新一代受管理網路防火牆和入侵偵測和預防服務,由 Palo Alto Networks ® 提供技術支援。

OCI 負載平衡器服務提供從一個進入點到可從虛擬雲端網路 (VCN) 存取之多個伺服器的自動化流量分配。此服務為負載平衡器提供選擇公用或專用 IP 位址,並佈建頻寬。

動態路由閘道 (DRG) 可作為虛擬路由器,為內部部署網路與 VCN 之間的流量提供路徑,也可用於在 VCN 之間路由流量。使用不同類型的附件,可以使用不同區域和租用戶中的元件來建構自訂網路拓樸。

透過使用 OCI 網路防火牆搭配與動態路由閘道連線的 OCI 負載平衡器,您可以保護導向至專用 VPN 內部署之網站或應用程式的北向流量。

架構

本教學課程將會建立一個嘗試並測試 OCI 網路防火牆和 OCI 負載平衡器功能的新環境。這是我們將使用的最終架構。

建立 OCI 虛擬雲端網路 (VCN)

請注意,我們有個別的 VCN:公共 VCN 和私有 VCN。這兩個 VCN 會代管我們的網路防火牆和負載平衡器基礎架構,並在私人環境中,使用我們網站的後端伺服器。

目標

必要條件

作業 1:建立網路元素

建立公用和專用 VCN、子網路和 DRG。

工作 1.1:建立公用和專用 VCN

  1. 若要建立 VCN,請前往 OCI 主控台,然後按一下虛擬雲端網路

    建立 OCI 虛擬雲端網路 (VCN)

  2. 按一下建立 VCN

    按一下「建立 VCN」按鈕

  3. 建立虛擬雲端網路頁面中,輸入必要的資訊。

    填入 VCN 設定的必要資訊,然後按一下「建立 VCN」按鈕

  4. 對環境中要建立的每個 VCN 重複步驟 1 到 3。

    已順利建立公用和專用 VCN

作業 1.2:建立子網路

建立兩個 VCN 之後,必須在每個 VCN 內建立子網路,讓子網路代管 OCI 網路防火牆、負載平衡器,以及代管要存取之網站的伺服器。

每個 VCN 都有下列子網路:

  1. 按一下每個 VCN 名稱即可建立子網路。

    建立專用和公用子網路 - 按一下 VCN 名稱

  2. 按一下建立子網路

    按一下「建立子網路」按鈕

  3. 建立子網路頁面中,輸入必要資訊。

    1. 名稱:輸入子網路名稱。
    2. 區間:選取要在其中建立子網路的區間。
    3. 子網路類型:根據建議選取區域
    4. IPv4 CIDR 區塊:輸入要用於子網路的 CIDR。在本自學課程中,我們定義了任務 1.2 的地址。
    5. 子網路存取:若為將安裝防火牆和負載平衡器的子網路,請選取公用子網路。對於將安裝應用程式或網站伺服器的子網路。

    填入所有資訊以建立您的子網路

  4. 輸入所有必要的資訊之後,請按一下建立子網路

注意:請不要忘記檢查所建立 VCN 的安全清單是否允許在環境中使用流量。例如,如果您要允許透過網路防火牆存取 HTTP,安全清單必須允許在 VCN 上此內送流量。

作業 1.3:建立動態路由閘道 (DRG)

DRG 是一種路由器,可將包含 OCI 網路防火牆的公用 VCN 與專用 VCN 的 OCI 負載平衡器互連,此路由器將包含要透過網際網路存取的伺服器。

  1. 若要建立 DRG,請移至 OCI 主控台,按一下網路動態路由閘道

    存取「DRG 服務」頁面

  2. 動態路由閘道頁面中,按一下建立動態路由閘道

    按一下「建立動態路由閘道」按鈕

  3. 輸入 DRG 的名稱,然後按一下建立動態路由閘道

    提供 DRG 名稱,然後按一下「建立」按鈕

    等待建立完成且 DRG 生命週期狀態顯示可用

    等待 DRG 變為可用

    • 建立完成後,按一下 DRG 以檢視其詳細資訊,並為要建立之 VCN 之間的連線建立必要的附件。

    • 建立 DRG 路由表和 DRG 路由分配可讓您定義路由原則,以在連附項之間遞送流量。

    • 您可以將多個 VCN 附加到單一 DRG,然後透過這些附件,使用 DRG 路由功能在 VCN 之間路由流量。

  4. 若要連附在作業 1.1 中建立的 VCN,請按一下建立虛擬雲端網路連附項

    將您的 VCN 連附至 DRG

  5. 新視窗將會開啟。輸入連附項的名稱,然後依您建立的連附項選取應該連附至 DRG 的 VCN。按一下建立 VCN 連附項即可完成建立。

    • 附件名稱:att_public
    • 虛擬雲端網路:Public_VCN

    為您的附件指定一個名稱,定義此附件將可供使用的 VCN,然後按一下「建立 VCN 附件」

  6. 對 VCN Private_VCN 重複步驟 1 到 5。

作業 2:建立 OCI 網路防火牆

建立 OCI 網路防火牆之前,必須先建立將在防火牆中使用的原則。在這項作業中,建立原則相當簡單,只允許 HTTP 流量。不過,OCI 網路防火牆可以檢查加密的流量,並具備進階的 L7 防火牆功能。

如需有關 OCI 網路防火牆服務功能的詳細資訊,請參閱 OCI 網路防火牆

作業 2.1:建立網路防火牆原則

注意:建議在生產環境中,規則會儘可能具體化,其中一律會遵守最低存取原則。本教學課程中使用的範例純粹是教育的,不應在實際的生產環境中重現。

  1. 若要建立將部署在網路防火牆中的原則,請前往 OCI 主控台,按一下識別與安全網路防火牆原則

    存取「OCI 網路防火牆原則」服務頁面

  2. 網路防火牆原則頁面中,按一下建立網路防火牆原則以開始建立防火牆規則。

    建立網路防火牆原則

  3. 輸入精靈要求的資訊,然後按一下建立網路防火牆原則

    填入所有必要資訊之後,請按一下 ** 建立網路防火牆原則 **

    注意:如需有關可以在 OCI 網路防火牆原則中設定哪些參數的詳細資訊,請參閱原則建立網路防火牆服務原則

建立原則之後,您需要在原則內建立資源。資源將會詳述原則如何保護環境。

本教學課程將使用簡單版本的原則。我們只允許 HTTP 和 HTTPS 內送流量。如需有關建立 OCI 網路防火牆原則的詳細資訊,請參閱建立網路防火牆服務原則建立網路防火牆服務原則元件

若要建立本教學課程中使用的原則,您需要下列網路防火牆原則資源。

  1. 建立通訊清單資源

    1. 按一下地址清單建立地址清單

      按一下位址清單

    2. 建立位址清單頁面中,輸入必要的資訊,然後按一下建立位址清單

      • 名稱:Frontend_Web (輸入最適合環境的名稱)。
      • IP 位址 /CIDR: 輸入負載平衡器專用 CIDR。

      建立位址清單

    完成建立位址清單之後,您現在可以建立服務資源。

  2. 建立服務資源

    1. 按一下服務建立服務

      按一下服務

    2. 建立服務頁面中,輸入必要的資訊,然後按一下建立服務

      • 名稱:HTTP-HTTPS (輸入最適合環境的名稱)。
      • 協定:選取 TCP
      • 連接埠範圍:輸入 80-80。若要新增其他範圍,請按一下 +Another 範圍並新增 443-443

      建立位址清單

    完成建立服務之後,您現在可以建立服務清單資源。

  3. 建立服務清單資源

    1. 按一下服務建立服務清單

      按一下服務清單

    2. 建立服務清單頁面中,輸入必要的資訊,然後按一下建立服務清單

      • 名稱:輸入最適合環境的名稱。
      • 可用的服務:選取在步驟 2 中建立的服務,然後按一下新增至選取的項目
      • 選取的服務:檢查是否已將所需的服務匯入選取的服務

      建立位址清單

    完成建立服務清單之後,您現在可以建立網路防火牆的安全規則。

  4. 建立安全規則

    1. 按一下安全規則建立安全規則

      按一下服務清單

    2. 建立安全規則頁面中,輸入必要的資訊,然後按一下建立安全規則

      • 名稱:輸入原則的名稱。
      • 來源位址:預設。來源值為任何地址
      • 目的地地址:選取在步驟 1 中建立的地址清單。按一下選取位址清單,然後選取建立的位址清單。
      • 應用程式:預設。應用程式值為 Any application
      • 服務:選取在步驟 3 中建立的服務清單。按一下選取服務清單,然後選取建立的服務清單。
      • URL:預設。URL 值為任何 URL
      • 規則動作:選取環境的規則動作。在本教學課程中,我們將使用允許流量
      • 規則順序:選取原則的順序。

      建立位址清單 建立位址清單 建立位址清單

完成建立原則之後,您就可以存取其詳細資訊。

注意:請根據環境存取需求建立原則。此教學課程中使用的範例純粹是教育的。

建立 OCI 網路防火牆原則之後,您現在可以繼續建立 OCI 網路防火牆執行處理本身。

作業 2.2:建立 OCI 網路防火牆

  1. 我們已建立將在環境中使用的存取原則,因此必須建立 OCI 網路防火牆。前往 OCI 主控台,按一下識別與安全網路防火牆

    存取「OCI 網路防火牆」服務頁面

  2. 網路防火牆頁面中,按一下建立網路防火牆以建立網路防火牆。

    按一下「建立網路防火牆」按鈕即可開始作業

  3. 建立網路防火牆頁面中,輸入必要的資訊,然後按一下建立網路防火牆

    1. 名稱:NFW_INBOUND (輸入最適合環境的名稱)。
    2. 區間:選取將建立網路防火牆的區間。
    3. 網路防火牆原則 (區間):選取在 Task 2.1 中建立的原則。
    4. 虛擬雲端網路 (區間): 選取將安裝網路防火牆的 VCN。在本教學課程中,我們將選取名為 VCN_Public 的 VCN,如任務 1 的拓樸所示。
    5. 子網路 (區間): 選取將安裝網路防火牆的子網路。在本教學課程中,我們將依本文件的 Task 1.2 所述,選取名為 Subnet_FW 的子網路。

    填寫所有必要資訊

    注意:建立網路防火牆大約需要 40 到 50 分鐘的時間才能完成。

  4. 按一下網路防火牆名稱,然後查看資源的詳細資訊。

    現在有 OCI 網路防火牆執行處理

    注意:

    • 請注意,針對網路防火牆建立的專用 IP。未來將使用它來設定使用 DRG 的 intra-vcninter-vcn 路由,讓防火牆能夠傳送及檢查環境中的所有通訊。

    • OCI 網路防火牆的專用 IP 可能與本教學課程中顯示的 10.0.0.8 不同。如此一來,所有要在環境中建立的路由都必須考慮在導入期間建立的 OCI 網路防火牆 IP。

作業 3:建立虛擬伺服器與負載平衡器

我們建立了整個網路環境、DRG、原則及網路防火牆,我們可以開始建立代管測試網站的負載平衡器和伺服器。

工作 3.1:建立虛擬伺服器或 Web 伺服器

  1. 建立虛擬伺服器既簡單又快速。若要建立虛擬伺服器,請前往 OCI 主控台,按一下運算執行處理

    存取「OCI Compute 執行處理」服務頁面

  2. 執行處理頁面中,按一下建立執行處理

    按一下「建立執行處理」按鈕即可開始

  3. 在執行處理建立頁面中輸入必要的資訊。對於此教學課程,我們已經建立下列執行處理。

    • srv1_app1:伺服器 #1 代表代管網站 #1。它是在 VCN_Private 中建立,位於子網路 subnet_app1 內。
    • srv2_app1:伺服器 #2 - 用於代管網站 #1。它是在 VCN_Private 中建立,位於子網路 subnet_app1 內。
    • srv1_app2:伺服器 #1 代表代管網站 #1。它是在 VCN_Private 中建立,位於子網路 subnet_app2 內。
    • srv2_app2:伺服器 #2 - 用於代管網站 #1。它是在 VCN_Private 中建立,位於子網路 subnet_app2 內。

    對於我們的伺服器,我們已使用 Oracle Linux 9.x 託管。為了讓伺服器能夠執行,在伺服器建立期間,我們已使用 Cloud-init 程序檔來處理 httpd 伺服器的安裝、建立簡單的 index.html 檔案,以及停用 firewalld 常駐程式。如需有關 Cloud-init 指令碼的詳細資訊,請參閱使用自訂 Cloud-init 初始化指令碼設定受管理的節點。使用下列程序檔。

    #!/bin/bash
    echo "############################################" > /etc/motd
    echo "#       OCI NETWORK FIREWALL LAB           #" >> /etc/motd
    echo "############################################" >> /etc/motd
    
    # Installing nginx on Oracle Linux
    sudo yum install httpd -y
    
    # Starting httpd
    sudo systemctl start httpd
    
    # Opening HTTP port in Firewalld
    sudo firewall-cmd --zone=public --add-service=http
    
    # Configuring a simple webpage to our server
    sudo touch /var/www/html/index.html
    sudo chown apache:apache /var/www/html/index.html
    
    export HOSTNAME=`hostname`
    
    sudo cat <<EOF > /var/www/html/index.html
    <html>
            <center><img src="https://estuary.dev/static/638f52fd4afa2f02e6d522065f7268f4/26ce8/thumbnail_Group_22548_cda168ff12.png"></img></center>
            <center>
                    <h1>Welcome to the OCI Network Firewall Lab webpage!</h1>
                    <h2>CONGRATULATIONS!</h2><P>
                    <h3>if you are seeing this page it is because the OCI Network Firewall lab worked! <p>refresh the browser and see the server hostname changing below (because of the Round-Robin policy placed at the OCI LoadBalancers).</h3>
            </center>
            <br>
            <center><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/8/84/Eo_circle_green_arrow-down.svg/2048px-Eo_circle_green_arrow-down.svg.png" width="100" height="100"></center>
            <h1><center>This is server $HOSTNAME!</center></h1>
    </html>
    EOF
    

環境的拓樸將有助於瞭解伺服器的安裝位置。

我們的拓撲

Apache Web 伺服器 (httpd) 已安裝在這些伺服器上,並在其 documentRoot 中建立要從網際網路存取的簡單頁面。

在 OCI 中建立和設定執行處理的詳細資訊超出本教學課程的範圍。如需詳細資訊,請參閱建立執行處理

Task 3.2:建立 OCI 負載平衡器

建立虛擬伺服器之後,必須建立 OCI 負載平衡器,以便透過 Round-Robin 執行負載平衡以存取新建立的 Web 伺服器。

  1. 若要建立 OCI 負載平衡器,請前往 OCI 主控台,按一下網路負載平衡器

    存取「OCI 負載平衡器」服務頁面

  2. 負載平衡器服務頁面中,按一下建立負載平衡器,即可開始在此教學課程中建立兩個負載平衡器。

    按一下「建立負載平衡器」按鈕即可開始

  3. 建立負載平衡器頁面中,輸入必要的資訊,以便開始建立作業,然後按下一步

    1. 負載平衡器名稱:輸入負載平衡器的名稱。
    2. 可見性:選取 Public,因為負載平衡器將透過網際網路存取。
    3. 指派公用 IP 位址:選取 Ephemeral IP address。如果您有保留的 IP,可以使用選項 Reserve IP address
    4. 選擇網路: 選取將部署負載平衡器的 VCN。在本教學課程中,VCN 將會是 Public_VCN
    5. 子網路 (區間): 選取將部署負載平衡器的子網路。在本教學課程中,子網路將是 subnet_loadbalancer

    填入建立 OCI 負載平衡器的必要資訊

    填入建立 OCI 負載平衡器的必要資訊

  4. 選擇後端頁面中,輸入必要的資訊,然後按下一步

    1. 指定負載平衡原則:選取負載平衡器的原則。在本教學課程中,我們將使用 Round-Robin
    2. 新增後端: 如果您已經建立將代管環境頁面中頁面的伺服器。若要新增它們,請按一下新增後端
    3. 協定:將上傳簡單的網站時,請選取 HTTP 作為後端狀況檢查的協定。
    4. 連接埠:使用 HTTP 時,狀況檢查必須在連接埠 80/TCP 上尋找連線。
    5. 使用 SSL:若要對 HTTPS 進行狀況檢查,請選取 Use SSL 項目來設定將使用的憑證。此類型的狀況檢查超出本教學課程的範圍。如需詳細資訊,請參閱負載平衡器的 SSL 憑證

    填入建立 OCI 負載平衡器的必要資訊

    填入建立 OCI 負載平衡器的必要資訊

  5. 設定監聽器頁面中,輸入下列資訊,然後按一下下一步

    1. 監聽器名稱:輸入監聽器的名稱。
    2. 指定監聽器處理的流量類型:選取將通過監聽器的流量類型。本教學課程將使用 HTTP。
    3. 指定監聽器監控傳入流量的連接埠:選取監聽器應該監聽的連接埠,以擷取導向至 Web 伺服器的傳入流量。本教學課程將使用連接埠 80/TCP。

    填入建立 OCI 負載平衡器的必要資訊

  6. 啟用 OCI 負載平衡器日誌,然後按一下送出以開始建立。

    正在在您的負載平衡器中啟用日誌

    注意:您必須為每個網站或應用程式建立不同的負載平衡器。在本教學課程中,我們將建立兩個負載平衡器 (每個要測試的網站一個)。

    我們的 2 個 OCI 負載平衡器執行處理

    請注意,每個 OCI 負載平衡器都有不同的公用 IP。因此,每個網站都可以透過不同的位址來存取。

  7. 建立 OCI 負載平衡器之後,您可以手動將後端伺服器插入每個負載平衡器執行處理中。按一下要設定的負載平衡器名稱,然後在後端集上按一下,如下圖所示。

    設定後端伺服器

  8. 檢視後端集時,請按一下其名稱以插入後端。在後端集資訊頁面中,按一下後端新增後端

    設定後端伺服器

  9. 選取將成為您正在設定之網站或應用程式後端的伺服器。請按一下新增來完成。

    設定後端伺服器

注意: 此時將會設定 OCI 負載平衡器,但是後端會進入嚴重模式,因為尚未設定內部 vcn 和 DRG 路由。

作業 4:建立 DRG 和 VCN 內部路由

設定路由,讓網站能夠透過網際網路存取,且 OCI 網路防火牆可以分析存取流量。

作業 4.1:在公用 VCN 中建立路由

  1. 若要存取 VCN 路由組態頁面,請前往 OCI 主控台,按一下網路虛擬雲端網路

    存取「虛擬雲端網路服務」頁面

  2. 按一下 Public_VCN

    按一下 Public_VCN

  3. 按一下路由表功能表和建立路由表,即可開始建立路由表。

    建立新路由表

  4. 建立路由表頁面中,輸入必要的資訊,然後按一下建立

    1. 名稱:輸入路由表的名稱。
    2. 在區間中建立:選取可在其中建立路由表的區間。

    注意: 我們將不會使用 VCN 預設路由表。

    填入必要資訊以建立新的路由表

  5. 針對 Public_VCN 中的下列路由表重複此程序。

    • RT_Firewall:應該連附至 OCI Network Firewall 子網路以進行 vcn 內部連線的路由表。
    • RT_LoadBalancers:應該附加至負載平衡器子網路以進行 vcn 內部連線的路由表。
    • RT_to_nfw:必須連附至 Public_VCN 網路之網際網路閘道的路由表。
      1. 在 RT_Firewall 中為 Subnet_Firewall 建立路由

      建立路由表之後,請於每個表格中建立下列路由。

      Subnet_Firewall 必須使用 RT_Firewall 表格。將子網路預設路由表取代為此自訂路由表。

      表格:RT_Firewall

      CIDR 下一個希望
      0.0.0.0/0 IGW 系列
      • IGW:網際網路閘道。
        1. 在 RT_LoadBalancers 中為 Subnet_LoadBalancers 建立路由

      Subnet_Loadbalancers 必須使用 RT_LoadBalancers 表格。將子網路預設路由表取代為此自訂路由表。

      CIDR 下一個希望
      0.0.0.0/0 <OCI_NETWORK_FIREWALL_IP>
      192.168.0.0/24 DRG
      192.168.1.0/24 DRG
      • DRG: 動態路由閘道。
      • 192.168.0.0/24:這是 VCN Private_VCN 子網路的專用網路,其中已安裝 #1 網站的伺服器。
      • 192.168.0.0/24: 這是我們網站伺服器安裝 #2 的 VCN 子網路 Private_VCN 的專用網路。
        1. 在 RT_to_nfw 中建立網際網路閘道的路由

      RT_to_nfw 表格必須附加至 VCN_Public Internet Gateway。

      CIDR 下一個希望
      10.0.1.0/24 <OCI_NETWORK_FIREWALL_IP>

作業 4.2:在專用 VCN 中建立路由

  1. 若要存取 VCN 路由組態頁面,請前往 OCI 主控台,按一下網路虛擬雲端網路

    存取「虛擬雲端網路服務」頁面

  2. 按一下 Private_VCN

    按一下 Private_VCN

  3. 按一下路由表功能表和Private_VCN 的預設路由表

    建立新路由表

  4. 對於 Private_VPN,我們只會建立指向從 10.0/16 網路到 DRG 之路徑的路由。

    CIDR 下一個希望
    10.0.0.0/16 DRG

    建立路由之後,一切都應該正確運作。VCN_Public 的 vcn 內部路由會將所有流量轉送至 OCI 網路防火牆,然後由 DRG 處理 VCN (VCN_Public 和 VCN_Private) 之間的連線。

  5. 回到 OCI 負載平衡器組態,並查看後端是否為確定。如果是,請開啟瀏覽器並存取其中一個負載平衡器的 IP。

    檢查負載平衡器的後端狀況

工作 5:存取網頁

環境路由設定正確之後,OCI 負載平衡器執行處理便可以連線到後端代管測試網站的伺服器 (在專用網路中),您就可以存取負載平衡器的位址,最後再存取測試網頁。

擷取負載平衡器的有效 IP 位址,然後將它們置於瀏覽器中。如果所有設定都正確,您應該會看到下列頁面。

存取您的網頁

認可

其他學習資源

瀏覽 docs.oracle.com/learn 的其他實驗室,或前往 Oracle Learning YouTube 頻道存取更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。

如需產品文件,請造訪 Oracle Help Center