AWS/Azure

AWS Network Firewallの設定方法

この記事は投稿日から3年以上経過しています。

当記事では、AWS Network Firewallの設定方法について記載します。

若手エンジニア志望者を募集!支度金あり

AWS Network Firewallとは

AWS Network Firewallとは、VPC内に配置するファイアウォールであり、インターネットやVPC間との通信を検査及び制御することができます。許可する通信、拒否する通信等をルール別で定義するため、Fortinet社のFortiGateやPaloAlto Networks社のPaloAltoのように柔軟に通信を制御することができます。

ルールは2種類に分かれており、それぞれの特徴は以下の通りです。

ステートフルルール

  • 送信元IP、送信元ポート、送信先IP、送信先ポート、プロトコルの5つを指定し、条件に一致するトラフィックに対するアクションを決めることができます。なお、ルールの順序は自由に決めることもできます。
  • ドメイン名を指定し、そのドメインへの通信のアクションを決めることができます。
  • Suricateルール構文を使用して、侵入防止システム(IPS)ルールを作成することができます。
  • AWS側が作成した、ドメイン及びIPルール、脅威署名ルールを使用することができます。

ステートレスルール

  • 優先度、プロトコル、送信元IP、送信元ポート、送信先IP、送信先ポート、TCPフラグ(オプション)を指定し、条件に一致するトラフィックに対するアクションを決めることができます。

設定方法

今回は、以下のネットワーク構成でAWS Network Firewallを構築し、EC2端末からインターネットへの通信を制御できます。

ネットワーク構成図

設定手順

※VPC、各サブネット[NAT Gateway, Firewall, Private]、インターネットゲートウェイ、NATゲートウェイ、EC2端末の設定方法については割愛します。

ファイアウォールポリシーの作成

  1. コンソールより「ネットワークファイアウォール」タブの[ファイアウォールポリシー]を選択し、[ファイアウォールポリシーを作成を押下します。先にファイアウォールポリシーを作成する理由は、後述する[ルールの順序]にて[厳格]を選べるようにするためです。[厳格]を選択することで、Fortinet社のFortiGateやPaloAlto Networks社のPaloAltoのように、暗黙のdeny(遮断)ルールを定義することができます。
  2. ファイアウォールポリシーの名前、ストリーム例外ポリシーを設定し、[Next]を押下します。
  3. ステートレスデフォルトアクションを設定します。
  4. ステートフルルール評価の順序とデフォルトのアクションを設定します。
    [ルールの順序]にて[厳格]を選択し、[デフォルトのアクション]にて[すべてをドロップ]を選択します。これで暗黙のdeny(遮断)ルールを作成できます。
    なお、デフォルトのアクションを[すべてアラート]とした場合、アラートログが出力されつつ通信は許可されます。
  5. ステートレス/ステートフルルールグループは後ほど追加するため、ここでは何も追加せず[Next]を押下します。
  6. 暗号化オプションの選択はせず、[Next]を押下します。
  7. タグを追加する場合はタグを追加して、[Next]を押下します。
  8. 確認画面が表示されるため、内容に問題なければ[ファイアウォールポリシーを作成]を押下します。

ファイアウォールの作成

  1. コンソールの[ネットワークファイアウォール]タブの[ファイアウォール]を選択し、[ファイアウォールを作成]を押下します。
  2. 名前、VPC、サブネット等を設定します。
  3. 上記で作成したファイアウォールポリシーを関連付けます。
  4. デフォルトにします。
  5. タグをつける場合は、タグを追加します。
  6. [ファイアウォールを作成]を押下します。

ルールグループの作成

  1. コンソールの[ネットワークファイアウォール]タブの[Network Firewallのルールグループ]を選択し、[ネットワークファイアウォールのルールグループの作成]を押下します。
  2. [ルールグループタイプ]を選択します。
    今回は、[ステートフルルールグループ]を選択します。
  3. 名前、キャパシティー、ステートフルルールグループのオプション等を設定します。
    今回は、ステートフルルールグループのオプションでは[5-tuple]を選択します。
  4. ルールの順序を設定します。
    今回は、自由にルールの順序を指定するため[厳格]を選択します。
    なお、デフォルトを選択した場合は、順序に関係なくパスルール→ドロップルール→アラートルールの順で通信が精査されます。
  5. ルール変数、IPセット参照は設定しません。
  6. ルールを追加します。
    各項目を設定したら、[ルールの追加]を押下します。
  7. ルールが追加されると、[ルール]にてルールの一覧が表示されます。
    また、この画面からルールの順序設定や削除を行うことができます。
  8. タグを追加する場合は、タグを追加します。
  9. [ステートフルルールグループを作成]を押下します。
  10. コンソールの[ネットワークファイアウォール]タブの[Network Firewallのルールグループ]を選択し、[ファイアウォールポリシーにルールグループを追加]を押下します。
  11. 作成したルールグループを追加するファイアウォールポリシーを選択し、「Next」を押下します。
  12. [ルールグループ]にて、追加するルールグループを選択します。
    ここでは、先ほど作成したルールグループを選択します。
  13. 「ドメインおよび IP ルールグループ」、「脅威署名ルールグループ」は設定せずに「Next」を押下します。

  14. タグを追加する場合は、タグを追加します。
  15. 確認画面が表示されるため、内容に問題なければ[ファイアウォールポリシーにルールグループを追加]を押下します。

 

ファイアウォールポリシー及びルールグループが正しく連携されているかの確認

  1. コンソールの[ネットワークファイアウォール]タブの[ファイアウォール]を選択し、作成したファイアウォールの名前を押下します。
  2. 「ファイアウォールの詳細」タブを選択します。
  3. 下にスクロールし、[設定の同期状態]にて作成したファイアウォールポリシーとルールグループがファイアウォールに紐づいていることを確認します。

ルーティングテーブルの設定

  • Network Firewallを経由して通信が流れるようにするため、各サブネットにおけるルーティングテーブルの設定をします。

各サブネット別のルーティングテーブルは以下の通りです。

NAT Gateway Subnet

送信先 ターゲット
0.0.0.0/0 インターネットゲートウェイ
192.168.0.0/24 local
192.168.0.64/27 Network Firewall

Firewall Subnet

送信先 ターゲット
0.0.0.0/0 NATゲートウェイ
192.168.0.0/24 local

Private Subnet

送信先 ターゲット
0.0.0.0/0 AWS Network Firewall
192.168.0.0/24 local

以上で、AWS Network Firewallの設定は完了となります。

運用における注意点

Fortinet社のFortiGateやPaloAlto Networks社のPaloAltoでは、通信を許可しつつ、アラートログを出す設定を行うことが可能です。そのため、AWS Network Firewallでも同様に行えるよう、ルールグループのルールにて以下のようにアラートルールを定義した場合、想定通りの結果とならず、通信が許可されない場合があります。

以下のルールは、www.secuavail.com(18.180.167.106)宛てへのHTTPS通信を許可しつつ、アラートログとして出力されることを想定していますが、通信は許可されません。

 

通信が許可されない理由は、ファイアウォールポリシーのデフォルトのアクションが[すべてをドロップ]と設定しているためです。

AWS Network Firewallのルールグループでルール順序を[厳密]と設定している場合、アラートルールとはアラートを出すためだけにあるルールであり、アラートルールがあるからといって、通信が許可されるわけではありません。アラートルールに合致してもルールの精査は終わらず、他に合致するルールが無いか、ルールの精査が続きます。つまり、アラートルールより下に許可のルールが無ければ、ファイアウォールポリシーのデフォルトのアクションが適用されることとなり、上記の例では通信がドロップされてしまいます。

そのため、AWS Network Firewallのアラートルールの仕様は、FortiGateやPaloAltoと異なるため、運用する場合は注意が必要です。

若手エンジニア志望者を募集!支度金あり

LogStare Collector 無償版

記載されている会社名、システム名、製品名は一般に各社の登録商標または商標です。

当社製品以外のサードパーティ製品の設定内容につきましては、弊社サポート対象外となります。

FortiGateのSD-WAN設定について前のページ

FortiGate 遮断ポリシーが意図しない挙動になるケース次のページ

ピックアップ記事

  1. Zabbixヒストリデータのレポート生成について
  2. 自社製品をAMIにしてAWSマーケットプレイスへ出品
  3. ログフォワーダー「okurun.jar」について
  4. IoT機器「Raspberry pi」とLogStare Collectorで温…

関連記事

  1. AWS/Azure

    RDS関連メトリクス一覧

    当記事では、CloudWatch監視にて対応しているRDS関連メトリク…

  2. AWS/Azure

    AWSWAF関連メトリクス一覧

    当記事では、CloudWatch監視にて対応しているAWSWAF関連メ…

  3. AWS/Azure

    EC2関連メトリクス一覧

    当記事では、CloudWatch監視にて対応しているEC2関連メトリク…

  4. AWS/Azure

    AWS Network Firewallにおけるログの出力方法

    当記事では、AWS Network Firewallにおけるログの出力…

  5. Windows/Linux

    CloudWatch Logs収集に必要な権限について

    当記事では、CloudWatch Logs収集に必要な権限について記載…

若手エンジニア志望者を募集!
LogStare Collector 無償版
月額200円でM356の監査ログの運用レベルUP LogStare M365
AWSのログ分析・モニタリングに 次世代のマネージド・セキュリティ・プラットフォーム LogStare

  1. NW機器

    PaloAltoのIPsec IKEv1 Phase1におけるトラブルシューティ…
  2. NW機器

    SonicWall UTMにSyslog送信設定を追加する方法について
  3. 実践記事

    DNSキャッシュポイズニングやってみた
  4. NW機器

    Nutanix Prism ElementにおけるSNMP監視/REST API…
  5. ログ分析・監視テクニック

    nProbeであらゆる通信をログに記録し可視化する
PAGE TOP