[Oracle Cloud] Network Firewall を構成してみてみた

[Oracle Cloud Infrastructure (OCI) Network Firewall](https://www.oracle.com/jp/cloud/networking/network-firewall/) は、[Palo Alto Networks®](https://www.paloaltonetworks.jp/)を搭載した次世代の管理対象ネットワーク・ファイアウォールと侵入検出および防止サービスです。ネットワーク・ファイアウォール・サービスでは、クラウド環境に入ってくるトラフィック、およびサブネット間のトラフィックを把握できます。
![OverView画像.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/de748735-324c-02f1-1fe1-bd566060bf1f.jpeg)
Network Firewallには、次のセキュリティ機能が用意されています。
- **ステートフル・ネットワーク・フィルタリング**:
ソースIP、宛先IP、ポートおよびプロトコルに基づいてネットワーク・トラフィックを許可または拒否するステートフル・ネットワーク・フィルタリング・ルールを作成します。
- **カスタムURLおよびFQDNフィルタリング**:
イングレスおよびエグレス・トラフィックを、ワイルドカードおよびカスタムURLを含む指定された完全修飾ドメイン名(FQDN)のリストに制限します。
- **Intrusion Detection and Prevention (IDPS:IDS/IPS)**:
悪意のあるアクティビティーがないかネットワークをモニターします。アクティビティの情報を記録、レポートまたはブロックします。
- **SSL検証**:
TLSで暗号化されたトラフィックを復号化し、ESNIサポートによりセキュリティの脆弱性を検証します。Encrypted Server Name Indication (ESNI)は、TLSハンドシェイク内のServer Name Indication (SNI)を暗号化するTLSv1.3拡張です。
- **VCN内サブネット・トラフィック検証**:
Network Firewallを介して2つのVCNサブネット間でトラフィックをルーティングします。
- **VCN間トラフィック検査**:
Network Firewallを介して2つのVCN間のトラフィックをルーティングします。



ということで、Network Firewall環境を駆逐して侵入防止:IPS(Intrusion Prevention System)もしくは侵入防止:IDS(Intrusion Detection System)の設定をしてみてみます。


# ■ 構成イメージ
今回、Network Firewallの作成を行います。
オンプレミス環境と OCI を FastConnect接続して、オンプレミスと OCIのインスタンス間で通信されるパケットすべてと VCN内インスタンスから Service Gateway, NAT Gateway接続もすべて Network Firewallを経由するように図面のようにルート・ルールを設定しておきます。
![構成図.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/80a3ac97-c580-b4a3-8ccb-f7c210e66bac.jpeg)

:::note info
DRGに付与する ルート・ルールは、VCNアタッチメントの設定にある VCNルート・タイプ種類によって、ルート・ルールの宛先(Distination CIDR)の設定を次のようにする必要があります。
　・ Subnet CIDR Block の場合: VCNのサブネットCIDR単位で設定
　・ VCN CIDR Block の場合: VCNのCIDR単位で設定
 構成イメージでは、サブネットCIDR単位で設定しています。
:::


# ■ Network Firewall Policyの作成
## ● Network Firewall Policyの作成
**1) OCI コンソール画面**
[アイデンティティとセキュリティ] > [ファイアウォール] > [ネットワーク・ファイアウォール・ポリシー]をクリック
![00_OCIコンソール01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/deac5e43-cd59-2de5-0986-75bf4b9af549.jpeg)





**2) ネットワーク・ファイアウォール・ポリシー画面**
[ネットワーク・ファイアウォール・ポリシーの作成]をクリック
![01_ネットワーク・ファイアウォール・ポリシー01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/b7b4cc00-e0da-2e03-033d-6438804fcfaf.jpeg)



**3) ネットワーク・ファイアウォール・ポリシーの作成画面**
次の項目を入力し、[ネットワーク・ファイアウォール・ポリシーの作成]をクリック

	・名前: ポリシーの説明的な名前
	・コンパートメント: ポリシーを作成するコンパートメントを選択

![01_ネットワーク・ファイアウォール・ポリシー02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/9b8d1a51-9d3c-e65e-f082-b65700985bc3.jpeg)




## ● セキュリティ・ルールの作成
作成したサービス・リストをセキュリティ・ルールに適用

**1) セキュリティ・ルール画面**
左のPolicy resourcesから[セキュリティ・ルール]をクリックし、[セキュリティ・ルールの作成]をクリック
![03_SecurityRules作成01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/40d1c97e-f6b6-2688-05e4-8f7e4c5ee5a3.jpeg)





**2) セキュリティ・ルールの作成画面**
ここでは、全ての通信(Any)を侵入防止(Intrusion Prevention)する設定にします。

次の項目を入力し、[セキュリティ・ルールの作成]をクリック

	・名前: セキュリティ・ルールの名前を入力
	・ルール・アクション: [Intrusion Prevention (侵入防止)]を選択
	・ルールの順序: リストが複数ある場合は、[リストの最後のルール]を追加

![03_SecurityRules作成05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/d237431a-bb67-81b4-d832-b0a4b983d878.png)

**3) セキュリティ・ルールの作成完了**
セキュリティ・ルールが作成されたことを確認
![03_SecurityRules作成06.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/1ff16658-ea2a-96cd-c35e-439dc26d490c.jpeg)




# ■ Network Firewall インスタンスの作成
## ● 必要なIAMサービス・ポリシー
管理者向け: グループにネットワーク・ファイアウォール・リソースへのアクセス権を付与するには、次の IAMポリシーを使用します

    Allow group <GroupName> to manage network-firewall-family in compartment <CompartmentName>

![29_IAM設定02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/2f1c9913-e7a0-2aea-7a99-c41de95828e2.jpeg)




## ● Network Firewall の作成 
**1) ネットワーク・ファイアウォール画面
![30_Network Firewallインスタンス作成01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/8a6826e4-14d7-5d0d-f808-6181eac8e1b8.jpeg)



**1) Network Firewall の作成**
OCIコンソール画面左上のメニューボタン → アイデンティティとセキュリティ → ファイアウォール → ネットワーク・ファイアウォール →「ネットワーク・ファイアウォールの作成」ボタンをクリック

	・名前: ファイアウォールの名前を入力
	・ネットワーク・ファイアウォール・ポリシー: 事前に作成したポリシーを選択
	・仮想クラウド・ネットワーク: 配置するVCNを選択
	・サブネット: 配置するサブネットを選択
	・ネットワーク・セキュリティ・グループ(NSG): (オプション) 必要に応じてNSGを設定
	・ネットワーク・ファイアウォール・サブネットIPv4アドレス: IPアドレスを設定
	・リージョン内の1つの可用性ドメインにデプロイします: チェックしない。ネットワーク・ファイアウォールはリージョン内のすべての可用性ドメインにデプロイされます。チェックすると特定のAD内のみにデプロイされます。

![30_Network Firewallインスタンス作成02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/d4ec146c-3d3a-f9ec-c86d-b3c7aa02f098.jpeg)

**2) Network Firewall の作成中**
作成には3時間程度かかります。
![30_Network Firewallインスタンス作成03.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/ef75f3dd-2b57-3a94-9e62-845c9151c661.jpeg)


**2) Network Firewall の作成完了**
![30_Network Firewallインスタンス作成05.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/afd00377-6f1d-6ad3-5d9d-ac5a14bde414.jpeg)

## ● Network Firewall のログ設定
ファイアウォールのロギングは、関連付けられたポリシーのルールでサポートされ、Oracle Cloud Infrastructure Loggingをサブスクライブしている場合、有効にすることができます。「ログ」には、指定した時間枠におけるログ・アクティビティおよび記録された各イベントの詳細が表示されます。ログは、トラフィックがルールをトリガーしたタイミングを表示し、セキュリティの向上に役立ちます。一般情報は、ロギング・サービスのドキュメントを参照してください。
ネットワーク・ファイアウォール・サービスは、次の2つのログ・タイプを発行します。
```
・脅威ログ:受信したファイアウォールの脅威の詳細を提供します。
・トラフィック・ログ:ファイアウォールを通過するトラフィックの詳細を提供します。
```
[ネットワーク・ファイアーウォール] > [ログ]画面で必要なログを有効化します。
![30_Network Firewallインスタンス作成06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/11f15e6d-6cc3-a2c7-7875-dcb4c4683d47.png)
データプレーンから5分間隔でログが顧客に発行されます。データプレーンは、受信時にログも登録します。
ログの内容および例の詳細は、[ネットワーク・ファイアウォール・ログの詳細](https://docs.oracle.com/ja-jp/iaas/Content/Logging/Reference/details_for_networkfirewall.htm)を参照してください。

https://docs.oracle.com/ja-jp/iaas/Content/Logging/Reference/details_for_networkfirewall.htm

# ■ Network Firewall スループット設定
デフォルトでは、Network Firewallサービスは4Gbpsのスループット・レートを提供します。ただし、25Gbpsへの増加をリクエストできます。増加をリクエストするには、[My Oracle Suport](https://support.oracle.com/portal/?lang=ja) へ リクエストします。


# ■ ルート表作成
## ① DRG 用ルート表設定
:::note info
DRGに付与する Rute Rule は、VCNアタッチメントの設定にある VCNルート・タイプ種類によって、ルート・ルールの宛先(Distination CIDR)の設定を次のようにする必要があります。
　・ Subnet CIDR Blocks の場合: VCN内のサブネットCIDR単位で設定
　・ VCN CIDR Blocks の場合: VCN CIDR単位で設定
:::

### ・ DRG の VCN Route Type設定確認
**1) DRG画面**
DRG 画面の Resources の [VCN attachments]画面から、対象のVCNアタッチメントをクリック
![Attachment-VCN01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/1fcd7a1b-d696-7838-7c77-cac1bf94a5c5.jpeg)


**2) VCN attachments 画面**
[Edit]をクリックし、[VCN Route Type]タブをクリック
デフォルトは Subnet CIDR blocks です。
この設定はDRGが受信する OCI VCN の CIDR単位になり、DRGへ付与するVCNへのルート・ルールはこの単位で記入する必要があります。
またこの単位でOn-PremisesへFastConect通じてBGPでルート送信(アドバタイズ)します。
![Attachment-VCN03.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/9d2fc28f-9080-7457-4bd7-3be2c35d1d20.jpeg)

### ・ DRG へ付与するルート表設定
**1) DRG用ルート表作成**
![02_RT-DRG01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/cf9e1101-e367-49ff-3054-7c4182e6de7d.jpeg)


**2) DRG用ルート表**
対象のVCN attachments 画面から、[Edit]をクリックし、[VCN route table]タブをクリックし、作成したルート表を設定し、[Save changes]をクリック
![03_VCN Route Table設定01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109087/35292952-eb17-5169-0edc-c7f91874a779.jpeg)


# ■ 参考
**● Overview**
 ・ [Network Firewall](https://www.oracle.com/jp/cloud/networking/network-firewall/)
**● OCI Documents**
 ・ [ネットワーク・ファイアウォール](https://docs.oracle.com/ja-jp/iaas/Content/network-firewall/home.htm)
 ・ [ネットワーク・ファイアウォールの概要](https://docs.oracle.com/ja-jp/iaas/Content/network-firewall/overview.htm)
 ・ [ネットワーク・ファイアウォール必要なIAMサービス・ポリシー](https://docs.oracle.com/ja-jp/iaas/Content/network-firewall/overview.htm#iam)
 ・ [ネットワーク・ファイアウォール・ログの詳細](https://docs.oracle.com/ja-jp/iaas/Content/Logging/Reference/details_for_networkfirewall.htm)
 ・ [マップされたシークレットの作成](https://docs.public.oneportal.content.oci.oraclecloud.com/ja-jp/iaas/Content/network-firewall/mapped-secret-create.htm)
  ・ [ネットワーク・ファイアウォールの既知の問題](https://docs.public.oneportal.content.oci.oraclecloud.com/ja-jp/iaas/Content/network-firewall/knownissues.htm)

**● Oracleアーキテクチャ・センター** 
 ・ [Oracle Cloud Infrastructure Network Firewall Serviceを使用してワークロードを保護](https://docs.oracle.com/ja/solutions/oci-network-firewall/index.html#GUID-875E911C-8D7D-4205-952B-5E8FAAD6C6D3)

**● Oracle Help Center Learn** 
 [Oracle Cloud Infrastructure Network FirewallによるWebサイトとアプリケーションの保護](https://docs.oracle.com/ja/learn/oci-network-firewall-lb/index.html#introduction)

**●  oracle4engineer (Speaker Deck)** 
 ・ [OCI Network Firewall 概要](https://speakerdeck.com/oracle4engineer/oci-network-firewallgai-yao)

**● OCIチュートリアル** 
 ・ [Network Firewallチュートリアル](https://oracle-japan.github.io/ocitutorials/id-security/#network-firewall%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB)

**● Oracle LiveLabs** 
 ・ [Network Fierwall Workshops and Sprints](https://apexapps.oracle.com/pls/apex/f?p=133:100:110630064480276::::SEARCH:Network%20firewall)