プロファイルが一方の Mac では問題なくインストールされ、別の Mac では拒否される場合、ネットワークにはまだ到達していないのだから、証明書やゲートウェイ、パスワードに落ち度はない。インストーラは受け入れられないペイロードのところで止まり、通常はどれだったかを記録する。したがって作業できる妥当な場所はプロファイルファイルとそれを作り出したものだけになり、クライアントの設定を消すことは修理ではなく証拠の破壊になる。

Mac を初期化する代わりにプロファイルを読む

.mobileconfig を書き出し、クライアントに触れる前に実際に何が入っているかを見る。

plutil -p profile.mobileconfig | head -60

VPN プロファイルは実質、役割の違う二つのペイロードであり、com.apple.vpn.managed が接続を、com.apple.dnsSettings.managed がリゾルバの設定を持つ。インストールはインストーラが拒否した最初のペイロードで止まり、その拒否はそのペイロード名とともにシステムログに残るので、どのセクションを開くべきかはログが教えてくれる。そのファイルが差分を測る基準になるため、最後に読み込みに成功したプロファイルのコピーを残しておこう。

生成ツールが黙って加えたもの

Apple Configurator 2.15 のビルド 7A23 は、DNS ペイロードの中に次のブロックを出力した。

<key>DNS</key>
<dict>
  <key>SupplementalMatchDomainsNoSearch</key>
  <integer>0</integer>
</dict>

macOS 12.1 では、そのビルドが書いたプロファイルは読み込み時に拒否された。Configurator 2.11.1 で作った接続は何の問題もなく通り、そのリリースはキーをまったく書いていなかった。DNS 辞書ごと、あるいは問題のキーだけを削除して保存し直し、ほかを変える前に同じマシンで再試行する。たいていはその一箇所の修正で修理は完了する。

このツールには、信頼する前に知っておくべき罠がある。キーを削除したあと、同じ接続を保存してもキーは戻らず、接続を一から作り直したときにだけ再び現れた。新しく生成したプロファイルは、とくに接続をまとめて一気に作った場合はすべて疑わしいものとして点検しよう。

MDM の経路は別の場所で失敗する

同じプロファイルを配布する管理サービスでは別の箇所で失敗することがあり、クライアントは VPN サービスがまったく作られていないと訴える。報告された事例では、証明書認証向けに設定されたペイロードがそれでもパスワード欄を要求しており、プレースホルダで埋めるとプロファイルは適用されたが、その値が認証に使われることはなかった。

その経路を取るなら、ダミー文字列を保存し、本物の資格情報は決して保存せず、本当の秘密はプロファイル本体の外に置く。動作するパスワードを抱えたプロファイルは鍵のように保護すべきファイルになり、それは最初の読み込み失敗よりはるかに大きな問題だ。プロファイルを配布する前にそのプレースホルダの所有者を決めておけば、後から入れ替えるべき値だと誤解されない。存在理由を一行書くだけで、半年後の論争が一つ減る。

プロファイルが実際に反映されたか確認する

読み込みの成功は動作するサービスではないので、次の順で確認する。

profiles show -type configuration
scutil --nc list
scutil --nc start "Your VPN Service"
scutil --nc status "Your VPN Service"
scutil --dns | head -20

最初のコマンドはインストール済みのペイロードを一覧し、二番目は VPN サービスが存在するかどうかを告げる。接続後に実行する最後のコマンドは、システムが実際に使うリゾルバを示す。この順に読み、サービスがなければリゾルバの話は意味を持たないのだから、鎖が切れたところで止める。プロファイルがインストール済みとして並んでいても使えるものを持たないことがあり、この手順はまさにその状態を暴くためにある。

サービス項目に使える名前がないままトンネルが上がるなら、表示名のフィールドが書き出しで失われており、治すのはクライアントでの改名ではなくプロファイルの再生成だ。リゾルバがローカルのままを指し続けるなら、DNS ペイロードは意図より深く削られている。

展開は段階的に、一度に一台の Mac で

管理対象の Mac に、同じ OS ビルドが動いている状態でインストールし、サービスが現れること、リゾルバが変わること、実際の社内リクエストが一つ通ることを別々に確認する。三つがそろってから範囲を広げる。

これらは三つの異なる結果で三つの異なる仕方で失敗するため、試験用の一台を用意する価値は十分にある。読み込めるプロファイルは動くプロファイルではなく、第一段階の一台が二種類の失敗をどちらも、他の機器群が見る前に捕まえる。

関連記事