ファイアーウォールルール(IPアドレス指定)作成

仮想ルータにパケットフィルタを設定するファイアーウォールサービスを利用するために、ファイアーウォールルール(IPアドレス指定)を作成し、確認するまでの手順を解説します。



ヒント: ファイアーウォールサービスの設定は以下の要素から構成され、番号順にフィルタリング情報を構成していきます。ファイアーウォールを仮想ルータに関連付けることで、設定したフィルタリングが行われるようにします。

デフォルトではすべてのトラフィックを遮断するようになっており(ホワイトリスト形式)、許可ルール(AC=allow)によって定義されたもののみFWを通過します。

  1. ファイアーウォールルールの作成
  2. ファイアーウォールポリシーを作成し、ルール群を登録
  3. ポリシーを指定してファイアーウォールを作成し、仮想ルータに関連付け

ファイアーウォールルールを作成するためには、以下を設定します。

  • 送信元または送信先IPアドレス
  • 通信に使用するプロトコル
  • 通信に使用するポート番号
  • 通信の許可/禁止

本項目では、具体的に以下にあげたようなルールの作成手順を解説します。

  • 許可: 送信元IPアドレス:TCP
  • 許可: 送信元IPアドレス:UDP
  • 許可: 送信元IPアドレス:ICMP

ファイアーウォールは細かな設定をすることが出来ますが、本ガイドではよくあるルールの作成方法を扱っています。さらに細かな設定項目と設定方法は機能説明書とAPIリファレンスマニュアルを参照してください。

  1. 以下の設定をします。
    $ FWR_NAME=<FWルール名(任意)>
    $ AC=allow
    $ SOURCE_IP=<許可するIPアドレス「XXX.XXX.XXX.0/24」等>
    $ PROTOCOL=<プロトコル(tcp、udp、icmpで指定)>
    $ AVAILABILITY_ZONE=<作成先アベイラビリティゾーン名>
  2. 次のAPIを実行します。
    $ curl -X POST -Ss $NETWORK/v2.0/fw/firewall_rules -H "X-Auth-Token: $OS_AUTH_TOKEN" \
    -H "Content-Type: application/json" -d '{"firewall_rule": { "name": "'$FWR_NAME'",
     "action": "'$AC'", "source_ip_address":"'$SOURCE_IP'", "protocol": "'$PROTOCOL'",
     "availability_zone": "'$AVAILABILITY_ZONE'" }}' | jq .

    以下のレスポンスが返ってきます。

    {
      "firewall_rule": {
        "protocol": "<プロトコル>",
        "description": "",
        "ip_version": 4,
        "tenant_id": "<プロジェクトID>",
        "enabled": true,
        "source_ip_address": "<設定したIPアドレス>",
        "destination_ip_address": null,
        "firewall_policy_id": null,
        "action": "allow",
        "shared": false,
        "source_port": null,
        "position": null,
        "destination_port": null,
        "id": "<新規ファイアーウォールルールID>",
        "name": "<新規ファイアーウォールルール名>",
        "availability_zone": "<設定したアベイラビリティゾーン>"
      }
    }

    アベイラビリティゾーンは、AZ1がjp-east-1a、AZ2がjp-east-1bで表現されます。

  3. 作成したファイアーウォールルールを確認するため、以下のAPIを実行します。
    $ curl -Ss $NETWORK/v2.0/fw/firewall_rules -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" | \
     jq  '.firewall_rules[] | .name,.id'

    以下のように、設定したファイアーウォールルール名を含んだリストが出力された場合、作成は完了です。

    ...
    
    "<新規ファイアーウォールルール名>"
    "<新規ファイアーウォールルールID>"
    
    ...
    
    

ファイアーウォールルールを作成が完了すると、それらを束ねるファイアーウォールポリシーの作成に進みます。