附註:

使用 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 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 本機。

  1. 登入 OCI 主控台,然後按一下 Web 應用程式防火牆

    WAF 功能表 1

  2. 原則中,按一下建立 WAF 原則,然後輸入下列資訊。按下一步

    WAF 功能表 1

  3. 存取控制原則中,選取啟用存取控制 (如果需要存取控制)。如需詳細資訊,請參閱 Web 應用程式防火牆原則的存取控制

    WAF 功能表 1

  4. 速率限制原則中,如果需要速率限制,請選取啟用以設定速率限制規則。如需詳細資訊,請參閱 Web 應用程式防火牆的速率限制

    WAF 功能表 1

  5. 保護中,如果需要設定保護,請選取啟用設定保護規則。如需詳細資訊,請參閱 Web 應用程式防火牆的保護

    WAF 功能表 1

  6. 選取強制點中,此功能表的用途是將新建立的 WAF 原則附加至現有的負載平衡器。如果尚未建立任何負載平衡器,或目前沒有可用的負載平衡器,您可以在建立負載平衡器時略過此步驟並連附原則。

    WAF 功能表 1

作業 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 安全提示的訊息,如下圖所示。

Certbot DNS 安全提示

由於我們使用 OCI DNS 服務,因此我們只會在 example.com 區域中建立文字記錄。

OCI DNS TXT 挑戰

現在,Certbot 應完成流程,讓您獲得終端使用者憑證、完整 CA 鏈及其對應的私密金鑰。本教學課程稍後將對負載平衡器 https 監聽器使用此一般使用者憑證 (連同其完整鏈結)。

作業 3:設定 OCI 負載平衡器

完成 OCI WAF 本機設定之後,下一個目標是在第 4 層部署 OCI 負載平衡器 (又稱為 OCI 彈性負載平衡器) 以作為公用服務,並連附 WAF 本機。

  1. 開啟 OCI 主控台,按一下網路負載平衡器

    Load Balancer 1

  2. 按一下建立負載平衡器,並輸入下列資訊,然後按一下下一步

    • 負載平衡器名稱:輸入負載平衡器的名稱。

    • 選擇可見性類型:選取公用負載平衡器。

    • 頻寬: 選取負載平衡器資源配置和其他組態詳細資訊。

    • 選擇網路: 選取至少含有兩個公用子網路的 VCN;一個用於 OCI 負載平衡器,另一個用於 OCI 網路防火牆。

      負載平衡器主功能表

    • 顯示進階選項:檢查使用 Web 應用程式防火牆原則防止第 7 層攻擊,然後選擇先前建立的本機 WAF。

      負載平衡器主功能表 / 進階選項

  3. 略過選擇後端區段,因為我們稍後會在負載平衡器建立之後新增後端伺服器,然後按一下下一步

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

    負載平衡監聽器功能表

    我們將設定內送要求負載平衡器監聽器,這基本上是我們從外部接收所有連線之負載平衡器的主要進入點。我們必須將 HTTPS 設定為預設的連接埠 443 (不可避免地需要使用 X.509 憑證 (SSL 憑證)。透過使用 HTTPS,我們將確保所有連線都將被安全地加密。

    在一般情況下,公用負載平衡器會作為網際網路上一般使用者的主要進入點,必須上傳由信譽良好的公用憑證授權機構 (CA) 簽署的 SSL 憑證,例如 Digicert、Global Sign、Let's Encrypt 和其他憑證。此外,網際網路公開的這些憑證必須在其到期日前續約,以確保客戶不會遇到不必要的訊息,例如您的連線不是私人連線!!ERR_CERT_DATE_INVALID.

    也就是說,您必須上傳您建立之 Let's Encrypt 憑證的公開與私人詳細資料。請確定兩個元件都已正確上傳,以便進行安全連線。請確定在公用部分上傳完整鏈憑證 (包括中繼和 (或) 根 CA)。

  5. 管理記錄日誌是選擇性的組態,不在此教學課程的範圍內。按一下送出

  6. 一段時間後,將會建立您的負載平衡器。現在,我們需要設定後端伺服器。由於後端伺服器將使用 SSL,因此必須先在負載平衡器的憑證區段中至少建立一個用於設定後端伺服器 SSL 連線的憑證。如上所述,您可以使用第三方工具手動建立此憑證組合,或使用 OCI Certificates 管理服務。在此自學課程中,我們將使用 XCA 工具。

    請前往網路負載平衡器負載平衡器負載平衡器詳細資訊以及憑證

  7. 憑證區段中,選取憑證資源作為負載平衡器管理憑證,然後按一下新增憑證

    負載平衡器憑證來源

    新增用來簽署後端伺服器 SSL 憑證的公用 CA 根憑證或中繼 CA 憑證。提醒您,我們已使用具有任何通用名稱與 SAN 且沒有到期日的自行簽署憑證。您不需要在此安裝任何伺服器憑證,因為負載平衡器只會利用根 CA 進行後端伺服器憑證驗證。

    負載平衡器正在新增憑證

  8. 若要建立後端伺服器,請選取後端集,然後按一下建立後端集

    負載平衡器後端集 1

  9. 建立後端集中,輸入下列資訊。

    • 後端集名稱: 輸入後端集名稱。
    • 選取 SSL
    • 選取負載平衡器管理憑證
    • 新增您在步驟 7 中建立的憑證。如果您要確定負載平衡器檢查收到的 SSL 憑證簽章,請按一下驗證對等憑證
    • 狀況檢查:
      • 協定:選取 HTTP
      • 連接埠:選取 443 連接埠。
      • 間隔和逾時:保留預設的間隔和逾時值 (10000 和 3000 毫秒)。
      • 如需狀況檢查的狀況回應,請選取 200。
      • URL 路徑 (URI):從 Web 伺服器上的 URL 新增任何資源。例如:index.htmlmainpage.html 等。

    負載平衡器後端集 1

作業 4:設定 OCI 網路防火牆

OCI 負載平衡器設定之後,我們的目標是設定 OCI 網路防火牆以保護北南流量。防火牆將位於新設定的負載平衡器與網際網路閘道之間。若要繼續設定 OCI 網路防火牆,請參閱使用 OCI 網路防火牆進行 SSL 轉送代理主機,以及使用解密規則進行內送檢查,然後完成下列作業。

作業 5:設定 OCI 路由

OCI 網路防火牆已部署,我們必須確定北南方流量以雙向周遊。首先,您需要為與 OCI 網路防火牆所在 VCN 關聯的網際網路閘道建立專屬路由表。

  1. 在 VCN 中建立路由表,將目標類型項目新增為 private IP,將目的地新增為 CIDR 區塊,引進此教學課程 192.168.6.0/24目標的負載平衡器子網路 CIDR 區塊,作為指定給在作業 6 中部署之 OCI 網路防火牆的專用 IP。

    網際網路 GW 路由表

  2. 將路由表與網際網路閘道建立關聯,按一下三個點和關聯路由表,然後選取路由表。

    網際網路 GW 路由表

  3. 此路由表與網際網路閘道關聯後,導向至公用負載平衡器 192.168.6.0/24 的所有流量一開始都會重新導向至 OCI 網路防火牆所在的專用 IP 192.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

網際網路 GW 路由表

認可

其他學習資源

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

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