macOS Tahoe でVPNの設定

macOS Tahoe だとL2PT/IPSec のVPNが設定できない仕様になっているらしい。なぜか解決方法がまだネットにない。

Appleは設定方法を解説しているが、そもそもシステム設定にVPNの項目がないのだ。

困るので設定方法をChatGPTのお助けで解決した。ChatGPTの説明では必ずしも新しいmacOSのプロンプトそのものと一致しないが、大体わかる。また何故なのか等を言ってくるから、はいそうですかとするだけでいい。

L2TP 用 の解決方法 構成プロファイル (.mobileconfig) を作り、これをインストールする。

必要な物

①サーバアドレス:IP Address あるいは vpn.example.com など(サーバ管理者が指定)

②アカウント名:VPN ログインユーザ(サーバ管理者が指定)

③ユーザパスワード:そのユーザのパスワード(サーバ管理者が指定)

④共有シークレット(事前共有鍵):L2TP/IPsec の共有鍵(サーバ管理者が指定)

⑤Macで表示される接続名称:〜〜VPN (等、ユーザの任意)

.mobileconfigの作成 以下をtextで作成。@@…@@ となっている部分を自分の値に書き換える。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>PayloadType</key>
  <string>Configuration</string>
  <key>PayloadVersion</key>
  <integer>1</integer>

  <key>PayloadIdentifier</key>
  <string>jp.example.vpn.l2tp</string>

  <key>PayloadUUID</key>
  <string>@@PROFILE-UUID@@</string>

  <key>PayloadDisplayName</key>
  <string>L2TP VPN</string>

  <key>PayloadDescription</key>
  <string>L2TP over IPsec VPN 設定</string>

  <key>PayloadOrganization</key>
  <string>@@ORG-NAME@@</string>

  <key>PayloadRemovalDisallowed</key>
  <false/>

  <key>PayloadScope</key>
  <string>User</string>

  <key>PayloadContent</key>
  <array>
    <dict>
      <key>PayloadType</key>
      <string>com.apple.vpn.managed</string>
      <key>PayloadVersion</key>
      <integer>1</integer>

      <key>PayloadIdentifier</key>
      <string>jp.example.vpn.l2tp.vpn</string>

      <key>PayloadUUID</key>
      <string>@@VPN-PAYLOAD-UUID@@</string>

      <key>PayloadDisplayName</key>
      <string>L2TP VPN</string>

      <key>PayloadEnabled</key>
      <true/>

      <!-- メニュー上のサービス名 -->
      <key>UserDefinedName</key>
      <string>@@VPN-SERVICE-NAME@@</string>

      <!-- L2TP を指定 -->
      <key>VPNType</key>
      <string>L2TP</string>

      <!-- PPP 部分(ユーザ認証+接続先) -->
      <key>PPP</key>
      <dict>
        <!-- 接続先アドレス -->
        <key>CommRemoteAddress</key>
        <string>@@SERVER-ADDRESS@@</string>

        <!-- ユーザ名 / パスワード -->
        <key>AuthName</key>
        <string>@@ACCOUNT-NAME@@</string>

        <key>AuthPassword</key>
        <string>@@ACCOUNT-PASSWORD@@</string>

        <key>AuthenticationMethod</key>
        <string>Password</string>
      </dict>

      <!-- IPsec 部分(共有シークレット) -->
      <key>IPSec</key>
      <dict>
        <key>AuthenticationMethod</key>
        <string>SharedSecret</string>

        <!-- base64 エンコードした共有シークレット -->
        <key>SharedSecret</key>
        <data>
        @@SHARED-SECRET-BASE64@@
        </data>
      </dict>

      <!-- すべてのトラフィックをトンネルする場合 -->
      <key>IPv4</key>
      <dict>
        <key>OverridePrimary</key>
        <integer>1</integer>
      </dict>

      <!-- プロキシを使わないなら空 -->
      <key>Proxies</key>
      <dict/>
    </dict>
  </array>
</dict>
</plist>

 

ここで

$$$$

UUID を作る ターミナルで:

uuidgen uuidgen

uidgen uuidgen

と2解入力し 1回目の出力を @@PROFILE-UUID@@、 2回目のの出力を @@VPN-PAYLOAD-UUID@@ にコピペする。 95788D0A-1234-4E1D-ABCD-0123456789AB みたいな文字列である。

$$$$

共有シークレットを base64 にする

$$$

共有シークレットが MySecretKey だとすると: ターミナルで echo -n ‘MySecretKey’ | base64

として 例として TXlTZWNyZXRLZXk= のような結果が出るので、それを @@SHARED-SECRET-BASE64@@ の @@SHARED-SECRET-BASE64@@ 部分に貼り付ける。

$$$

 

このテキストを L2TP-vpn.mobileconfig にして保存。(文字コード:UTF-8 拡張子:.mobileconfig) プレーンテキストだが拡張子が.mobileconfigにする。

このL2TP-vpn.mobileconfigをダブルクリック(何もおこらない)

システム設定 → デバイス管理 に 〜〜VPN というのがダウンロードされていて、まだプロファイルがインストールされてないという項目がでているはず。でてなければ、再度L2TP-vpn.mobileconfigをダブルクリックする。

[+]= 新しいプロファイルを追加なので + ボタンをクリックすると、どのファイルかと聞いてくるからL2TP-vpn.mobileconfigを選択する。macの管理者パスワードが要求される。

これでシステム管理にネットワークの下にVPNという項目があるはず。あるいはネットワークを開くとVPNという項目ができているはず。

おしまい。

ちなみに、この.mobileconfigを作成するのは面倒なんで、ChatGPTに「mac で 「ネットワーク」の下に VPN 項目が最初から無い」と質問するとTahoeの仕様だとかいってくるから、「解決してくれ」と頼めばいい。①〜⑤を伝えて.mobileconfigを作ってくれというと作成してくれるから、これを利用したほうが、ミスタイプ等で引っかからないので楽です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です