自宅のサービスを一つだけ到達可能にし、それ以外はすべて VPN を効かせたままにしたいとします。魅力的に見える設定は、すべてのプライベートアドレスを覆うローカルルート除外ですが、それは誤った制御です。次のホテルやカフェのネットワークでは、応答するものすべてを迂回路に変えてしまいます。この手順書は例外を一つのサービスに限定し、それを壊す切り替えの下で証明します。

例外をサブネットではなくサービスとして定義する

アプリ、宛先のホスト名とアドレス、プロトコルとポート、許可するネットワーク、そしてサービス自身が行う本人確認を記録します。認証付きの NAS では、正しい機械に届いたことを証明するのは証明書かアカウントです。192.168.0.0/16 のアドレスは何も証明しません。どの家庭用ルーターも同じプレフィックスを配るからです。

近いとは何かも決めます。ルーティングされた VLAN 上のサービスは、スマートフォンが直接接続しているサブネットにはありません。ゲスト Wi-Fi は自宅と同じプライベートプレフィックスを共有しながら、まったく別の機械であることがあります。例外はアドレス範囲だけでなく、サービスと環境を名指しするべきです。

プラットフォームの制御が要件に合うことを確認する

Android の IKEv2 プロファイルビルダーは setLocalRoutesExcluded(true) を公開しており、その文書は迂回可能な VPN を要求します。除外は、クライアントが通信をトンネルの外へ通せる場合にのみ意味を持ちます。同じ文書は、基盤のネットワークが除外に影響するルートを提供しうると警告しています。だからこの設定は、信頼するネットワークではなく、接続するネットワークに従います。

また、あらゆるロックダウンや管理された構成で利用者が同じ例外を有効にできるという約束でもありません。ルート除外、迂回可否のフラグ、端末のブロックポリシーは別々の制御であり、管理された端末は三つ目を禁止しつつ最初の二つを許可することがあります。チェックボックスを前提に設計する前に、インストールされたプロファイルと管理ポリシーを確認してください。

手順書: 例外を作成して適用する

手順 1: 展開用にサポートされた経路でプロファイルを作成します。管理された構成かクライアントビルダーのどちらかです。手順 2: VPN を迂回可能として指定します。ローカルルート除外はこれがないと効きません。手順 3: ローカルルート除外を有効にします。手順 4: サービス自身の認証と証明書検証は有効のままにします。例外はルーティングの話であり、信頼の話ではありません。手順 5: 保存して再接続し、プロファイルを適用します。

ロールバックは同じ経路を逆にたどります。除外を消し、次に迂回可否を消し、それから再接続します。端末上でルートやファイアウォールのフックを直接いじらないでください。その規則はネットワークデーモンが所有しており、手作業の規則は別のアドレスファミリー、再接続、ネットワーク遷移を取りこぼすことがあります。インストールされた構成でポリシーを表現できない場合は、所有者が別の設計を承認するまで厳しい側のブロックを維持してください。

重要な四つのケースを試す

無害な要求を使い、各ケースを実行する前に期待結果を書き留めます。以下の表は受け入れテストであり、提案ではありません。拒否されるべきケースが一つでも成功したら、例外はポリシーより広いということです。

CaseNetworkDestinationExpected
1. Approved serviceHome Wi-FiThe NASReachable and authenticated
2. Other local deviceHome Wi-FiA printerDenied by VPN policy
3. Same private prefixHotel or cafe Wi-Fi192.168.1.10Denied
4. TransitionVPN drop, Wi-Fi to cellularThe NASNo silent direct path

ケース 3 は広いプライベートサブネットの迂回を捕まえ、ケース 4 は接続時にしか例外を適用しなかったクライアントを捕まえます。VPN を切断し、スマートフォンをモバイル回線に移した状態でケース 4 を実行し、その後に再接続して、再起動なしで例外が戻ることを確認してください。ローカルルートの API リファレンスは、手順 2 を必須にする迂回可否の要件を示しています。

例外を記録し、見直す

維持する記録には、サービス、それを正当化した環境、所有者、日付を書きます。ローカルとはルーティングの関係であり、信頼の水準ではありません。スマートフォンが次に接続するネットワークは、例外を承認したネットワークではありません。

OS の更新、クライアントの更新、引っ越しの後に記録を見直します。例外を更新するたびにケース 3 を再実行してください。かつて迂回を一つのサービスに限定したプロファイルは、既定値の変更一つで広がりうるからです。

関連記事