ダウンロードページには六つのMac VPNアプリが並び、どれが勤務先のゲートウェイに受け入れられるかは書かれていません。これはストアの欠陥ではなく、引き継ぎの欠陥です。あるSSL VPNは製品ファミリーであり、プロトコルではありません。同じログイン画面を持つ二つのゲートウェイが別のクライアントを要求することもあり、私がMacとサーバーアドレスを渡されたときに使う順序は、ゲートウェイが何を話すかを見極め、それに合うクライアントを選び、仕事をトンネルに任せる前にルートとDNSを検証することです。

アプリストアではなくゲートウェイから始める

アプリはあなたのMacで動きますが、接続を受け入れてアクセスを与えるのは、運用者、アドレス、互換性のある設定、そしてあなたを認可する手段を備えた別のものです。無料クライアントが優れたソフトウェアであっても、それらのどれも提供しないことがあります。仕事へのアクセス、自宅のゲートウェイ、商用インターネット出口は、たまたま同じダウンロードページを共有している三つの異なる出発点です。

何かをインストールしたり置き換えたりする前に、サービスを運用している人から四つの答えを得てください:

  • アクセスモード: ブラウザポータル、選択したアプリケーションへのアクセス、完全なネットワークトンネルのいずれかです。これでクライアントがそもそも必要かどうかが決まります。

  • ゲートウェイのファミリーと対応リリース: 製品、有効になっているサービス、そしてあなたのmacOSビルドとMacハードウェアをまだサポートするクライアントのバージョンです。

  • 認証: パスワードとMFA、ブラウザサインイン、デバイス証明書、またはポスチャチェックです。承認されたフローを持たないクライアントは接続した後に拒否されます。

  • 所有権: 信頼できるダウンロード元や管理元、想定されたプロファイル、そして壊れたときに誰が支えるかです。

所有権は人が飛ばしがちな項目です。管理されたMacではプロファイルが組織の管理システム経由で届くことが多く、手作りした設定は次のチェックインで置き換えられる可能性があります。サードパーティのアプリを探す前に、自分で何かをインストールすることを求められているかを確認してください。

SSL VPNはファミリーの呼び名であり、プロトコルではない

TLSは接続を保護できますが、その内側の製品固有のやり取りがログイン、セッションの割り当て、トンネルの通信を扱います。クライアントが実装しなければならないのは、この内側のやり取りです。ゲートウェイのHTTPSログインページに到達するブラウザは証明書チェーンとWebサーバーを証明しますが、無関係なVPNアプリが同じマシンへトンネルを張れることは証明しません。

OpenConnectは私が知る最も明快な例です。その上流のドキュメントは、ゲートウェイのファミリーごとに別々のプロトコルモードを挙げ、相互運用性とベンダーの公式サポートを区別しています。すべてのSSL VPNが一つのプロトコルを話すなら、それらのモードは不要でしょう。

OpenVPNプロファイルには逆方向の同じ限界があり、それはOpenVPN互換の配備のためのインポート形式です。TLSを部品として共有しても、任意の企業ゲートウェイの設定ファイルになるわけではありません。だからこそ、動くブラウザログインは偽陽性であり、ポータルへのアクセスはトンネルが存在しなくても成功し、立ち上がったトンネルも後からポスチャチェックで拒否されることがあります。

クライアントをゲートウェイが話すものに合わせる

ファミリーが分かれば選択はすぐ絞れます。私が最初に確認する対応表はこれで、最後の列はどのアプリの評価よりも重要です。

ゲートウェイのファミリーmacOS上のクライアント注意すべき点
IKEv2/IPsec、ベンダー中立.mobileconfigプロファイルを使うmacOS内蔵クライアントサーバーの識別情報、および管理される可能性があるプロファイル
OpenVPN 2.xTunnelblickまたはopenvpnコマンドライン.ovpnと資格情報。クライアントはサービスを提供しません
WireGuard公式WireGuardクライアントまたはwireguard-toolsピア設定。wg showの見え方はクライアントによって異なります
ベンダーのSSL VPN(AnyConnect、Pulse、GlobalProtect、F5、Fortinet)ベンダーのクライアント、または明示的な--protocolを付けたOpenConnectサポートされない組み合わせ、MFA、ポスチャチェック
ブラウザポータルのみクライアントなしアプリケーションへのアクセスはネットワークトンネルではない

二つの行には警告が必要です。macOS内蔵クライアントは本物のIKEv2実装であり、汎用のSSL VPNクライアントではありません。それ向けに設計されたサービスには正しいプロファイル、想定されたサーバー識別情報、資格情報が必要で、管理されたマシンではそのプロファイルがロックされていることがあり、OpenConnectは一つのバイナリで複数のベンダープロトコルを扱うもののプロジェクト自身はベンダーサポートを主張しておらず、ホストスキャン、ゲートウェイが配る分割トンネルのルール、特定のSSOフローはベンダーのクライアントにしかないことがあります。

WireGuardも同じ形です。サービスがピアを提供し、クライアントがトンネルを提供し、OpenVPNプロファイルは代わりになりません。macOSの一つのしわ寄せとして、App Storeのクライアントはトンネルをネットワーク拡張の中に保持するため、Homebrewのツールからwg showを実行してもインターフェースが上がっているのに何も報告しないことがあります。代わりにルートと通信で検証してください。

設定し、決まった順序で検証する

クライアントを一つ、プロファイルを一つだけインストールし、変更した内容を書き留めます。接続する前に基準を取り、トンネルが何を変えるのかを言えるようにしておいてください:

scutil --nc list
networksetup -listallnetworkservices
netstat -rn | grep -E "^default|utun"
scutil --dns

提供されたプロファイルで接続し、同じコマンドを繰り返します。フルトンネルなら既定ルートがutunインターフェースを指し、分割トンネルなら内部のプレフィックスだけがルートされて公の出口は変わらないように見えるはずです。DNSはたいてい壊れたまま残る半分で、scutil --dnsはシステムが使う順にリゾルバを並べ、公のリゾルバの下にある内部リゾルバは内部の名前を間違ったサーバーへ送ります。

OpenVPNサービスならTunnelblickは妥当な無料クライアントで、そのガイド自身が欠けている半分について率直であり、VPNサービスは提供しません。渡された.ovpnをダブルクリックし、Tunnelblickにインストールさせ、頼る前にリリースをあなたのmacOSのバージョンと照合してください。

ベンダーのゲートウェイでは、コマンドラインからOpenConnectで試すことがよくあります:

brew install openconnect
sudo openconnect --protocol=anyconnect --user=you vpn.example.com

このツールは受け取った証明書を表示し、未知のチェーンを信頼する前に待ちます。その確認は機能であり、--servercert pin-sha256:...で固定するほうが、読んでいない警告を受け入れるより良い選択です。Ctrl-Cはトンネルを切断しますが、前面で動くopenconnectにはキルスイッチも再接続の仕組みもなく、診断のセッションには適していますが日々の作業の既定としては貧弱です。

合わせるべきゲートウェイがない場合

逆の問題を抱えて来る人もいます。運用者もアドレスもサービスもないのです。無料のMacアプリは自宅ルーターへの受信到達性を作れず、ホテルから自分のネットワークを使いたいなら、誰かが自宅でゲートウェイを動かし、パッチを当て続け、アドレスを公開するか名前解決し、どの機器に到達できるかを決める必要があります。

プライベートネットワークへのアクセスではなく別のインターネット出口が欲しいなら、クライアントより先にサービスを選んでください。単体クライアントの空のプロファイル一覧は、壊れた無料サブスクリプションではないことがよくあり、サブスクリプションも接続されたサーバーもないのかもしれません。コストも分けて考え、クライアントのライセンス、サービスプラン、自分で運用するゲートウェイは三つの別の買い物です。

仕事用のMacはポリシーの層を加え、無料アプリは接続できても誤りであることがあります。承認されたクライアントが、代替にはないデバイスチェックや認証フローを強制するかもしれないからです。無関係なアプリ間で資格情報をコピーするのではなく承認された代替を求め、プラットフォームの保護を無効にすることを互換性の修正と見なしてはいけません。

リモートデスクトップビューアも別の製品です。別のコンピューター上のセッションを見せるもので、トンネルが与えるネットワーク経路をあなたのMacのローカルアプリに与えるものではありません。

最初の本番セッション前の短いチェックリスト

ゲートウェイのファミリーとアクセスモードを書面で名指しし、それに合うクライアントだけをインストールし、使ったプロファイルを記録したうえで、実際の通信で三つを確認します。トンネルが入れたルート、リゾルバの順序、そしてIPではなく名前で到達した内部アプリケーション一つです。

何かが失敗したら、一度に一つの変数だけを変えます。クライアント、プロファイル、認証フローです。トンネルが起動を拒むのにポータルが読み込まれるなら、Webサーバーの問題とクライアント互換性の問題を切り分けられ、仕事のサービスが応答し、公の経路が期待どおりに振る舞えば、あなたには当て推量の山ではなく、名前の付いた支援された取り決めがあります。

関連記事