ノート:
- このチュートリアルでは、Oracle Cloudへのアクセスが必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントに例の値を使用します。演習を完了するときは、これらの値をクラウド環境に固有の値に置き換えます。
OCI Network FirewallのカスタムPEM証明書からの完全互換JSONテンプレートの作成
イントロダクション
堅牢なネットワーク・セキュリティ・ソリューションであるOracle Cloud Infrastructure Network Firewall (OCI Network Firewall)は、復号化プロファイルを含む高度なセキュリティ機能を提供します。これらのプロファイルを使用すると、ファイアウォールでSSL/TLSトラフィックを復号化および検査してセキュリティーを強化できます。
このチュートリアルでは、Privacy Enhanced Mail (PEM)証明書に基づいて完全に互換性のあるJSONテンプレートを生成するプロセスを簡略化し、不要なマップされたシークレット解析エラー(マップされたシークレット「マップされたシークレット」の失敗)を取得せずに、OCI Network Firewall内で復号化プロファイルを効果的に構成できるようにします。秘密鍵を取得できません)。
復号化ルールを効果的に使用するには、復号化プロファイルで使用するためにマップされたシークレットを確立することが不可欠です。これらのマップされたシークレットは、最初にOracle Cloud Infrastructure Vault内で作成され、その後、SSLインバウンド検査またはSSL転送プロキシ・モードにリンクされます。
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)およびサブネットに作成できます
ネットワーク・ファイアウォール・サービスは、受信およびサブネット間/VCN間通信の両方に対処して、クラウド環境に入るデータのフローに関する深いインサイトを提供します。本質的には、南北ネットワーク・トラフィックと東西ネットワーク・トラフィックを可視化します。
このチュートリアルに従うことで、CA証明書(中間証明書を含む)と復号化に必要な公開証明書とプライベート証明書のペアに基づいてJSONテンプレートを作成できます。
目的
-
Perlをダウンロードしてインストールします。
-
OpenSSLをダウンロードしてインストールします。
-
SSL復号化プロセスを有効にするために、リクエストされたPEM証明書を含むJSONテンプレートの作成を簡略化する単純なスクリプト・コードを提供します。
-
スクリプトをテストします。
前提条件
-
アクティブなOCIテナント。OCIでネットワーク・リソースを作成および管理するために必要な権限が必要です。
-
Linuxでのソフトウェアのインストールおよび構成方法を含む、Linux OS、OCI、Oracle Linuxの基本的な理解。
-
OCIコンソールまたはOCI CLIを使用してネットワーク・リソースを作成および管理する方法についてよく理解しています。
-
OCI Network Firewallの使用方法および構成方法についてよく理解しています。
タスク1: 証明書認証を設定するためのJSONテンプレートの構成
独自の証明書から整形式のJSONファイルを作成するために、Linuxスクリプトを作成しました。詳細は、「証明書認証の設定」を参照してください。
これは、JSONファイルの外観です。
{
"caCertOrderedList" : [
"ROOT_CERT01_PEM_CONTENT",
"INTERMEDIATE_CERT01_PEM_CONTENT",
"INTERMEDIATE_CERT02_PEM_CONTENT",
],
"certKeyPair": {
"cert" : "LEAF_CERT_01_PEM_CONTENT",
"key": "PRIVATE_KEY_01_PEM_CONTENT"
}
}
次のように、復号化モードに応じて、必須証明書からJSONファイルを作成する方法を学習します。
-
caCertOrderedList、認証局証明書(CA):
-
SSLインバウンド検査: SSL/TLSトラフィックをクライアントからターゲット・ネットワーク・サーバー(証明書を持ち、ネットワーク・ファイアウォールにインポートできるサーバー)に保護し、疑わしいセッションをブロックするモードです。リーフ証明書とも呼ばれるサーバー証明書が中間CA証明書によって署名されている場合は、チェーン証明書全体["CA root"、"intermediate CA 1"、"intermediate CA 2" ...]をアップロードすることをお薦めします。
ノート:
caCertOrderedListでは、クライアント側のサーバー証明書認証の問題を回避するためにCAチェーン証明書全体をアップロードします。一部のクライアントでは、信頼できるストアに完全なCAチェーンがインストールされていない可能性があるためです。 -
SSL転送プロキシ: 外部サイトへのSSL/TLSトラフィックを保護するモードであり、SSL転送プロキシとして機能します。このモードは、内部ユーザーからWebへのトラフィックを復号化および検査する場合に使用します。明らかな理由から、外部サイト証明書の秘密キーを所有していないため、ファイアウォールは、SSLインバウンド検査と同様に、TLSネゴシエーション(RSA)中にセッション・マスター・キーを復号化および取得するために使用できません。このモードでは、ファイアウォールは中間者として機能し、外部Webサーバーから受信した証明書のコピーをaにすると、所有しているCA (通常はエンタープライズCA)で署名します。偽装証明書と呼ばれるこのコピーされた証明書。「ポイント番号5」を選択します。
ノート:
caCertOrderedListで、EnterpriseチェーンCA証明書全体をアップロードします["Enterprise CA root"、 "Enterprise CA intermediate 1"、 "Enterprise CA intermediate 2" ...]。
-
-
certKeyPair、サーバー証明書とその秘密キー:
-
SSLインバウンド検査: インバウンド検査モードでは、ネットワーク・ファイアウォール(アプリケーション・ロード・バランサ)を使用して外部クライアントから保護するターゲット・サーバーです。前述のように、これらのターゲット・サーバーは、証明書全体(秘密キー+証明書)を持ち、制御下にあるサーバーです。ここでは、「cert」フィールドにサーバーの公開証明書を、「key」フィールドに秘密鍵をインストールします。
-
SSL転送プロキシ: SSL転送プロキシ・モードでは、外部サイト/Webに送信される内部クライアントのSSL/TLSトラフィックを保護します。前述のように、外部サイトの証明書(プライベート証明書+パブリック証明書)を所有していないため、ファイアウォールは受信した証明書を中間者プロキシとして機能させる必要があります。そのためには、カスタムCAまたはエンタープライズCA (ルートまたは非ルート)を秘密キーとともにファイアウォールにインストールする必要があるため、ファイアウォールはCA秘密キーを使用して受信したサーバー証明書(偽装)のコピーに署名できます。certKeyPairで、エンタープライズCA証明書をcertフィールドにインストールし、秘密キーをkeyフィールドにインストールします。
ノート: 私たちが確認した問題は、多くの顧客がテキスト・エディタを使用し、提案されたJSON形式で証明書をコピーして貼り付けることで、JSONが正しくなくなることです。この問題は、Windowsとlinuxの改行"\r\n"の違いに関連しています。
ネットワーク・ファイアウォールの作成時にOCIコンソールから発生する可能性があるエラーは、「マップされたシークレット'マップされたシークレット'に失敗しました」です。シークレット"をフェッチできません。
-
-
証明書を含む前述のJSONファイルを作成します。
-
次のコードをコピーします。
cat > certificates.json << EOF { "caCertOrderedList" : [ "$(perl -pe 's/\n/\\n/' ca.cert.pem)" $(for ((i=1; i<=10; i++)); do intermediate_file="ca.intermediate${i}.pem" if [ -f "$intermediate_file" ]; then echo -n ", \"$(perl -pe 's/\n/\\n/' "$intermediate_file")\"" fi done) ], "certKeyPair": { "cert" : "$(perl -pe 's/\n/\\n/' cert.pem)", "key": "$(perl -pe 's/\n/\\n/' key.pem)" } } EOF -
拡張子が
shのLinux VMファイルに貼り付けます。vi create_json.sh -
ESCキーを押し、コロン
:と入力してwqと入力します。Enterキーを押してファイルを書き、エディタを終了します。 -
ファイルを作成したら、スクリプトを実行可能にする必要があります。
chmod +x create_json.sh -
スクリプトの準備ができたので、最終的なJSONファイルを作成するために必要な証明書を用意する必要があります。スクリプトには、次の
PEMファイル名が必要です。-
CA.cert.pem: これは、内部Webサーバーの証明書にSSLインバウンド・モードで署名するために使用されたROOT CA証明書です。また、転送プロキシ・モードで使用されるルートEnterprise CAも可能です。 -
CA.intermediateX.pem: 使用されているCAに中間/連鎖証明書がある場合は、CA.intermediate1.pem、CA.intermediate2.pemなどとして追加します(最大10)。これにより、クライアントがTrusted CAストアにインストールされていないことで、認証の問題が発生しないようになります。 -
cert.pem: SSLインバウンド・モードで保護するサーバーの証明書(パブリック)。または、転送プロキシ・モードのEnterprise CA証明書にすることもできます。 -
key.pem: SSLインバウンド・モードで保護するサーバーの証明書秘密キーです。または、転送プロキシ・モードのエンタープライズCA証明書の秘密キーにすることもできます。
-
-
スクリプトを実行します。
./create_json.shこれにより、
certificates.jsonという名前のファイルが生成され、OCIネットワーク・ファイアウォール・ポリシーで使用されるボールト/シークレットに簡単にコピー・アンド・ペーストできます。
関連リンク
確認
- 著者 - 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を参照してください。
Create Fully Compatible JSON Templates from Custom PEM Certificates for OCI Network Firewall
F89630-01
November 2023
Copyright © 2023, Oracle and/or its affiliates.