附註:
- 此教學課程需要存取 Oracle Cloud。若要註冊免費帳戶,請參閱開始使用 Oracle Cloud Infrastructure Free Tier 。
- 它使用 Oracle Cloud Infrastructure 憑證、租用戶及區間的範例值。完成實驗室時,請將這些值取代為您雲端環境特有的值。
使用 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 負載平衡器功能的新環境。這是我們將使用的最終架構。
請注意,我們有個別的 VCN:公共 VCN 和私有 VCN。這兩個 VCN 會代管我們的網路防火牆和負載平衡器基礎架構,並在私人環境中,使用我們網站的後端伺服器。
目標
- 使用 OCI Network Firewall 和 OCI Load Balancers 保護導向至多個後端中部署之多個網站和應用程式的流量。
必要條件
-
存取 OCI 租用戶。
-
租用戶中設定的虛擬雲端網路。
-
OCI 日誌、網路防火牆、網路及運算的所有原則設定。
作業 1:建立網路元素
建立公用和專用 VCN、子網路和 DRG。
工作 1.1:建立公用和專用 VCN
-
若要建立 VCN,請前往 OCI 主控台,然後按一下虛擬雲端網路。
-
按一下建立 VCN 。
-
在建立虛擬雲端網路頁面中,輸入必要的資訊。
-
對環境中要建立的每個 VCN 重複步驟 1 到 3。
作業 1.2:建立子網路
建立兩個 VCN 之後,必須在每個 VCN 內建立子網路,讓子網路代管 OCI 網路防火牆、負載平衡器,以及代管要存取之網站的伺服器。
每個 VCN 都有下列子網路:
- VCN 公用:
- Subnet_FW:將部署 CIDR 為
10.0.0.0/24
之 OCI 網路防火牆的子網路。 - Subnet_LB:將部署 CIDR 為
10.0.1.0/24
之 OCI 負載平衡器的子網路。
- Subnet_FW:將部署 CIDR 為
- VCN 專用:
- Subnet_App1:將使用 CIDR
192.168.0.0/24
部署代管 App1 網站之伺服器的子網路。 - Subnet_App2:將使用 CIDR
192.168.0.0/24
部署代管 App2 網站之伺服器的子網路。
- Subnet_App1:將使用 CIDR
-
按一下每個 VCN 名稱即可建立子網路。
-
按一下建立子網路。
-
在建立子網路頁面中,輸入必要資訊。
- 名稱:輸入子網路名稱。
- 區間:選取要在其中建立子網路的區間。
- 子網路類型:根據建議選取區域。
- IPv4 CIDR 區塊:輸入要用於子網路的 CIDR。在本自學課程中,我們定義了任務 1.2 的地址。
- 子網路存取:若為將安裝防火牆和負載平衡器的子網路,請選取公用子網路。對於將安裝應用程式或網站伺服器的子網路。
-
輸入所有必要的資訊之後,請按一下建立子網路。
注意:請不要忘記檢查所建立 VCN 的安全清單是否允許在環境中使用流量。例如,如果您要允許透過網路防火牆存取 HTTP,安全清單必須允許在 VCN 上此內送流量。
作業 1.3:建立動態路由閘道 (DRG)
DRG 是一種路由器,可將包含 OCI 網路防火牆的公用 VCN 與專用 VCN 的 OCI 負載平衡器互連,此路由器將包含要透過網際網路存取的伺服器。
-
若要建立 DRG,請移至 OCI 主控台,按一下網路和動態路由閘道。
-
在動態路由閘道頁面中,按一下建立動態路由閘道。
-
輸入 DRG 的名稱,然後按一下建立動態路由閘道。
等待建立完成且 DRG 生命週期狀態顯示可用:
-
建立完成後,按一下 DRG 以檢視其詳細資訊,並為要建立之 VCN 之間的連線建立必要的附件。
-
建立 DRG 路由表和 DRG 路由分配可讓您定義路由原則,以在連附項之間遞送流量。
-
您可以將多個 VCN 附加到單一 DRG,然後透過這些附件,使用 DRG 路由功能在 VCN 之間路由流量。
-
-
若要連附在作業 1.1 中建立的 VCN,請按一下建立虛擬雲端網路連附項。
-
新視窗將會開啟。輸入連附項的名稱,然後依您建立的連附項選取應該連附至 DRG 的 VCN。按一下建立 VCN 連附項即可完成建立。
- 附件名稱:
att_public
。 - 虛擬雲端網路:
Public_VCN
。
- 附件名稱:
-
對 VCN Private_VCN 重複步驟 1 到 5。
作業 2:建立 OCI 網路防火牆
建立 OCI 網路防火牆之前,必須先建立將在防火牆中使用的原則。在這項作業中,建立原則相當簡單,只允許 HTTP 流量。不過,OCI 網路防火牆可以檢查加密的流量,並具備進階的 L7 防火牆功能。
如需有關 OCI 網路防火牆服務功能的詳細資訊,請參閱 OCI 網路防火牆。
作業 2.1:建立網路防火牆原則
注意:建議在生產環境中,規則會儘可能具體化,其中一律會遵守最低存取原則。本教學課程中使用的範例純粹是教育的,不應在實際的生產環境中重現。
-
若要建立將部署在網路防火牆中的原則,請前往 OCI 主控台,按一下識別與安全和網路防火牆原則。
-
在網路防火牆原則頁面中,按一下建立網路防火牆原則以開始建立防火牆規則。
-
輸入精靈要求的資訊,然後按一下建立網路防火牆原則。
注意:如需有關可以在 OCI 網路防火牆原則中設定哪些參數的詳細資訊,請參閱原則和建立網路防火牆服務原則。
建立原則之後,您需要在原則內建立資源。資源將會詳述原則如何保護環境。
本教學課程將使用簡單版本的原則。我們只允許 HTTP 和 HTTPS 內送流量。如需有關建立 OCI 網路防火牆原則的詳細資訊,請參閱建立網路防火牆服務原則和建立網路防火牆服務原則元件。
若要建立本教學課程中使用的原則,您需要下列網路防火牆原則資源。
- 位址清單
- 服務
- 服務清單
- 安全規則
-
建立通訊清單資源。
-
按一下地址清單與建立地址清單。
-
在建立位址清單頁面中,輸入必要的資訊,然後按一下建立位址清單。
- 名稱:
Frontend_Web
(輸入最適合環境的名稱)。 - IP 位址 /CIDR: 輸入負載平衡器專用 CIDR。
- 名稱:
完成建立位址清單之後,您現在可以建立服務資源。
-
-
建立服務資源。
-
按一下服務和建立服務。
-
在建立服務頁面中,輸入必要的資訊,然後按一下建立服務。
- 名稱:
HTTP-HTTPS
(輸入最適合環境的名稱)。 - 協定:選取
TCP
。 - 連接埠範圍:輸入
80-80
。若要新增其他範圍,請按一下 +Another 範圍並新增443-443
。
- 名稱:
完成建立服務之後,您現在可以建立服務清單資源。
-
-
建立服務清單資源。
-
按一下服務和建立服務清單。
-
在建立服務清單頁面中,輸入必要的資訊,然後按一下建立服務清單。
- 名稱:輸入最適合環境的名稱。
- 可用的服務:選取在步驟 2 中建立的服務,然後按一下新增至選取的項目。
- 選取的服務:檢查是否已將所需的服務匯入選取的服務。
完成建立服務清單之後,您現在可以建立網路防火牆的安全規則。
-
-
建立安全規則。
-
按一下安全規則和建立安全規則。
-
在建立安全規則頁面中,輸入必要的資訊,然後按一下建立安全規則。
- 名稱:輸入原則的名稱。
- 來源位址:預設。來源值為任何地址。
- 目的地地址:選取在步驟 1 中建立的地址清單。按一下選取位址清單,然後選取建立的位址清單。
- 應用程式:預設。應用程式值為 Any application 。
- 服務:選取在步驟 3 中建立的服務清單。按一下選取服務清單,然後選取建立的服務清單。
- URL:預設。URL 值為任何 URL 。
- 規則動作:選取環境的規則動作。在本教學課程中,我們將使用允許流量。
- 規則順序:選取原則的順序。
-
完成建立原則之後,您就可以存取其詳細資訊。
注意:請根據環境存取需求建立原則。此教學課程中使用的範例純粹是教育的。
建立 OCI 網路防火牆原則之後,您現在可以繼續建立 OCI 網路防火牆執行處理本身。
作業 2.2:建立 OCI 網路防火牆
-
我們已建立將在環境中使用的存取原則,因此必須建立 OCI 網路防火牆。前往 OCI 主控台,按一下識別與安全和網路防火牆。
-
在網路防火牆頁面中,按一下建立網路防火牆以建立網路防火牆。
-
在建立網路防火牆頁面中,輸入必要的資訊,然後按一下建立網路防火牆。
- 名稱:
NFW_INBOUND
(輸入最適合環境的名稱)。 - 區間:選取將建立網路防火牆的區間。
- 網路防火牆原則 (區間):選取在 Task 2.1 中建立的原則。
- 虛擬雲端網路 (區間): 選取將安裝網路防火牆的 VCN。在本教學課程中,我們將選取名為
VCN_Public
的 VCN,如任務 1 的拓樸所示。 - 子網路 (區間): 選取將安裝網路防火牆的子網路。在本教學課程中,我們將依本文件的 Task 1.2 所述,選取名為
Subnet_FW
的子網路。
注意:建立網路防火牆大約需要 40 到 50 分鐘的時間才能完成。
- 名稱:
-
按一下網路防火牆名稱,然後查看資源的詳細資訊。
注意:
-
請注意,針對網路防火牆建立的專用 IP。未來將使用它來設定使用 DRG 的
intra-vcn
和inter-vcn
路由,讓防火牆能夠傳送及檢查環境中的所有通訊。 -
OCI 網路防火牆的專用 IP 可能與本教學課程中顯示的
10.0.0.8
不同。如此一來,所有要在環境中建立的路由都必須考慮在導入期間建立的 OCI 網路防火牆 IP。
-
作業 3:建立虛擬伺服器與負載平衡器
我們建立了整個網路環境、DRG、原則及網路防火牆,我們可以開始建立代管測試網站的負載平衡器和伺服器。
工作 3.1:建立虛擬伺服器或 Web 伺服器
-
建立虛擬伺服器既簡單又快速。若要建立虛擬伺服器,請前往 OCI 主控台,按一下運算和執行處理。
-
在執行處理頁面中,按一下建立執行處理。
-
在執行處理建立頁面中輸入必要的資訊。對於此教學課程,我們已經建立下列執行處理。
- 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
- srv1_app1:伺服器 #1 代表代管網站 #1。它是在
環境的拓樸將有助於瞭解伺服器的安裝位置。
Apache Web 伺服器 (httpd) 已安裝在這些伺服器上,並在其 documentRoot 中建立要從網際網路存取的簡單頁面。
在 OCI 中建立和設定執行處理的詳細資訊超出本教學課程的範圍。如需詳細資訊,請參閱建立執行處理。
Task 3.2:建立 OCI 負載平衡器
建立虛擬伺服器之後,必須建立 OCI 負載平衡器,以便透過 Round-Robin 執行負載平衡以存取新建立的 Web 伺服器。
-
若要建立 OCI 負載平衡器,請前往 OCI 主控台,按一下網路和負載平衡器。
-
在負載平衡器服務頁面中,按一下建立負載平衡器,即可開始在此教學課程中建立兩個負載平衡器。
-
在建立負載平衡器頁面中,輸入必要的資訊,以便開始建立作業,然後按下一步。
- 負載平衡器名稱:輸入負載平衡器的名稱。
- 可見性:選取
Public
,因為負載平衡器將透過網際網路存取。 - 指派公用 IP 位址:選取
Ephemeral IP address
。如果您有保留的 IP,可以使用選項Reserve IP address
。 - 選擇網路: 選取將部署負載平衡器的 VCN。在本教學課程中,VCN 將會是
Public_VCN
。 - 子網路 (區間): 選取將部署負載平衡器的子網路。在本教學課程中,子網路將是
subnet_loadbalancer
。
-
在選擇後端頁面中,輸入必要的資訊,然後按下一步。
- 指定負載平衡原則:選取負載平衡器的原則。在本教學課程中,我們將使用
Round-Robin
。 - 新增後端: 如果您已經建立將代管環境頁面中頁面的伺服器。若要新增它們,請按一下新增後端。
- 協定:將上傳簡單的網站時,請選取 HTTP 作為後端狀況檢查的協定。
- 連接埠:使用 HTTP 時,狀況檢查必須在連接埠 80/TCP 上尋找連線。
- 使用 SSL:若要對 HTTPS 進行狀況檢查,請選取
Use SSL
項目來設定將使用的憑證。此類型的狀況檢查超出本教學課程的範圍。如需詳細資訊,請參閱負載平衡器的 SSL 憑證。
- 指定負載平衡原則:選取負載平衡器的原則。在本教學課程中,我們將使用
-
在設定監聽器頁面中,輸入下列資訊,然後按一下下一步。
- 監聽器名稱:輸入監聽器的名稱。
- 指定監聽器處理的流量類型:選取將通過監聽器的流量類型。本教學課程將使用 HTTP。
- 指定監聽器監控傳入流量的連接埠:選取監聽器應該監聽的連接埠,以擷取導向至 Web 伺服器的傳入流量。本教學課程將使用連接埠 80/TCP。
-
啟用 OCI 負載平衡器日誌,然後按一下送出以開始建立。
注意:您必須為每個網站或應用程式建立不同的負載平衡器。在本教學課程中,我們將建立兩個負載平衡器 (每個要測試的網站一個)。
請注意,每個 OCI 負載平衡器都有不同的公用 IP。因此,每個網站都可以透過不同的位址來存取。
-
建立 OCI 負載平衡器之後,您可以手動將後端伺服器插入每個負載平衡器執行處理中。按一下要設定的負載平衡器名稱,然後在後端集上按一下,如下圖所示。
-
檢視後端集時,請按一下其名稱以插入後端。在後端集資訊頁面中,按一下後端和新增後端。
-
選取將成為您正在設定之網站或應用程式後端的伺服器。請按一下新增來完成。
注意: 此時將會設定 OCI 負載平衡器,但是後端會進入嚴重模式,因為尚未設定內部 vcn 和 DRG 路由。
作業 4:建立 DRG 和 VCN 內部路由
設定路由,讓網站能夠透過網際網路存取,且 OCI 網路防火牆可以分析存取流量。
作業 4.1:在公用 VCN 中建立路由
-
若要存取 VCN 路由組態頁面,請前往 OCI 主控台,按一下網路和虛擬雲端網路。
-
按一下 Public_VCN 。
-
按一下路由表功能表和建立路由表,即可開始建立路由表。
-
在建立路由表頁面中,輸入必要的資訊,然後按一下建立。
- 名稱:輸入路由表的名稱。
- 在區間中建立:選取可在其中建立路由表的區間。
注意: 我們將不會使用 VCN 預設路由表。
-
針對 Public_VCN 中的下列路由表重複此程序。
- RT_Firewall:應該連附至 OCI Network Firewall 子網路以進行 vcn 內部連線的路由表。
- RT_LoadBalancers:應該附加至負載平衡器子網路以進行 vcn 內部連線的路由表。
- RT_to_nfw:必須連附至 Public_VCN 網路之網際網路閘道的路由表。
- 在 RT_Firewall 中為 Subnet_Firewall 建立路由。
建立路由表之後,請於每個表格中建立下列路由。
Subnet_Firewall 必須使用 RT_Firewall 表格。將子網路預設路由表取代為此自訂路由表。
表格:RT_Firewall
CIDR 下一個希望 0.0.0.0/0 IGW 系列 - IGW:網際網路閘道。
- 在 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 的專用網路。
- 在 RT_to_nfw 中建立網際網路閘道的路由
RT_to_nfw 表格必須附加至 VCN_Public Internet Gateway。
CIDR 下一個希望 10.0.1.0/24 <OCI_NETWORK_FIREWALL_IP>
作業 4.2:在專用 VCN 中建立路由
-
若要存取 VCN 路由組態頁面,請前往 OCI 主控台,按一下網路和虛擬雲端網路。
-
按一下 Private_VCN 。
-
按一下路由表功能表和Private_VCN 的預設路由表。
-
對於 Private_VPN,我們只會建立指向從
10.0/16
網路到 DRG 之路徑的路由。CIDR 下一個希望 10.0.0.0/16 DRG 建立路由之後,一切都應該正確運作。VCN_Public 的 vcn 內部路由會將所有流量轉送至 OCI 網路防火牆,然後由 DRG 處理 VCN (VCN_Public 和 VCN_Private) 之間的連線。
-
回到 OCI 負載平衡器組態,並查看後端是否為確定。如果是,請開啟瀏覽器並存取其中一個負載平衡器的 IP。
工作 5:存取網頁
環境路由設定正確之後,OCI 負載平衡器執行處理便可以連線到後端代管測試網站的伺服器 (在專用網路中),您就可以存取負載平衡器的位址,最後再存取測試網頁。
擷取負載平衡器的有效 IP 位址,然後將它們置於瀏覽器中。如果所有設定都正確,您應該會看到下列頁面。
相關連結
認可
- 作者 - Rodrigo Pace de Barros (Oracle LAD A-Team Cloud Security Solution Engineer)
其他學習資源
瀏覽 docs.oracle.com/learn 的其他實驗室,或前往 Oracle Learning YouTube 頻道存取更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。
如需產品文件,請造訪 Oracle Help Center 。
Protect Websites and Applications with Oracle Cloud Infrastructure Network Firewall
F86942-02
February 2024
Copyright © 2024, Oracle and/or its affiliates.