関連ガイド
macOS の「ネットワーク機能拡張」の許可とは
更新日
結論から言うと、これは不具合ではなく、macOS が OS レベルで設けているセキュリティの関所です。ネットワーク通信を引き受けようとするプログラム(VPN に限らず、ファイアウォール、広告ブロッカー、パケットキャプチャツールも含む)は、実際に動く前にあなた自身が明示的に「許可」をクリックする必要があります。インストールやログインに成功しただけでは足りません。当社のクライアントのうち3つ(プライベート/Tailscale、Cisco Secure Client、Hiddify)は、macOS で初めて接続するときにこの手順が必要です。OpenVPN Connect はこの仕組みを使わないので、許可は不要です。以下では、この関所がある理由と、OS のバージョン別の手順を説明します。
「ネットワーク機能拡張」とは何か
macOS で仮想ネットワークアダプタを作り、システムの通信を自分のトンネルに通したいプログラムは、Apple の NetworkExtension フレームワークを通じてその機能を申請しなければなりません。これは macOS 10.15 Catalina 以降 Apple が義務づけている仕組みで、はるかに強い権限を持っていた従来のカーネル拡張(kext)に代わるものです。
このフレームワークは2つの部分からなります。アプリには高いシステム権限で動くためのコードが同梱されており、OS は確認画面を表示します。あなた自身が「許可」をクリックして初めて、そのコードが読み込まれ通信を処理し始めます。この手順を飛ばすと機能拡張は「保留中」のままになり、クライアントのアイコンがいつまでも「接続中」のまま成功しないのはこのためです。
Apple がこれを別扱いにしている理由
- 仮想アダプタを作って通信を引き受けられるものは、理論上、暗号化されていない通信をすべて見たり、こっそり別の宛先に流したりできます。これはスパイウェアが最も欲しがる能力です。Apple がこれを「インストールすればすぐ動く」から「システム設定で手動のクリックが必要」に変えたのは、あなたの知らないうちにこの能力を得られないようにするためです。
- この確認が出るのは**初回だけ**です。いったん許可したクライアントは、普段の接続や再起動でもう一度求められることはありません。OS を再インストールしたとき、クライアントを新たにインストールし直したとき、あるいはシステム設定で自分で許可をオフにしたときに、再び表示されます。
- 3つのクライアントはそれぞれ個別にこの関所を通る必要があります。システムは許可を申請したプログラムごとに管理しており、全体で1つのスイッチではありません。冗長な設計ではなく、これがチェックの単位なのです。
macOS 15 Sequoia 以降
Sequoia では「ログイン項目」と「機能拡張」の管理画面が統合されました。ネットワーク機能拡張は個別に並ぶのではなく、この新しい画面のカテゴリ表示の中に入っています。
- 「システム設定」→「一般」→「ログイン項目と機能拡張」を開きます。
- 下部の「機能拡張」セクションまでスクロールし、右上の表示をデフォルトから「カテゴリ別」に切り替えます。これをしないと、ネットワーク機能拡張は何十もの他のシステム拡張と一緒に長いリストに埋もれてしまいます。
- 「カテゴリ別」表示で「ネットワーク機能拡張」のカテゴリを見つけ、横の ⓘ をクリックして展開します。
- お使いのクライアント(Tailscale/Cisco Secure Client/Hiddify)を見つけ、横のスイッチをオンにします。
- macOS がログインパスワードか Touch ID での確認を求めてきます。これはクライアント自身ではなく、Mac の前にいる本人が許可していることを確かめる手順です。
- 確認が済むとスイッチがオンになります。クライアントに戻って接続し直せば、今度はトンネルが正常につながるはずです。
macOS 13 Ventura/14 Sonoma
この2つのバージョンは以前の入口を使っており、通知やシステム設定内の文言が Sequoia とは異なります。こちらの手順に従ってください。
- クライアントを普通に起動し、一度「接続」をクリックします。OS が確認を出すのは実際に接続を試みたあとで、アプリをインストールしただけでは表示されません。
- 「システム拡張機能がブロックされました」といった趣旨のシステム通知が表示されます。閉じても無視しても構いません。次の手順で自分で設定を探しに行きます。
- 「システム設定」→「プライバシーとセキュリティ」を開き、下へスクロールします(一番上ではなく、たいていページの中ほどです)。「開発元“<クライアントの開発元名>”のシステムソフトウェアの読み込みがブロックされました」という行が見つかります。
- その行の横の「許可」をクリックすると、macOS がログインパスワードでの確認を求めてきます。
- クライアントに戻って接続し直せば、今度はトンネルが正常につながるはずです。
クライアントごとの開発元名
Ventura/Sonoma では、「開発元」のあとに引用符付きで表示される名前がクライアントごとに異なります。実際にインストールしているものと照らし合わせ、想定と違う名前なら「許可」をクリックしないでください。
- プライベート(Tailscale):「Tailscale Inc.」と表示されます。実機で確認済みです。
- Cisco(Cisco Secure Client):「Cisco Systems, Inc.」と表示される見込みですが、まだ確認できていません。
- Hiddify:「Hiddify Team」と表示される見込みですが、こちらもまだ確認できていません。
うまくいかないとき
- 「システム設定に表示されるはずの行が見つからない」:上で説明したとおり、実際にクライアントを起動して一度「接続」をクリックしたか確認してください。OS がこの行を表示するのは、機能拡張から実際の読み込み要求を受けたあとです。アプリをインストールしただけで一度も開いていなければ表示されません。
- 「うっかり『許可しない』をクリックした/通知を閉じてしまった」:取り消しボタンを探す必要はありません。クライアントに戻ってもう一度「接続」をクリックすれば、OS が同じ確認を再表示するので、上の手順をやり直せます。一度閉じただけで永久に締め出されることはありません。
- 「会社支給の Mac で『許可』ボタンがグレーになっている」:たいていは MDM(デバイス管理)のポリシーで設定がロックされています。許可できるのは管理コンソールを使う IT 管理者だけです。承認済みシステム拡張の一覧にクライアントを追加するよう、IT 部門に依頼してください。
- 「3つのうち2つのクライアントを入れたのに、許可を求められたのは1つだけ」:もう一方はまだ起動して接続していないのでしょう。上の1つ目の項目をご覧ください。
よくある質問
この手順は御社が独自に追加したものですか?
いいえ。これは macOS 10.15 Catalina 以降に組み込まれた仕組みで、どのベンダーのクライアントかに関係なく、ネットワーク通信を引き受けようとするすべてのプログラムに適用されます。Apple 自身のドキュメントでは、システム拡張のうちのネットワーク機能拡張というカテゴリとして説明されています。
許可しても安全ですか? 悪用されることは?
ネットワーク機能拡張は、従来のカーネル拡張よりも制限の強いサンドボックスで動きます。また macOS はこの権限を持つプログラムを記録しており、「システム設定」→「プライバシーとセキュリティ」→「ネットワーク」でいつでも一覧を確認し、どれでも取り消せます。「プライベート」、OpenVPN、Cisco のクライアントはいずれもベンダー署名済みの公式ソフトウェアで、Hiddify はオープンソースプロジェクトをバイト単位でそのままミラーしたものです。詳しくは各ページのダウンロードに関する説明をご覧ください。
以前はなかったのに、急に表示されるようになったのはなぜですか?
OS のアップグレード後によくあることです。Sequoia にアップデートすると、既存のクライアントの許可記録が自動で引き継がれないことがあり、上の Sequoia の手順をやり直す必要があります。クライアントや OS を再インストールして許可記録が消えた場合にも起こります。
3つのクライアントを全部インストールして許可する必要がありますか?
いいえ。実際にインストールしたものだけ許可すれば十分です。アカウントはどのクライアントでも使えるので、普段使いに便利なものを選んでください。「接続方法ごとの向いている場面」をご覧ください。
macOS の「壊れているため開けません」と同じものですか?
違います。ただし、続けて両方に出くわすことはあります。「壊れている」はダウンロードしたインストーラーに対する Gatekeeper のチェックで、ネットワーク機能拡張の確認は、誰がネットワークを引き受けてよいかを管理する別の層です。原因も対処法も違うので、そちらについては「ウイルス対策ソフトがクライアントを検出する・macOS で『壊れている』と表示される」をご覧ください。