ノート:
- このチュートリアルでは、Oracle Cloudへのアクセスが必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントに例の値を使用します。演習を終える際は、これらの値をクラウド環境に固有の値に置き換えてください。
証明書を暗号化してOCI Network FirewallとOCI WAF Edgeを使用してアプリケーションを保護
イントロダクション
広範なデジタル・トランスフォーメーションに支配され、アプリケーションのセキュリティが単なる考慮事項ではなく、妥協のない優先事項となります。組織がワークロードをOracle Cloud Infrastructure(OCI)に移行するにつれて、サイバー脅威に対する堅牢な防御戦略が不可欠になります。OCIは、アプリケーションを強化するための包括的なツール・スイートを提供し、このチュートリアルでは、OCI Network FirewallとOCI Web Application Firewall (WAF)エッジを使用してデジタル資産を保護するプロセスをガイドします。
このチュートリアルが必須である理由
アプリケーションが外部と通信するにつれて、サイバー・セキュリティの脅威の絶え間ない課題に直面します。このチュートリアルでは、OCI Network FirewallとOCI WAFエッジの機能を活用することで、既知の脅威と新しい脅威の両方からアプリケーションを保護し、多層防御を構築するのに役立ちます。マルチドメインのサポートや、標準ツールを使用したX.509証明書の生成または更新など、重要な概念を探ります。さらに、広く認識され、無料のサービスであるLet's Encryptの使用についても詳しく説明します。これにより、アプリケーションを保護するための重要なプラクティスを包括的に理解できるようになります。
このチュートリアルは誰のためのものですか?
このチュートリアルは、Oracle Cloud Infrastructureのセキュリティ機能を包括的に理解しようとするクラウド・アーキテクト、セキュリティ専門家および開発者向けに設計されています。熟練したクラウド・プラクティショナであろうと、クラウド・セキュリティへの道のりを始めたばかりの方であろうと、このチュートリアルでは、アプリケーションを中心に堅牢な防御を構築するスキルを身につけます。
OCI Network Firewallとは
Oracle Cloud Infrastructure Network Firewallは、Palo Alto Networksを使用して構築された最先端のマネージド・ファイアウォール・サービスです。次世代ファイアウォール技術(NGFW)です。OCIワークロードを保護するための機械学習を活用したファイアウォール機能を提供し、OCIで簡単に利用できます。OCIネイティブのfirewall-as-a-service製品として、OCI Network Firewallを使用すると、追加のセキュリティ・インフラストラクチャを構成および管理することなく、ファイアウォール機能を利用できます。OCI Network Firewallインスタンスは、組込みの高可用性により非常にスケーラブルで、選択した仮想クラウド・ネットワーク(VCN)およびサブネットに作成できます。
OCI Network Firewallサービスは、クラウド環境に入るデータのフローに関する深いインサイトを提供し、受信通信とサブネット間通信、またはVCN間通信の両方に対応します。本質的には、南北ネットワーク・トラフィックと東西ネットワーク・トラフィックを可視化します。詳細は、OCI Network Firewallを参照してください。
OCI Web Application Firewall Edgeとは
OCI WAFエッジはクラウドベースのWeb Application Firewallサービスです。ネットワーク・エッジで悪意のあるトラフィックをフィルタリングして、SQLインジェクションやDDoS攻撃などのオンライン脅威からWebアプリケーションを保護し、セキュリティを強化します。詳細は、OCI Web Application Firewallを参照してください。
アーキテクチャ
この提案されたアーキテクチャには、次のコンポーネントを使用したテナンシ・ワークロードの完全な保護が含まれます。
-
OCI WAFエッジ・ポリシー:このWAFは、パブリックIPエンドポイントおよびオリジンを保護する外部エンティティです(WAFの用語では、ターゲットWebサーバーの名前はOriginsです)。
-
OCI Load Balancer:このロード・バランサは、OCI WAFエッジ・パブリックIPからのみリクエストを受信するため、OCI WAFエッジ・サーバーからのトラフィックを受け入れるようにロード・バランサ、サーバーまたはオリジンを構成する必要があります。OCI WAFエッジ・サーバーのパブリックCIDR範囲は次のとおりです: CIDR範囲。このアーキテクチャでは、NSGを使用して、これらのCIDR範囲からのパブリック・トラフィックのみを受け入れます。
-
OCIネットワーク・ファイアウォール:次世代ファイアウォール、OCI Network FirewallおよびWAFとも呼ばれ、連携して作業することで、多層防御が作成されます。1つのレイヤーが脅威を逃した場合、もう1つのレイヤーは脅威を捕捉し、より堅牢なセキュリティ・ポスチャを提供します。
データ・フロー・ダイアグラム
ネットワーク・データ・フローは、次のネットワーク図、緑色の点線での受信リクエスト、赤い点線でのレスポンスで簡単に確認できます。
この図は、南北トラフィックのOCI Network Firewallをデプロイするためのベスト・プラクティスに準拠しています。初期段階では、受信トラフィック(緑色で表示され、レイヤー7で動作)は、OCI WAFエッジ・レイヤー7ファイアウォールを経由します。OCI WAFエッジは、TLS/SSL接続の終了とレスポンスを実行し、その後、OCIに対するセカンダリTLS/SSL接続を開始し、バック・トゥ・バック・ユーザー・エージェントとして機能します。
ネットワーク・フローの後、トラフィックはOCI WAFエッジからOCIインターネット・ゲートウェイに進みます。インターネット・ゲートウェイ内で、トラフィックをOCIネットワーク・ファイアウォールがあるプライベートIPアドレスにリダイレクトするようにルーティング表が構成されています。OCIネットワーク・ファイアウォールは、TLS/SSL接続を終了せずにトラフィックをシームレスに受信することに注意してください。OCI Network Firewallは、復号化プロファイルを適用してTLSトラフィックを復号化し、ディープ・パケット検査を可能にします。詳細は、SSL復号化のためのOCI Network Firewallの使用を参照してください。
OCI Network Firewallは、トラフィックを徹底的に検査すると、OCI Load Balancerに進みます。バランサは、TLS/SSL接続の終了および応答を担当します。ロード・バランシング・ルーティングを実行し、その後、選択したバックエンド・サーバーに対するセカンダリ接続を開始します。
バックエンド・サーバーからのリターン・トラフィックの場合、バックエンド・サーバーは最初にOCI Load Balancerに応答します(赤で表示され、レイヤー7で動作します)。ロード・バランサに到達すると、ロード・バランサ・サブネット内のルーティング表によって、トラフィックがOCIネットワーク・ファイアウォールがあるプライベートIPにリダイレクトされます。これにより、OCIネットワーク・ファイアウォールはレスポンスを包括的に検査できます。OCI Network Firewallは、検査を完了すると、次世代ファイアウォール(NGFW)サブネットに関連付けられたルーティング表コマンドに基づいてインターネット・ゲートウェイに戻ります。
その後、応答の最終検査のために、返却トラフィックがOCI WAFエッジに到達します。OCI WAFエッジが検査を完了すると、トラフィックがインターネット上のユーザーに安全に配信されます。
目的
このチュートリアルの主な目的は、OCI Network FirewallとOCI WAFエッジを効果的に設定することで、ユーザーがクラウド・ワークロードを強化できるようにすることです。OCI WAFエッジ・フロントエンドのLet's Encryptから署名されたX.509証明書を組み込むことで、ユーザーは安全で検証された接続を確保できます。このチュートリアルでは、北南トラフィックのOCI Network Firewallベスト・プラクティスの実装、アプリケーションOCI Load Balancerのデプロイについて、ユーザーをさらにガイドします。特に、この構成では、自己署名なしの証明書を使用してOCI WAFエッジを唯一のコンポーネントとして戦略的に指定します。証明書を暗号化しましょう。また、Transport Layer Security (TLS)を使用する他の要素では、手間のかからない自己署名付き証明書を利用し、管理が容易です。
さらに、OCI WAFエッジおよびOCI Network Firewallでの複数のサブドメインの使用、ワイルドカード・ドメインを受け入れるためのOCI WAFエッジの設定、およびX.509証明書でのワイルドカード・ドメインの使用をデモンストレーションします。
-
タスク1: OCI Web Application Firewall (WAF)エッジのデプロイ。
-
タスク2: OCI WAF EdgeのDNSの構成
-
タスク3: OCI WAF EdgeのHTTPSサポートを有効にします。
-
タスク4: Let's Encryptによるサーバー証明書の署名
-
タスク5: OCI Load Balancerの構成
-
タスク6: OCI Network Firewallの構成
-
タスク7: OCIルーティングの構成
前提条件
-
アクティブなOCIテナント。OCIでネットワーク・リソースを作成および管理するために必要な権限が必要です。
-
Linuxでのソフトウェアのインストールおよび構成方法を含む、Linux OS、OCI、Oracle Linuxの基本的な理解。
-
OCIコンソールまたはOracle Cloud Infrastructureコマンドライン・インタフェース(OCI CLI)を使用してネットワーク・リソースを作成および管理する方法についてよく理解しています。
-
OCI Network FirewallとOCI WAFエッジの使用方法および構成方法についてよく理解しています。
-
SSL/TLSテクノロジおよびX.509デジタル証明書についての十分な理解。詳細は、X.509証明書の詳細は、この推奨ガイド(X509証明書およびSSL/TLS: TLS/SSL暗号化テクノロジの理解)を参照してください。
タスク1: OCI Web Application Firewall (WAF) Edgeのデプロイ
デプロイする最初のコンポーネントはWAFエッジです。
-
OCIコンソールにログインし、「Web Application Firewall」をクリックします。
-
「ポリシー」で、「WAFポリシーの作成」をクリックし、次の情報を入力します。
OCI WAFエッジを作成するには、「OCI以外のWebアプリケーションを保護する必要がある場合は、ここでレガシー・ワークフローを使用します」をクリックします。デフォルトでは、ロード・バランサにアタッチするのに役立つローカルWAFポリシーが作成されます。このチュートリアルでは、OCIおよびOCI以外のオリジン(パブリックIPサーバー)を保護できるOCIの外部要素であるOCI WAFエッジ(レガシー・ワークフローWAFと呼ばれる)を中心に説明します。OCI WAFエッジは、Bot Management (Captchaチャレンジ、JavaScriptチャレンジ、ヒューマン・インタラクション・チャレンジなど)やキャッシング・ルール(CDNキャッシュ・メカニズムと同様)などの機能を備えたOCI WAFローカル・ポリシーとは別の製品であることに注意してください。
-
「エッジ・ポリシーの作成」に、必要な情報を入力します。
この時点で、2つの重要な概念は明確化が必要です。
-
ドメイン: WAFエッジのドメインは、Webサービスにアクセスするためにパブリックからアクセス可能なインターネット・ドメインを示します(たとえば:
www.myexamplewebshop.com
)。このドメインは、モバイル・デバイスおよびラップトップを使用するユーザーを含め、すべてのユーザーのプライマリ接続ポイントとして機能します。このドメインでは、デフォルトのhttp80
https443
TCPポートのみがサポートされます。「ドメイン」では、Webサイトのプライマリ・ドメイン(たとえば:
www.example.com
)を追加し、追加ドメイン(app1.example.com
、customer1.example.com
など)をさらに追加できます。ワイルドカード・ドメインを追加する場合は、OCI CLIを使用して手動で追加する必要があります。OCI CLIにアクセスする最速の方法は、OCI開発者ツール、クラウド・シェルを介して、OCIコンソールからWebブラウザベースの端末にアクセスでき、OCI CLIの最新バージョンと多数の便利なツールを備えた事前構成済のLinuxシェルを利用できます。詳細は、OCIコマンドライン・インタフェース(CLI)およびOCI Cloud Shellを参照してくださいワイルドカード・ドメインを追加ドメインとして追加するには、OCI Cloud Shellを開き、実行します。
oci waas waas-policy update --additional-domains '["*.yourmaindomain.xxx"]' --waas-policy-id your-WAF-policy-ID ( You can get your policy ID from OCI Web Console->Web application firewall->Policies->Policy details -> Policy Information Tab -> OCID )
ワイルドカード・ドメインを使用することで、WAFポリシーは、
\*.example.com
などの任意のサブドメインを含むhttpリクエストを受信できるようになります。たとえば、myapp1.example.com
、mycustomer2.example.com
などです。 -
WAFオリジン: WAFエッジオリジンがあります。オリジンとは、WAFの背後にある実際のWebサーバーを指します。WAFの用語では、originは、保護されている最終的な宛先サーバーを示します。これらのオリジンでは、その保護を担当するWAFエッジ・サーバーと排他的に通信する必要があります。この保護がオリジン・サーバーによって維持されるようにすることは必須であり、通常は、指定されたOCI WAFエッジ・ソースIPからのアクセスを排他的に許可するセキュリティ・リストまたはネットワーク・セキュリティ・グループ(NSG)を介してOCIで実現されます。詳細は、WAFの保護を参照してください。通常は、実際のWebサーバーまたはオリジンのパブリックIPアドレスまたはFQDNをここに入力します。ただし、このチュートリアルでは、柔軟なロード・バランサのパブリックIPアドレスを使用します。ロード・バランサがすでに作成されている場合は、そのパブリックIPアドレスをWAFオリジンとして使用できます。そうでない場合は、パブリック・ロード・バランサの作成後に、IPアドレスを最初に追加して後で更新できます。
グループごとに複数のオリジンを持つ異なるオリジン・グループを作成し、定期的なヘルス・チェックを含め、それらのオリジン間でロード・バランシングを実行できます(IP_Hash、Round_robin、Sticky_Cookie)。詳細は、Origin Managementを参照してください。また、拡張オリジン・オプションでは、デフォルトのhttp
80
https443
TCPポートを変更できます(ドメインではなくオリジン専用)。
-
-
「エッジ・ポリシーの作成」をクリックします。約2分かかるため、作成が表示されます。その後、ACTIVEを取得するため、OCI WAFの設定を続行できます。
タスク2: OCI WAF EdgeのDNSの構成
現在は、OCI WAFエッジの基本的な構成が稼働しています。プライマリ・ドメインおよび追加ドメイン(ワイルドカードを含む)がOCI WAFエッジ・サーバーにリダイレクトされるようにするには、コンソールに表示される対応するCNAMEを使用してドメインをホストするDNSサーバーを構成する必要があります。
このチュートリアルでは、次の図に示すように、OCIパブリックDNSサーバーを使用して、提案された値にCNAMEを追加します。
構成および公開されると、\*.example.com
への接続の試行はすべて、www-example-com.o.waas.OCI.oraclecloud.net
のレイヤー7検査のためにOCI WAFエッジ・サーバーにリダイレクトされます。検査が完了すると、OCI WAFエッジは、WAF検査後にクリーン・トラフィックを含む構成済オリジンにロード・バランシングされます。
タスク3: OCI WAF EdgeのHTTPSサポートの有効化
このタスクでは、OCI WAFエッジでHTTPSサポートを有効にします。現在、ほぼすべてのWebサービスで、SSL/TLS接続に依存して、セキュアなHTTPまたはHTTPS実装が必要です。X.509管理を含むTLS/SSLの概念をしっかりと把握して、OCI WAFエッジだけでなく、このチュートリアルで説明する今後のソフトウェア・コンポーネントでもHTTPSサポートを有効にすることが重要です。
-
OCIコンソールに移動し、「エッジ・ポリシー」で「設定」をクリックします。
-
HTTPSを有効にするには、「HTTPSサポートの有効化」をクリックします。
ここでは、サーバー証明書とその秘密キーをアップロードする必要があります。この証明書は、OCI WAFエッジの作成時に選択するプライマリ・ドメインおよび追加ドメインを表すため、証明書の共通名およびサブジェクト代替名(SAN)フィールドにこれらのドメインが含まれることが重要です。詳細は、「SSL証明書サブジェクトの代替名とは」を参照してください。
パブリックCAによって署名されていない自己署名証明書を使用している場合は、「自己署名証明書」を選択します。パブリックCAによって署名された証明書をアップロードする場合は、チェーン証明書全体を確実にアップロードすることが重要です。チェーン証明書は、証明書のリストで構成されます。通常は、エンド・エンティティ証明書、サーバー証明書とその公開キー、続いて1つ以上のCA証明書(中間)、およびオプションでルートCA証明書(自己署名)で終わります。
タスク4: Let's Encryptによるサーバー証明書の署名
このチュートリアルでは、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にインストールするには、Oracle Linuxでの暗号化- 無料の証明書(CertBot)を参照してください。
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
)を使用しているため、certbotには_.example.com
の所有権を確認するための検証チャレンジが必要です。-preferred-challenges=DNSオプションを使用して、DNSチャレンジを選択します。certbotの実行中に、次の図に示すように、DNSチャレンジに関するメッセージが表示されます。
OCI DNSサービスを使用しているため、example.com
ゾーンにtxtレコードを作成するだけです。
これで、certbotはプロセスを終了し、エンド・ユーザー証明書を取得し、完全なCAチェーンとそれに対応する秘密キーで完了します。これをタスク3のOCI WAF HTTPSメニューにアップロードできます。
タスク3でちょうど署名済証明書をアップロードすると、未公開の変更が1件ありますというメッセージが表示されます。「すべて公開」をクリックすると、約20分から30分かかります。
この時点で、OCI WAFエッジはHTTPSトラフィックを受信するように構成されます。その後、OCI Load Balancerを作成するときに、ロード・バランサのパブリックIPを取得し、OCI WAFエッジ・オリジンに設定する必要があります。
タスク5: OCI Load Balancerの構成
OCI WAFエッジの設定を完了した後、次の目標は、OCI WAFエッジのパブリック対応サービス・オリジンとして機能するために、OCI Flexible Load Balancerとも呼ばれるレイヤー4から7にOCI Load Balancerをデプロイすることです。OCI Load Balancerには、内部またはリージョンのOCI WAFを有効にしてアタッチする機能があり、WAF機能を提供することに注意することが重要です。ただし、このOCI WAFリージョンは、独自の機能セットを持つ個別の製品であることに言及する価値があります。このチュートリアルでは、特にOCI WAFエッジ実装に焦点を当てます。
-
OCIコンソールを開き、「ネットワーキング」および「ロード・バランサ」をクリックします。
-
「Load Balancerの作成」をクリックして、次の情報を入力し、「次へ」をクリックします。
- ロード・バランサ名:ロード・バランサ名を入力します。
- 可視性タイプの選択: 「パブリック」ロード・バランサを選択します。OCI WAFエッジはパブリックIPオリジンのみを保護します。
- 帯域幅:ロード・バランサのシェイプおよびその他の構成の詳細を選択します。
- ネットワーキングの選択:少なくとも2つのパブリック・サブネットを持つVCNを選択します。1つはOCI Load Balancer用、もう1つはOCI Network Firewall用です。
アーキテクチャの説明に従って、ロード・バランサがOCI WAFエッジ・サーバー範囲からのトラフィックのみを受け入れることを確認します(CIDR範囲を参照)。
これを実現するには、ネットワーク・セキュリティ・グループ(NSG)でファイアウォール・ルールを適用し、「ネットワーク・セキュリティ・グループを使用したトラフィックの制御」をクリックしてNSGを使用するか、ロード・バランサ・サブネット・セキュリティ・リストを構成します。
-
「バックエンドの選択」セクションをスキップします。ロード・バランサの作成後、バックエンド・サーバーを追加して「次へ」をクリックするためです。
-
「リスナーの構成」で、次の情報を入力して「次へ」をクリックします。
受信リクエスト・ロード・バランサ・リスナー(基本的に、外部からのすべての接続を受信するロード・バランサのメイン・エントリ・ポイント)を構成します。デフォルトのポート
443
でセキュアなHTTP用にHTTPSを設定する必要があります。このため、必然的にX.509証明書(SSL証明書)を使用する必要があります。HTTPSを使用して、すべての接続が安全に暗号化されるようにします。パブリック・ロード・バランサがインターネット上のエンド・ユーザーのプライマリ・エントリ・ポイントとして機能する典型的なシナリオでは、Digicert、Global Sign、Let's Encryptなど、信頼できるパブリック認証局(CA)によって署名されたSSL証明書をアップロードすることが不可欠です。さらに、インターネットに公開されているこれらの証明書は、あなたの接続がプライベートではないなどの不要なメッセージに遭遇しないように、有効期限付近で更新する必要があります。ERR_CERT_DATE_INVALID.
このチュートリアルでは、インターネット上のWebサービスにアクセスするユーザーのメイン・エントリ・ポイントとしてOCI WAFエッジを使用しています。オラクルのサービスの発信元であるパブリック・ロード・バランサは、OCI WAFエッジの後ろに配置されます。つまり、OCI WAFエッジ・ノードからのトラフィックのみを受信します。この設定により、SSL証明書をパブリックCAからロード・バランサにアップロードする必要はありません。代わりに、有効期限がないか、非常に長い証明書を使用して自己署名付きSSL証明書を簡単にインストールできるため、管理が容易になります。
OCI WAFエッジは、共通名やサブジェクト代替名など、ロード・バランサから受信したSSL証明書の詳細を検査したり、証明書署名を検査したりしないことに注意してください。それでも、OCI WAFエッジとOCI Load Balancerのターゲット・オリジンとの間にセキュアで暗号化された接続が確立されます。
opensslや XCAなどの外部ツールを使用して、自己署名付き証明書を作成しました。または、OCI Load Balancerと統合されているOracle証明書管理対象サービスを使用することもできます。このチュートリアルでは、XCAを使用して自己署名証明書を作成し、秘密キーとともにOCI Load Balancerに手動でアップロードしました。アップロードされた自己署名証明書は、一般的な名前またはSANを使用し、50年の有効期限があります。OCI WAFでは、その情報は検査されません。
-
ロギングの管理はオプションの構成であり、このチュートリアルのスコープにはありません。「発行」をクリックします。
-
しばらくすると、ロード・バランサが作成されます。次に、バックエンド・サーバーを構成する必要があります。SSLはバックエンド・サーバーに使用されるため、まず、バックエンド・サーバーへのSSL接続の設定に使用されるロード・バランサの証明書セクションに少なくとも1つの証明書を作成する必要があります。前述のように、この証明書バンドルはサード・パーティ・ツールを使用して手動で作成することも、OCI証明書管理サービスを使用することもできます。このチュートリアルでは、XCAツールを使用します。
「ネットワーキング」、「ロード・バランサ」、「ロード・バランサ」、「ロード・バランサの詳細」および「証明書」に移動します。
-
「証明書」セクションで、「証明書リソース」に「Load Balancer manage certificate」を選択し、「証明書の追加」をクリックします。
バックエンド・サーバーのSSL証明書の署名に使用したパブリックCAルートまたは中間CA証明書を追加します。リマインダとして、私たちは共通の名前とSANで、有効期限なしで自己署名証明書を利用しています。ロード・バランサはバックエンド・サーバー証明書の検証にルートCAのみを使用するため、ここではサーバー証明書をインストールする必要はありません。
-
バックエンド・サーバーを作成するには、BackEndセットを選択し、「バックエンド・セットの作成」をクリックします。
-
「バックエンド・セットの作成」に、次の情報を入力します。
- バックエンド・セット名:バックエンド・セット名を入力します。
- 「SSL」を選択します。
- 「Load Balancer manage certificate」を選択します。
- ステップ7で作成した証明書を追加します。ロード・バランサが受信したSSL証明書署名をチェックすることを確認する場合は、「ピア証明書の検証」をクリックします。
- ヘルス・チェック:
- プロトコル:
HTTP
を選択します。 - ポート:
443
ポートを選択します。 - 間隔およびタイムアウト:デフォルトの間隔およびタイムアウト(10000および3000ミリ秒)を保持します。
- ヘルス・チェックからのヘルス・レスポンスの場合は、「200」を選択します。
- URLパス(URI): Webサーバーに存在するURLからリソースを追加します。たとえば、
index.html
、mainpage.html
などです。
- プロトコル:
タスク6: OCI Network Firewallの構成
OCI Load Balancerの設定後、オラクルの目標は、南北のトラフィックを保護するようにOCI Network Firewallを構成することです。ファイアウォールは、新しく構成されたロード・バランサとインターネット・ゲートウェイの間に配置されます。OCI Network Firewallの設定を続行するには、「復号化ルールを使用したSSL転送プロキシおよびインバウンド検査にOCI Network Firewallを使用」を参照し、次を完了します。
-
SSLインバウンド検査モードのOCI Network Firewallポリシーをデプロイします。詳細は、SSL復号化のためのOCI Network Firewallの使用を参照してください。
-
復号化プロファイルのマップされたシークレットを作成する場合は、以前にOCI Load Balancerリスナーにアップロードされたものと同じ自己署名証明書(公開キーと秘密キーの両方を含む)を使用します。JSONファイルの作成については、このチュートリアルに従うことをお薦めします。OCI Network FirewallのカスタムPEM証明書からの完全互換JSONテンプレートの作成を参照してください。
-
以前に作成したOCI Network Firewallポリシーをアタッチしながら、OCI Network FirewallをNGFW Pubサブネット(192.168.5.0/24)にデプロイします。このアクションは、前述のサブネットからOCIネットワーク・ファイアウォールにプライベートIPアドレスを割り当てます。これは、後でルーティング構成に必要になります。
タスク7: OCIルーティングの構成
OCI Network Firewallが導入されました。北南トラフィックが両方向にトラバースしていることを確認する必要があります。最初に行うことは、OCI Network Firewallが存在するVCNに関連付けられたインターネット・ゲートウェイの専用ルーティング表を作成することです。
-
ルーティング表をVCNに作成し、「ターゲット・タイプ」のエントリを
private IP
、「宛先」をCIDRブロックとして追加します。このチュートリアルでは、タスク6にデプロイされたOCI Network Firewallに割り当てられたプライベートIPとして、ロード・バランサ・サブネットCIDRブロック192.168.6.0/24
および「ターゲット」を紹介します。 -
ルーティング表をインターネット・ゲートウェイに関連付け、3つのドットをクリックして「ルート表の関連付け」をクリックし、ルーティング表を選択します。
-
このルーティング表がインターネット・ゲートウェイに関連付けられると、パブリック・ロード・バランサ
192.168.6.0/24
に向けられたすべてのトラフィックは、最初はOCI Network Firewallが存在するプライベートIP192.168.5.78
にリダイレクトされます。OCI Network FirewallのプライベートIP
192.168.5.78
から、OCI Network Firewallからのパケット検査後、パケットはOCI Load Balancerへの移行を継続します。そこから、ロード・バランサのルーティング構成によって決定される、選択したバックエンド・サーバー間の最後の宛先に転送されます。現在は、インターネット・ユーザーに返されるパケットが、レスポンスの検査のためにOCI Network Firewallを横断して、同じパスを逆順に従うことが不可欠です。次のイメージに示すように、バックエンド・サーバーからOCI Network FirewallプライベートIP
192.168.5.78
を介してレスポンスをルーティングするには、ロード・バランサのパブリック・サブネットのルーティング表を作成する必要があります。
OCI Network Firewallサブネットから、インターネット・ゲートウェイに0.0.0.0/0
ルートを追加して、レスポンスがインターネット・ゲートウェイにルーティングされることを確認する必要があります。
インターネット・ゲートウェイに到達すると、パッケージは、インターネット・ユーザーに転送される前に、レスポンスの最終検査のために、ソースOCI WAFエッジにルーティングされます。
関連リンク
承認
- 著者 - LuisCatalá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 Edge with Let's Encrypt Certificates
F94468-01
March 2024
Copyright © 2024, Oracle and/or its affiliates.