同じ Mac の二つのログインアカウントは、ネットワークが届くまで二つの別世界に見えます。一方のセッションで開始したトンネルは、どちらのクライアントが所有し、どんなポリシーが付いてくるかによって、もう一方のセッションの体験を変えられます。強制する仕組みを選ぶ前に、必要な分離を言葉にしてください。順序が重要です。先に選んだ仕組みは、要件を自分の周りで再定義しがちだからです。

三つの問いがほとんどの仕事をします。誰のアプリがどのプライベートリソースを必要とするか、両方のセッションを同時に有効にする必要があるか、トンネルが使えないときにそれらのアプリに何が許されるか、です。

アカウント一覧ではなく、トラフィックから始める

アカウントの切り替えは ID の境界であり、ルーティングの境界ではありません。 macOS は VPN 構成を所有するアカウントのために読み込みますが、インターフェース、そのルート、そしてインストールするシステム全体のポリシーはマシンに属します。要件が一人のユーザーのアプリだけを社内ネットワークに入れることなら、設計はアプリと宛先の言葉で述べるべきで、誰がログインしているかで述べてはいけません。そうでなければ二つ目のアカウントは、一つ目のクライアントが残したものを引き継ぎます。

必要な振る舞いを一文で書きます。あるユーザーのメールとファイルアクセスは管理されたトンネルに従い、もう一方のユーザーの閲覧は家庭の接続に残り、どちらの経路も他方のデフォルトルートを継承しません。その一文は検証できます。ログイン切り替えの物語はたいてい検証できません。

プロファイルの配信経路とトラフィックの範囲は別物

Apple はユーザー単位またはデバイス単位で配信される管理 VPN の仕組みをサポートし、展開ガイドはそうしたモデルをプロバイダー依存の統合とともに説明しています。配信経路は誰が構成を受け取り所有するかを示します。どのトラフィックを取り込むかは、それ自体では定義しません。クライアントの実装と構成されたポリシーが今も決めるからです。

文書化されたユーザー認識またはアプリ認識のモードが要件を表現できるなら、それが最短の道です。その後は名前を信じるのではなく、実際のアプリと ID を確認してください。同じアプリの二つのコピーは二つの異なるネットワーク経路ではなく、アプリを列挙するプロファイルはそのヘルパープロセスが対象に含まれることを保証しません。

ゲストシステムは現実の制約を伴う現実の境界

仮想マシンは独自のネットワークスタックを持つ別の OS を与えるので、ゲストはホストのルートに触れずに自分のトンネルとアプリを動かせます。これは二つ目のログインアカウントより強い分離であり、維持の手間も増えます。提案する前に、そのコストが本当に必要な境界を買うのかを決めてください。

仮想ネットワークのモードは依然として見直しが必要です。ゲストがブリッジか、NAT の背後か、分離されているかによって、何に届き、何が届くかが決まり、ゲストがたまたま接続しているからといってホストのアプリがゲストのアプリになるわけではありません。ブロックのポリシーも確認してください。そうしないと、落ちたゲストのトンネルが誰も意図しない形でホストの経路に戻ります。

プロキシはユーザーアカウントより狭い

ホストの一つのアプリは、承認されたゲストやコンテナで動く実際のプロキシサービスに到達でき、それはアプリが対応プロトコルで実際に送るトラフィックを対象にします。その Mac アカウントが所有するすべてのプロセスを対象にするわけではなく、アプリがプロキシのプロトコルの外で送るトラフィックも対象にしません。

共有マシンでのもう一つの注意点。ホストのループバックに束縛された TCP リスナーはユーザー名の確認ではありません。プロキシをローカルマシンに限定すればネットワークからは遠ざかりますが、すでにログインしている別のローカルユーザーに対して一方を認可するものではありません。その区別が重要なら、サービスの認証を明示的に保ってください。

二つのテストで境界を証明する

両方の経路を実行し、別々に観察します。想定したアカウントで、プライベートリソースを必要とするアプリを開き、管理されたサービスに届くことを確認します。もう一方のアカウントで、通常の閲覧が家庭の経路を保つことを確認します。次に意図的にトンネルを壊し、両側のフォールバックの振る舞いを確認します。ほとんどの設計はそこで静かに失敗するからです。同じ一時間のうちに確認してください。変わったネットワークが比較を汚さないようにするためです。

コンテナやゲストがトンネルを動かすなら、三つ目の確認を加えます。その外側のネイティブな Mac アプリが設計どおりに振る舞うことを確認します。範囲を示せる最も単純な構成を選び、これらのテストを行う前に、仮想マシンを普遍的に必要だとか、アカウント切り替えを普遍的に十分だとか決めつけないでください。

関連記事