アウトバウンドルーティングフィルターを設定すると、VPG を利用する IoT SIM や バーチャル SIM/Subscriber が直接アクセスできるサーバーを制限できます。たとえば、VPG を経由する通信をすべて拒否したり、ピアリング先や専用線、仮想専用線での接続先環境へのアクセスをすべて許可したりできます。
制限するには、以下の設定例のように IP アドレスレンジで許可 / 拒否を設定します。
設定例 | ||
---|---|---|
すべてのサーバーへの通信を拒否 | deny | 0.0.0.0/0 |
任意の IP アドレス (例: 10.0.0.119/32 ) への通信を許可 | allow | 10.0.0.119/32 |
任意の IP アドレスレンジ (例: 10.128.0.0/9 ) への通信を許可 | allow | 10.128.0.0/9 |
アウトバウンドルーティングフィルターで許可 / 拒否できない宛先があります
アウトバウンドルーティングフィルターで deny
、0.0.0.0/0
を指定して、すべてのサーバーへの通信を拒否しても、SORACOM Beam、SORACOM Funnel、SORACOM Funk を利用して、任意のサーバーにデータを転送できます。また、Harvest Data/Files にもデータやファイルを送信できます。詳しくは、VPG に所属するデバイスの通信先を制限する機能 を参照してください。
操作を始める前に準備が必要です (クリックして確認してください)
(1) VPG を作成する
VPG を作成してください。詳しくは、VPG を作成する を参照してください。
(2) IoT SIM や バーチャル SIM/Subscriber が利用する VPG を切り替える
IoT SIM や バーチャル SIM/Subscriber が、(1) で作成した VPG を利用するように設定し、セッションを再確立してください。詳しくは、IoT SIM が利用する Virtual Private Gateway (VPG) を切り替える を参照してください。
準備完了ステップ 1: アウトバウンドルーティングフィルターを設定する
ここでは 10.0.0.119
のみへのアクセスを許可するアウトバウンドルーティングフィルターを設定します。
アウトバウンドルーティングフィルターを設定する VPG の VPG 設定画面で、
→ の順にクリックします。VPG 設定画面を表示する操作について詳しくは、VPG の設定を変更する を参照してください。
10.0.0.119
へのアクセスのみを許可するため、以下の 2 つのフィルタエントリ (*) を入力します。- (*) に登録する 1 つの と のペアを、フィルタエントリと呼びます。
説明 「deny」を選択します。 0.0.0.0/0
を入力します。すべての IP アドレス ( 0.0.0.0/0
) への通信を拒否 (deny
) します。「allow」を選択します。 10.0.0.119/32
を入力します。10.0.0.119/32
への通信を許可 (allow
) します。- をクリックすると、入力欄が 1 行追加されます。
- をクリックすると、入力欄が 1 行削除されます。
複数のフィルタエントリを登録した場合はロンゲストマッチでフィルタエントリが決定されます
ある送信パケットの宛先 IP アドレスが複数のフィルタエントリに該当する場合、IP アドレスレンジのプレフィックス (ネットワークアドレス) が最も長いフィルタエントリが適用されます。これをロンゲストマッチと呼びます。
たとえば、上で設定したように
0.0.0.0/0
を deny (拒否) するフィルタエントリと、10.0.0.119/32
を allow (許可) するフィルタエントリがある場合、10.0.0.119
への送信パケットは、ロンゲストマッチで10.0.0.119/32
のフィルタエントリが適用されます。その結果、通信が許可されます。→ の順にクリックします。
VPG を利用する IoT SIM や バーチャル SIM/Subscriber のセッションを再確立します。
詳しくは、IoT SIM のセッションを再確立する または バーチャル SIM/Subscriber のセッションを再確立する を参照してください。
すでに VPG に接続中の IoT SIM や バーチャル SIM/Subscriber に対して、アウトバウンドルーティングフィルターを適用するには、IoT SIM や バーチャル SIM/Subscriber のセッションを再確立してください。
設定例 : デバイス間通信 (SORACOM Gate D2D) で インターネット通信を拒否する
デバイス間で通信する (SORACOM Gate D2D) の設定後、さらに IoT SIM や バーチャル SIM/Subscriber からのインターネット通信を拒否する場合、つまり、インターネットへの通信は拒否しデバイス間の通信のみ許可する場合は、以下のように 2 つのフィルタエントリを入力します。
説明 | ||
---|---|---|
「deny」を選択します。 | 0.0.0.0/0 を入力します。 | すべての IP アドレス (0.0.0.0/0 ) への通信を拒否 (deny ) します。 |
「allow」を選択します。 | 10.128.0.0/9 を入力します。 | 10.128.0.0/9 への通信を許可 (allow ) します。 |
- をクリックすると、入力欄が 1 行追加されます。
- をクリックすると、入力欄が 1 行削除されます。
「allow」アクションに入力するアドレスレンジは、VPG 作成時に指定した 10.128.0.0/9
を入力していますが、VPG 作成時にデフォルト値から変更をした場合は、画面上部の属性情報テーブルにある の値を確認のうえ入力してください。
SORACOM API の場合
- SORACOM API を利用するには、API キーと API トークンが必要です。詳しくは、API キーと API トークンの取り扱いについて を参照してください。
{vpg_id}
は、VirtualPrivateGateway:listVirtualPrivateGateways API
で取得できます。
VirtualPrivateGateway:setRoutingFilter API
を使用します。
例 1: 特定のアドレスレンジ (192.0.2.0/26
) 宛ての送信パケットをブロックする
$ curl -v -X POST https://api.soracom.io/v1/virtual_private_gateways/{vpg_id}/set_routing_filter \
-H "X-Soracom-API-Key: $X_SORACOM_API_KEY" \
-H "X-Soracom-Token: $X_SORACOM_TOKEN" \
-H "Content-Type: application/json" \
-d '[
{
"action": "deny",
"ipRange": "192.0.2.0/26"
}
]'
例 2: 特定の IP アドレスレンジ (10.0.0.119/32
) 宛ての送信パケットのみを許可する
特定の IP アドレスレンジのみを許可する場合は、広範囲の IP アドレス (最も広い範囲は 0.0.0.0/0
) に対して「拒否 (deny)」ルールを設定し、許可する IP アドレスレンジに対して「許可 (allow)」ルールを追加します。
具体的には、10.0.0.119/32
へのアクセスのみを許可するために、全体 (0.0.0.0/0
) を拒否し、10.0.0.119/32
を許可するように設定します。
$ curl -v -X POST https://api.soracom.io/v1/virtual_private_gateways/{vpg_id}/set_routing_filter \
-H "X-Soracom-API-Key: $X_SORACOM_API_KEY" \
-H "X-Soracom-Token: $X_SORACOM_TOKEN" \
-H "Content-Type: application/json" \
-d '[
{
"action": "deny",
"ipRange": "0.0.0.0/0"
},
{
"action": "allow",
"ipRange": "10.0.0.119/32"
}
]'
重複する複数のフィルタエントリがある場合
アウトバウンドルーティングフィルターに登録する 1 つの "action" と "ipRange" のペアを、フィルタエントリと呼びます。ある VPG に、重複する複数のフィルタエントリを登録した場合、最も長いプレフィックスを持つ IP アドレスレンジのフィルタエントリが適用されます。たとえば、0.0.0.0/0
を deny (拒否) するフィルタエントリと 10.0.0.199/32
を allow (許可) するフィルタエントリがある場合、10.0.0.199
への送信パケットは、10.0.0.199/32
のフィルタエントリが適用され通信が許可されます。
ステップ 2: 拒否アドレスにアクセスできないことを確認する
VPG を適用した IoT SIM や バーチャル SIM/Subscriber から、ステップ 1 の手順 2 で通信を許可した「10.0.0.119」にアクセスできること、これ以外にアクセスできないことを確認してください。
10.0.0.119 が Web サーバーであれば以下のように確認できます。
$ curl http://10.0.0.119/
<html lang="en">
......
また、ping が可能であれば、ping 10.0.0.119
で確認することもできます。