附註:
- 此教學課程需要存取 Oracle Cloud。若要註冊免費帳戶,請參閱 Oracle Cloud Infrastructure Free Tier 入門。
- 它使用 Oracle Cloud Infrastructure 證明資料、租用戶及區間的範例值。完成實驗室時,請將這些值取代為您雲端環境特定的值。
使用 OCI Network Firewall 和 OCI WAF Region,透過 Let's Encrypt Certificates 保護您的應用程式
簡介
在廣闊的數位轉型塑造的環境中,保護您的應用程式不再是可選的 - 它是重要的首要任務。隨著組織將工作負載過渡到 Oracle Cloud Infrastructure (OCI),實施對網路威脅的強大防禦至關重要。OCI 提供各式各樣的工具來強化您的應用程式,在此教學課程中,我們將帶您瞭解如何使用 OCI 網路防火牆和 OCI Web 應用程式防火牆 (WAF) 區域 / 本機來保護數位資產。
此教學課程為何重要?
當您的應用程式與外部世界通訊時,他們面臨著網路安全威脅的現今挑戰。本教學課程運用 OCI 網路防火牆和 OCI WAF 區域的強大功能,協助您建置多層防禦,保護應用程式免於已知和新興威脅。我們將探討重要概念,包括多網域支援,以及使用標準工具產生或更新 X.509 憑證。此外,我們將使用廣泛認可且免費的服務 Let's Encrypt 。透過此,您將全面瞭解保護應用程式的基本實務。
本教程是誰?
本教學課程專為尋求全面瞭解 OCI 安全功能的雲端架構師、安全專業人員及開發人員所設計。無論您是經驗豐富的雲端從業人員還是剛開始進入雲端安全性之旅,本教程都將為您提供在應用程式周圍構建強大防禦的技能。
什麼是 OCI Network Firewall
Oracle Cloud Infrastructure Network Firewall 是最先進的受管理防火牆服務,使用 Palo Alto Networks 建置。它是新一代防火牆技術 (NGFW)。它提供機器學習驅動的防火牆功能,可保護您的 OCI 工作負載,並可在 OCI 上輕鬆使用。作為 OCI 原生防火牆即服務方案,OCI Network Firewall 可讓您利用防火牆功能,而無需設定和管理其他安全基礎架構。OCI 網路防火牆執行處理具備內建的高可用性,並且可以在您選擇的虛擬雲端網路 (VCN) 和子網路中建立。
OCI 網路防火牆服務提供進入您雲端環境之資料流程的深入洞察分析,可處理內送和子網路間或 VCN 間的通訊。本質上,它可以檢視北南網路流量和西東網路流量。如需詳細資訊,請參閱 OCI Network Firewall 。
什麼是 OCI Web 應用軟體防火牆區域 / 本機
OCI Web Application Firewall (WAF) 是一項雲端安全性服務,可協助保護 Web 應用程式免於常見的安全性威脅和攻擊,例如 SQL 資料隱碼、跨網站指令碼 (XSS) 和分散式阻斷服務 (DDoS)。OCI WAF 區域是最新版本的 WAF,通常部署在區域層級,並與 OCI Load Balancer 整合,提供彈性、可擴展的防禦機制。如需詳細資訊,請參閱 OCI Web Application Firewall 。
架構
此建議的架構包含使用下列元件對租用戶工作負載的總保護。
-
OCI WAF 區域:此 WAF 已與 OCI 彈性負載平衡器 (第 7 層) 整合,可保護透過負載平衡器傳送的所有 HTTP (S) 流量。
-
OCI 負載平衡器:此負載平衡器將會從公用網際網路接收要求。
-
OCI Network Firewall:它也稱為新一代防火牆。OCI Network Firewall 和 WAF 攜手合作,將建立多層防禦。如果一層遺漏威脅,另一層可能會捕捉威脅,提供更健全的安全態勢。
資料流程圖表
您可以在下列網路圖表、以綠色點線表示的內送要求、以紅色點線表示的回應中,輕鬆查看網路資料流程。
此圖遵循為北南流量部署 OCI Network Firewall 的最佳實務。在最初的階段,傳入流量 (以綠色表示,並在第 7 層運作) 會透過網際網路閘道導向。網際網路閘道有一個關聯的路由表,可將目標為負載平衡器子網路 (192.168.6.0/24
) 的所有流量轉移至 NGFW 專用 IP。這將確保傳入的流量將通過 NGFW 進行檢查。
網路流程之後,流量會從網際網路閘道繼續前往 OCI 網路防火牆或新一代防火牆 (NGFW)。值得注意的是,OCI 網路防火牆會在不終止 TLS/SSL 連線的情況下無縫接收到流量。OCI 網路防火牆會套用解密設定檔來解密 TLS 流量,以進行深層封包檢查。如需詳細資訊,請參閱使用 OCI 網路防火牆進行 SSL 解密。
OCI 網路防火牆徹底檢查流量之後,便會進展至 OCI 負載平衡器,而 OCI 負載平衡器會先終止 TLS/SSL 連線。連附的 WAF 接著會對解密的流量執行深層封包檢查,確保封包在轉送至後端伺服器之前乾淨。然後,負載平衡器會執行負載平衡路由,並起始與所選後端伺服器的次要連線。
對於後端伺服器傳回流量,後端伺服器一開始會回應 OCI 負載平衡器 (以紅色表示,並在第 7 層運作)。達到負載平衡器時,附加的 WAF 會先檢查傳回的流量,以確保其符合安全標準。WAF 檢查之後,負載平衡器會將流量遞送回專用 IP,讓 OCI 網路防火牆對回應執行額外的安全檢查。經過防火牆檢查後,系統會根據與 NGFW 子網路關聯的路由表,將流量遞送至網際網路閘道。從 IGW,傳回的流量將透過網際網路流向原始用戶端。
目標
本教學課程的主要目標是透過與 OCI Network Firewall 一起有效設定 OCI WAF 區域,讓使用者能夠強化雲端工作負載。藉由將經過簽署的 X.509 憑證從 Let's Encrypt 納入 OCI 負載平衡器前端,使用者可確保連線安全且經過驗證。本教學課程進一步引導使用者導入適用於北南流量的 OCI 網路防火牆最佳做法,以及部署應用程式 OCI 負載平衡器。尤其是,此組態策略性地使用非自行簽署憑證將 OCI 負載平衡器指定為唯一元件 - 讓加密憑證,而使用傳輸層安全 (TLS) 的其他元素則使用易於管理的無麻煩自行簽署憑證。
-
作業 1:在本機部署 OCI Web 應用程式防火牆 (WAF)。
-
工作 2:使用 Let's Encrypt 簽署伺服器憑證。
-
作業 3:設定 OCI 負載平衡器。
-
作業 4:設定 OCI 網路防火牆。
-
作業 5:設定 OCI 路由。
必要條件
-
作用中的 OCI 租用戶。您必須具備必要的權限,才能在 OCI 中建立及管理網路資源。
-
對 Linux 作業系統、OCI、Oracle Linux 的基本瞭解,包括如何在 Linux 中安裝及設定軟體。
-
深入瞭解如何使用 OCI 主控台或 Oracle Cloud Infrastructure 命令行介面 (OCI CLI) 建立及管理網路資源。
-
瞭解如何使用及設定 OCI 網路防火牆和 OCI WAF 本機。
-
對 SSL/TLS 技術和 X.509 數位憑證有良好的瞭解。如需詳細資訊,請參閱本建議的 X.509 憑證深入探討指南:X509 Certificates 和 SSL/TLS: Understand TLS/SSL encryption technology 。
作業 1:在本機部署 OCI Web 應用程式防火牆
我們要部署的第一個元件是 WAF 本機。
-
登入 OCI 主控台,然後按一下 Web 應用程式防火牆。
-
在原則中,按一下建立 WAF 原則,然後輸入下列資訊。按下一步。
-
在存取控制原則中,選取啟用存取控制 (如果需要存取控制)。如需詳細資訊,請參閱 Web 應用程式防火牆原則的存取控制。
-
在速率限制原則中,如果需要速率限制,請選取啟用以設定速率限制規則。如需詳細資訊,請參閱 Web 應用程式防火牆的速率限制。
-
在保護中,如果需要設定保護,請選取啟用設定保護規則。如需詳細資訊,請參閱 Web 應用程式防火牆的保護。
-
在選取強制點中,此功能表的用途是將新建立的 WAF 原則附加至現有的負載平衡器。如果尚未建立任何負載平衡器,或目前沒有可用的負載平衡器,您可以在建立負載平衡器時略過此步驟並連附原則。
作業 2:以加密方式簽署伺服器憑證
在本教學課程中,我們將使用名為 Let's Encrypt 的免費公用 CA 服務來簽署我們的伺服器憑證。因此,鏈結憑證會顯示如下:
1.-End-user Certificate - Issued to: *.example.com; Issued By: Let’s Encrypt R3
2.-Intermediate Certificate 1 - Issued to: Let’s Encrypt R3 (RSA 2048, O = Let's Encrypt, CN = R3); Issued By: Signed by ISRG Root X1:ISRG Root X1 (RSA 4096, O = Internet Security Research Group, CN = ISRG Root X1)
3.-Root certificate - Issued by and to: ISRG Root X1 (RSA 4096, O = Internet Security Research Group, CN = ISRG Root X1) , Selfsigned
In PEM format:
-----BEGIN CERTIFICATE-----
MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD
EwJSMzAeFw0yNDAxMTUxNjAyMTNaFw0yNDA0MTQxNjAyMTJaMBgxFjAUBgNVBAMM
DSouZnd0ZXN0LnNpdGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1
3NkuEB3r0m/cIWjYBvXEg8QAcib3QjkGO2YwDRu9IwjyxTYTqiWp0F8ZYh2hM1zP
...xxxx
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
oIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw
WhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
RW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cP
R5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdx
sxPnHKzhm+/b5Dt....XXXX
-----BEGIN CERTIFICATE-----
oOFTJOwT2e4ZvxCzSow/iaNhUd6shweU9GNx7C7ib1uYgeGJXDR5
bHbvO5BieebbpJovJsXQEOEO3tkQjhb7t/eo98flAgeYjzYIlefiN5YNNnWe+w5y
sR2bvAP5SQXYgd0FtCrWQemsAXaVCg/Y39W9Eh81LygXbNKYwagJZHduRze6zqxZ
Xmidf3LWicUGQSk+WT7dJvUsWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4
FQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc
SLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna/H2ql
PRmP6zjzZN7IKw0KKP/32+IVQtQi0Cdd4Xn+GOd....xxx
-----END CERTIFICATE-----
因此,在使用 Let's Encrypt 之前,我們需要安裝某些軟體來協助我們建立 Let's Encrypt 憑證或簽署一個 CSR 以進行簽署。如需詳細資訊,請參閱 Let's Encrypt 。
要簽署,我們將使用 Let's Encrypt 的 certbot。如需有關設定指示的詳細資訊,請參閱設定指示。若要在 Oracle Linux 上安裝,請參閱 Let's Encrypt - Free Certificates on Oracle Linux (CertBot) 。
安裝憑證機器人之後,您就可以執行下列指令輕鬆建立已簽署的 x.509 憑證。
sudo certbot certonly --manual --preferred-challenges=dns --email YOUR EMAIL ADDRESS --server https://acme-v02.api.letsencrypt.org/directory --agree-tos -d *.example.com --key-type rsa
由於我們使用萬用字元網域 (_.example.com
),因此憑證機器人需要驗證安全提示,才能確認 _.example.com
的所有權。我們使用 – preferred-challenges=dns 選項選擇 DNS 安全提示。在執行憑證機器人期間,我們將收到有關 DNS 安全提示的訊息,如下圖所示。
由於我們使用 OCI DNS 服務,因此我們只會在 example.com
區域中建立文字記錄。
現在,Certbot 應完成流程,讓您獲得終端使用者憑證、完整 CA 鏈及其對應的私密金鑰。本教學課程稍後將對負載平衡器 https 監聽器使用此一般使用者憑證 (連同其完整鏈結)。
作業 3:設定 OCI 負載平衡器
完成 OCI WAF 本機設定之後,下一個目標是在第 4 層部署 OCI 負載平衡器 (又稱為 OCI 彈性負載平衡器) 以作為公用服務,並連附 WAF 本機。
-
開啟 OCI 主控台,按一下網路和負載平衡器。
-
按一下建立負載平衡器,並輸入下列資訊,然後按一下下一步。
-
負載平衡器名稱:輸入負載平衡器的名稱。
-
選擇可見性類型:選取公用負載平衡器。
-
頻寬: 選取負載平衡器資源配置和其他組態詳細資訊。
-
選擇網路: 選取至少含有兩個公用子網路的 VCN;一個用於 OCI 負載平衡器,另一個用於 OCI 網路防火牆。
-
顯示進階選項:檢查使用 Web 應用程式防火牆原則防止第 7 層攻擊,然後選擇先前建立的本機 WAF。
-
-
略過選擇後端區段,因為我們稍後會在負載平衡器建立之後新增後端伺服器,然後按一下下一步。
-
在設定監聽器中,輸入下列資訊,然後按一下下一步。
我們將設定內送要求負載平衡器監聽器,這基本上是我們從外部接收所有連線之負載平衡器的主要進入點。我們必須將 HTTPS 設定為預設的連接埠
443
(不可避免地需要使用 X.509 憑證 (SSL 憑證)。透過使用 HTTPS,我們將確保所有連線都將被安全地加密。在一般情況下,公用負載平衡器會作為網際網路上一般使用者的主要進入點,必須上傳由信譽良好的公用憑證授權機構 (CA) 簽署的 SSL 憑證,例如 Digicert、Global Sign、Let's Encrypt 和其他憑證。此外,網際網路公開的這些憑證必須在其到期日前續約,以確保客戶不會遇到不必要的訊息,例如您的連線不是私人連線!!ERR_CERT_DATE_INVALID.
也就是說,您必須上傳您建立之 Let's Encrypt 憑證的公開與私人詳細資料。請確定兩個元件都已正確上傳,以便進行安全連線。請確定在公用部分上傳完整鏈憑證 (包括中繼和 (或) 根 CA)。
-
管理記錄日誌是選擇性的組態,不在此教學課程的範圍內。按一下送出。
-
一段時間後,將會建立您的負載平衡器。現在,我們需要設定後端伺服器。由於後端伺服器將使用 SSL,因此必須先在負載平衡器的憑證區段中至少建立一個用於設定後端伺服器 SSL 連線的憑證。如上所述,您可以使用第三方工具手動建立此憑證組合,或使用 OCI Certificates 管理服務。在此自學課程中,我們將使用 XCA 工具。
請前往網路、負載平衡器、負載平衡器、負載平衡器詳細資訊以及憑證。
-
在憑證區段中,選取憑證資源作為負載平衡器管理憑證,然後按一下新增憑證。
新增用來簽署後端伺服器 SSL 憑證的公用 CA 根憑證或中繼 CA 憑證。提醒您,我們已使用具有任何通用名稱與 SAN 且沒有到期日的自行簽署憑證。您不需要在此安裝任何伺服器憑證,因為負載平衡器只會利用根 CA 進行後端伺服器憑證驗證。
-
若要建立後端伺服器,請選取後端集,然後按一下建立後端集。
-
在建立後端集中,輸入下列資訊。
- 後端集名稱: 輸入後端集名稱。
- 選取 SSL 。
- 選取負載平衡器管理憑證。
- 新增您在步驟 7 中建立的憑證。如果您要確定負載平衡器檢查收到的 SSL 憑證簽章,請按一下驗證對等憑證。
- 狀況檢查:
- 協定:選取
HTTP
。 - 連接埠:選取
443
連接埠。 - 間隔和逾時:保留預設的間隔和逾時值 (10000 和 3000 毫秒)。
- 如需狀況檢查的狀況回應,請選取 200。
- URL 路徑 (URI):從 Web 伺服器上的 URL 新增任何資源。例如:
index.html
、mainpage.html
等。
- 協定:選取
作業 4:設定 OCI 網路防火牆
OCI 負載平衡器設定之後,我們的目標是設定 OCI 網路防火牆以保護北南流量。防火牆將位於新設定的負載平衡器與網際網路閘道之間。若要繼續設定 OCI 網路防火牆,請參閱使用 OCI 網路防火牆進行 SSL 轉送代理主機,以及使用解密規則進行內送檢查,然後完成下列作業。
-
部署 SSL 輸入檢查模式的 OCI 網路防火牆原則。如需詳細資訊,請參閱使用 OCI 網路防火牆進行 SSL 解密。
-
建立解密設定檔的對應加密密碼時,請使用先前上傳至 OCI 負載平衡器監聽器的相同自行簽署憑證 (包含公用金鑰和私密金鑰)。建議您依照此教學課程建立 JSON 檔案,請參閱從 OCI 網路防火牆的自訂 PEM 憑證建立完全相容的 JSON 樣板。
-
將 OCI 網路防火牆連附先前建立的 OCI 網路防火牆原則時,請將 OCI 網路防火牆部署到 NGFW Pub 子網路 (192.168.5.0/24) 中。此動作會將所提及子網路的專用 IP 位址配置給 OCI 網路防火牆,之後將需要進行路由組態設定。
作業 5:設定 OCI 路由
OCI 網路防火牆已部署,我們必須確定北南方流量以雙向周遊。首先,您需要為與 OCI 網路防火牆所在 VCN 關聯的網際網路閘道建立專屬路由表。
-
在 VCN 中建立路由表,將目標類型項目新增為
private IP
,將目的地新增為 CIDR 區塊,引進此教學課程192.168.6.0/24
和目標的負載平衡器子網路 CIDR 區塊,作為指定給在作業 6 中部署之 OCI 網路防火牆的專用 IP。 -
將路由表與網際網路閘道建立關聯,按一下三個點和關聯路由表,然後選取路由表。
-
此路由表與網際網路閘道關聯後,導向至公用負載平衡器
192.168.6.0/24
的所有流量一開始都會重新導向至 OCI 網路防火牆所在的專用 IP192.168.5.78
。從 OCI 網路防火牆專用 IP
192.168.5.78
,在 OCI 網路防火牆進行封包檢查之後,封包仍會繼續前往 OCI 負載平衡器。從該處,系統會將它們導向至所選後端伺服器之間的最終目的地,由負載平衡器的路由組態決定。現在,請務必確保傳回給網際網路使用者的封包按照反向順序遵循相同的路徑,並周遊 OCI 網路防火牆以檢查回應。我們需要為負載平衡器公用子網路建立路由表,以便透過 OCI 網路防火牆專用 IP
192.168.5.78
從後端伺服器遞送回應,如下圖所示。
從 OCI 網路防火牆子網路,我們需要透過將 0.0.0.0/0
路由新增至網際網路閘道,確保回應遞送至網際網路閘道。
到達網際網路閘道後,套裝軟體會路由回其來源。作為測試,瀏覽至 https://www.test.com
。
相關連結
認可
- 授權者 - Luis Catalán Hernández (OCI Cloud Network Specialist and Multi Cloud),Sachin Sharma (OCI Cloud Network Specialist)
其他學習資源
探索 docs.oracle.com/learn 上的其他實驗室,或存取 Oracle Learning YouTube 頻道上的更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。
如需產品文件,請造訪 Oracle Help Center 。
Secure Your Applications using OCI Network Firewall and OCI WAF Regional with Let's Encrypt Certificates
G17252-01
October 2024