Soracom

Users

ドキュメント
Home ドキュメント Virtual Private Gateway (VPG) トラフィックフィルタリング (オプション機能)

トラフィックフィルタリングを設定する

トラフィックフィルタリングの利用には別途お申し込みが必要です

トラフィックフィルタリングを利用するには、別途お申し込みが必要です。詳しくは、SORACOM サポート にお問い合わせください。

トラフィックフィルタリングを設定する手順を説明します。トラフィックフィルタリングでできることや、設定前に決めることについては、トラフィックフィルタリングの概要 を参照してください。

操作を始める前に準備が必要です (クリックして確認してください)
  • 対応する VPG を作成する

    VPG Type-F、Type-F2、または Type-G を作成してください。詳しくは、VPG を作成する を参照してください。

  • IoT SIM やバーチャル SIM/Subscriber が利用する VPG を切り替える

    IoT SIM やバーチャル SIM/Subscriber が、作成した VPG を利用するように設定してください。詳しくは、IoT SIM が利用する Virtual Private Gateway (VPG) を切り替える を参照してください。

準備完了

ステップ 1: トラフィックフィルタリングを有効化する

  1. トラフィックフィルタリングを設定する VPG の VPG 設定画面で、[フィルタリング] タブをクリックします。

    VPG 設定画面を表示する操作について詳しくは、VPG の設定を変更する を参照してください。

    [フィルタリング] タブには [アウトバウンドルーティングフィルター][トラフィックフィルタリング] の 2 つのセクションがあります。本ページで説明するトラフィックフィルタリングは [トラフィックフィルタリング] セクションで設定します。アウトバウンドルーティングフィルターについては、アウトバウンドルーティングフィルターを設定する を参照してください。

    「トラフィックフィルタリング」セクション (無効状態) 「トラフィックフィルタリング」セクション (無効状態)

  2. [トラフィックフィルタリング] セクションのスイッチをオンにします。

    確認画面が表示されます。

    有効化の確認画面 有効化の確認画面

    トラフィックフィルタリングを有効化または無効化すると、設定を反映するために VPG を経由するすべての通信が一時的に不通になります。

  3. 表示内容を確認して、[OK] をクリックします。

    [トラフィックフィルタリング] セクションが表示されます。

    有効化後のトラフィックフィルタリングセクション 有効化後のトラフィックフィルタリングセクション

    [IP ルール][ドメインルール] の設定方法については、以下の項目を参照してください。

    初回有効化時にデフォルトの IP ルールが自動登録されます

    [IP ルール] がまだ一度も登録されていない VPG で初めてトラフィックフィルタリングを有効化すると、すべての宛先への通信を許可する IP ルールが自動的に登録されます。ユーザーコンソールには、[宛先 CIDR]0.0.0.0/0[プロトコル]ALL (255)[ポート範囲] が「任意」、[アクション] が「許可」のルールとして表示されます。すべての通信を拒否する設定 (最小権限の原則) で運用する場合は、このルールを編集または削除してから利用してください。

SORACOM API の場合

SORACOM API を利用しても、トラフィックフィルタリングを有効化できます。

$ curl -v -X POST https://api.soracom.io/v1/virtual_private_gateways/{vpg_id}/traffic_filtering/enable \
-H "X-Soracom-API-Key: $X_SORACOM_API_KEY" \
-H "X-Soracom-Token: $X_SORACOM_TOKEN"

HTTP 403 Forbidden が返された場合は、お申し込みが完了していません。詳しくは、SORACOM サポート にお問い合わせください。

ステップ 2: フィルタリングルールを設定する

ステップ 1 でトラフィックフィルタリングを有効化したあと、[トラフィックフィルタリング] セクションの [IP ルール] 一覧で IP ルールを、[ドメインルール] 一覧でドメインルールを設定します。IP ルールとドメインルールは、どちらか一方を選ぶものではありません。必要に応じて併用できます。それぞれ別のルールセットとして管理され、個別に保存します。

ルールの並び順は評価に影響しません

IP ルールとドメインルールでは、一覧や CSV の並び順ではなく、最も詳細に一致するルール (ロンゲストマッチ) が適用されます。評価結果を変えるためにルールを並べ替える必要はありません。詳しくは、IP ルールの仕様 または ドメインルールの仕様 を参照してください。

設定変更を反映するにはセッションの再確立が必要です

トラフィックフィルタリングの設定変更は、新しく作成されるセッションにのみ適用されます。すでにアクティブなセッションには影響しません。

設定を反映するには、IoT SIM やバーチャル SIM/Subscriber のセッションを再確立する必要があります。詳しくは、IoT SIM のセッションを再確立する または バーチャル SIM/Subscriber のセッションを再確立する を参照してください。

セッションを再確立すると、TCP の接続情報が再初期化されます。IoT SIM やバーチャル SIM/Subscriber を利用するデバイスやアプリケーションでは、自動再接続機能を実装するなど、セッション再確立に対応した設計を推奨します。

IP ルールを追加・編集する

IP ルールでは、宛先 IPv4 CIDR、プロトコル、ポート、アクションを指定します。

IP ルールを個別に追加・編集する

以下では、IP ルールを追加する操作を例に説明します。既存の IP ルールを編集する場合も、設定する項目は同じです。

  1. [トラフィックフィルタリング] セクションの [IP ルール] 一覧で、[ルールを追加] をクリックします。

    IP ルール編集用の画面が表示されます。

    IP ルールの追加画面 IP ルールの追加画面

  2. 以下の項目を設定します。

    項目説明
    [宛先 CIDR (IPv4)]IPv4 CIDR で指定します (例: 8.8.8.8/32192.168.0.0/16)。IPv6 は利用できません。
    [プロトコル]「TCP (6)」、「UDP (17)」、「ICMP (1)」、「ALL (255)」、「カスタム」のいずれかを指定します。「カスタム」を選択すると、IANA プロトコル番号 (1〜255) を直接入力できます。
    [ポート]

    選択した [プロトコル] に応じて、[ポート] の指定方法が変わります。

    「TCP (6)」/「UDP (17)」の場合:

    項目説明
    [任意]すべてのポートにマッチします。ポート番号は入力しません。
    [単一]ポート番号を 1 つ入力します。
    [範囲]開始ポートと終了ポートを入力します。

    「ICMP (1)」の場合:

    ポート番号ではなく、ICMP type / code を指定します。

    項目説明
    [任意]すべての ICMP にマッチします。ICMP type / code は入力しません。
    [指定 (type / code)]ICMP type と ICMP code を入力します。

    「ALL (255)」の場合:

    [ポート] は指定しません。

    「カスタム」の場合:

    [ポート] は指定しません。

    [アクション]「許可」または「拒否」を選択します。
  3. [ルールを保存] をクリックします。

    IP ルールが一覧に追加されます。この時点ではまだ保存されておらず、編集中の状態です。

    未保存の変更がある状態。「保存」「破棄」ボタンと「未保存の変更があります。」が表示される 未保存の変更がある状態。「保存」「破棄」ボタンと「未保存の変更があります。」が表示される

    • [保存][破棄] は、未保存の変更がある場合 (「未保存の変更があります。」と表示されている場合) のみ表示されます。
    • [破棄] をクリックすると、保存していない変更内容を元に戻せます。
    • 保存していない変更がある状態で別のページに遷移しようとすると、確認の画面が表示されます。
    • [IP ルール][ドメインルール] は個別に保存します。
  4. 必要な IP ルールをすべて入力したあと、[IP ルール][保存] をクリックします。

    IP ルールが保存されます。

  5. VPG を利用する IoT SIM やバーチャル SIM/Subscriber のセッションを再確立します。

    詳しくは、IoT SIM のセッションを再確立する または バーチャル SIM/Subscriber のセッションを再確立する を参照してください。

CSV で IP ルールを一括編集する

ルール数が多い場合や、既存の IP ルールセットを別の VPG に複製する場合は、CSV 形式で一括編集できます。

  1. [トラフィックフィルタリング] セクションの [IP ルール] 一覧で、[一括編集] をクリックします。

    「IP ルールの編集」画面が表示されます。すでに登録されている IP ルールが CSV 形式で表示されているので、編集の出発点として利用できます。先頭のコメント行に CSV の書式が記載されています。

    CSV 一括編集画面 CSV 一括編集画面

  2. CSV を編集します。

    IP ルールの CSV 形式は以下のとおりです (1 行 = 1 ルール)。

    # cidr, protocol, fromPort, toPort, action
    0.0.0.0/0, ALL, any, any, allow
    10.0.0.0/8, TCP, 22, 22, deny
    8.8.8.8/32, UDP, 53, 53, allow
    

    CSV 一括編集画面 (エラー行があり「置き換える」が無効化された状態) CSV 一括編集画面 (エラー行があり「置き換える」が無効化された状態)

    • # で始まる行はコメントとして無視されます。
    • カンマ前後の空白は無視されます。
    • ルールにエラーがある場合は、エラーが表示され、[置き換える] はクリックできません。エラーをすべて修正してから [置き換える] をクリックしてください。
  3. [置き換える] をクリックします。

    [トラフィックフィルタリング] セクションの [IP ルール] 一覧が CSV の内容で更新されます。この時点では、IP ルールはまだ保存されていません。

  4. [IP ルール][保存] をクリックします。

    IP ルールが保存されます。

  5. VPG を利用する IoT SIM やバーチャル SIM/Subscriber のセッションを再確立します。

    詳しくは、IoT SIM のセッションを再確立する または バーチャル SIM/Subscriber のセッションを再確立する を参照してください。

ドメインルールを追加・編集する

ドメインルールでは、FQDN パターン、プロトコル、ポートを指定します。ドメインルールは通信を許可するルールです。拒否は設定できません。

ドメインルールを個別に追加・編集する

以下では、ドメインルールを追加する操作を例に説明します。既存のドメインルールを編集する場合も、設定する項目は同じです。

  1. [トラフィックフィルタリング] セクションの [ドメインルール] 一覧で、[ルールを追加] をクリックします。

    ドメインルール編集用の画面が表示されます。

    ドメインルールの追加画面 ドメインルールの追加画面

  2. 以下の項目を設定します。

    項目説明
    [FQDN パターン]

    ドメイン名 (例: api.example.com) または、左端のラベルをワイルドカードに置き換えたパターン (例: *.soracom.io) を指定します。最大 255 文字までです (国際化ドメイン (IDN) の場合は Punycode 変換後の文字数で判定されます)。

    ワイルドカードの指定方法:

    FQDN パターンでは、左端のラベル全体* に置き換えることで、サブドメインをまとめて指定できます。

    指定例説明
    *.example.com✓ 有効。foo.example.combar.example.com など、example.com1 階層下のサブドメイン にマッチします。example.com 自体や、sub.foo.example.com のような 2 階層以上下のサブドメインにはマッチしません。
    api.example.com✓ 有効。api.example.com のみにマッチします。
    *.*.example.com- 無効。ワイルドカードは 1 つのみ指定できます。
    foo*.example.com- 無効。ワイルドカードは左端のラベル全体を置き換える必要があります。
    *foo.example.com- 無効。ワイルドカードを部分的に組み合わせることはできません。
    example.*.com- 無効。ワイルドカードは左端のラベルでのみ指定できます。
    [プロトコル]「TCP (6)」、「UDP (17)」、「ICMP (1)」、「ALL (255)」、「カスタム」のいずれかを指定します。「カスタム」を選択すると、IANA プロトコル番号 (1〜255) を直接入力できます。
    [ポート]IP ルールの [ポート] と同じです。詳しくは、IP ルールを個別に追加・編集する[ポート] を参照してください。
  3. [ルールを保存] をクリックします。

    ドメインルールが一覧に追加されます。この時点ではまだ保存されておらず、編集中の状態です。

    • [保存][破棄] は、未保存の変更がある場合 (「未保存の変更があります。」と表示されている場合) のみ表示されます。
    • [破棄] をクリックすると、保存していない変更内容を元に戻せます。
    • 保存していない変更がある状態で別のページに遷移しようとすると、確認の画面が表示されます。
    • [IP ルール][ドメインルール] は個別に保存します。
  4. 必要なドメインルールをすべて入力したあと、[ドメインルール][保存] をクリックします。

    ドメインルールが保存されます。

  5. VPG を利用する IoT SIM やバーチャル SIM/Subscriber のセッションを再確立します。

    詳しくは、IoT SIM のセッションを再確立する または バーチャル SIM/Subscriber のセッションを再確立する を参照してください。

CSV でドメインルールを一括編集する

ルール数が多い場合や、既存のドメインルールセットを別の VPG に複製する場合は、CSV 形式で一括編集できます。

  1. [トラフィックフィルタリング] セクションの [ドメインルール] 一覧で、[一括編集] をクリックします。

    「ドメインルールの編集」画面が表示されます。すでに登録されているドメインルールが CSV 形式で表示されているので、編集の出発点として利用できます。先頭のコメント行に CSV の書式が記載されています。

    CSV 一括編集画面 CSV 一括編集画面

  2. CSV を編集します。

    ドメインルールの CSV 形式は以下のとおりです (1 行 = 1 ルール)。ドメインルールは通信を許可するルールのため、CSV ではアクションを指定しません。

    # fqdnPattern, protocol, fromPort, toPort
    *.soracom.io, TCP, 443, 443
    api.example.com, TCP, 443, 443
    

    CSV 一括編集画面 (エラー行があり「置き換える」が無効化された状態) CSV 一括編集画面 (エラー行があり「置き換える」が無効化された状態)

    • # で始まる行はコメントとして無視されます。
    • カンマ前後の空白は無視されます。
    • ルールにエラーがある場合は、エラーが表示され、[置き換える] はクリックできません。エラーをすべて修正してから [置き換える] をクリックしてください。
  3. [置き換える] をクリックします。

    [トラフィックフィルタリング] セクションの [ドメインルール] 一覧が CSV の内容で更新されます。この時点では、ドメインルールはまだ保存されていません。

  4. [ドメインルール][保存] をクリックします。

    ドメインルールが保存されます。

  5. VPG を利用する IoT SIM やバーチャル SIM/Subscriber のセッションを再確立します。

    詳しくは、IoT SIM のセッションを再確立する または バーチャル SIM/Subscriber のセッションを再確立する を参照してください。

SORACOM API の場合

SORACOM API を利用しても、フィルタリングルールを追加 / 編集できます。

API では一度の PUT リクエストでルールセット全体を 置き換え ます。既存のルールを残す場合は、現在のルールセットに新規ルールを追加した完全な配列を指定してください。

1 件でも無効なルールが含まれていると、SORACOM API は HTTP 400 Bad Request を返し、リクエスト内のルールはすべて登録されません。レスポンスボディには、ruleIndex (配列内の何番目か) と ruleType (uplink または fqdn) が additionalInfo として返されます。

IP ルールを設定する

$ curl -v -X PUT https://api.soracom.io/v1/virtual_private_gateways/{vpg_id}/traffic_filtering/uplink_rules \
-H "X-Soracom-API-Key: $X_SORACOM_API_KEY" \
-H "X-Soracom-Token: $X_SORACOM_TOKEN" \
-H "Content-Type: application/json" \
-d '{
  "rules": [
    {
      "type": "ip",
      "cidr": "8.8.8.8/32",
      "protocol": 17,
      "fromPort": 53,
      "toPort": 53,
      "action": "allow"
    }
  ]
}'

ドメインルールを設定する

$ curl -v -X PUT https://api.soracom.io/v1/virtual_private_gateways/{vpg_id}/traffic_filtering/fqdn_rules \
-H "X-Soracom-API-Key: $X_SORACOM_API_KEY" \
-H "X-Soracom-Token: $X_SORACOM_TOKEN" \
-H "Content-Type: application/json" \
-d '{
  "rules": [
    {
      "type": "fqdn",
      "fqdnPattern": "*.soracom.io",
      "protocol": 6,
      "fromPort": 443,
      "toPort": 443,
      "action": "allow"
    }
  ]
}'

IP ルールをすべて削除する

空の配列で更新します。ドメインルールを削除する場合は、URL の uplink_rulesfqdn_rules に変更してください。

$ curl -v -X PUT https://api.soracom.io/v1/virtual_private_gateways/{vpg_id}/traffic_filtering/uplink_rules \
-H "X-Soracom-API-Key: $X_SORACOM_API_KEY" \
-H "X-Soracom-Token: $X_SORACOM_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "rules": [] }'

PUT リクエストは登録された後のルールセットを { "rules": [...] } 形式のレスポンスボディとして返します。リクエストで fromPorttoPort を省略した場合、ポートの概念がないプロトコル (ALL など) ではサーバー側で 0 および 65535 に正規化されてレスポンスに含まれます。レスポンスをそのまま再度 PUT すれば、設定内容を別の VPG に複製できます。

トラフィックフィルタリングを無効化する

  1. VPG 設定画面の [フィルタリング] タブで、[トラフィックフィルタリング] セクションのスイッチをオフにします。

    「通信が一時停止します」という確認画面 (有効化時と同じ) が表示されます。

    無効化の確認画面 無効化の確認画面

  2. 表示内容を確認して、[OK] をクリックします。

    無効化しても、登録済みのルールは保持されます

    トラフィックフィルタリングを無効化しても、登録済みのフィルタリングルール (IP ルール / ドメインルール) は削除されません。再度トラフィックフィルタリングを有効化したときには、無効化前のフィルタリングルールがそのまま適用されます。フィルタリングルールを削除する場合は、トラフィックフィルタリングを有効化したあとで、別途、[IP ルール] / [ドメインルール] で個別に削除してください。

SORACOM API の場合

SORACOM API を利用しても、トラフィックフィルタリングを無効化できます。

$ curl -v -X POST https://api.soracom.io/v1/virtual_private_gateways/{vpg_id}/traffic_filtering/disable \
-H "X-Soracom-API-Key: $X_SORACOM_API_KEY" \
-H "X-Soracom-Token: $X_SORACOM_TOKEN"