macOS on EC2にJamfからNetskopeをMulti-User Modeでインストールする

こんにちは、ひろかずです。

macOSにNetskopeをMulti-User Modeでインストールしたことがなかったので一筆書きます。

ざっくり構成

tl;dr的な何か

  • 基本的には、macOSをAD Joinして、Jamfにenrollし、ドキュメントのとおりにNetskopeを配信するだけです
  • 本方式でNetskopeを導入する場合、macOSは常時Active Directoryサーバーと疎通できる必要があります
  • macOS on EC2はクセが強く、特にJamfによる継続管理の際は注意が必要です。検証用途がお勧めだと思います。

参考ドキュメント

前提条件

  • macOSから常時疎通できるネットワークに、自身が管理しているActive Directory サーバーがあること
  • 自身が管理しているJamf環境があること
  • 自身が管理しているNetskope環境があること
  • 自身が管理しているAWS環境があること
  • [Netskopeサポートサイト]にログインする権限を有していること

工程

  1. AWS環境にec2 on macOSを起動する
  2. ec2 on macOSをActive Directoryに参加させる
  3. ec2 on macOSをJamfに登録する
  4. ec2 on macOSにNetskopeを配信する
  5. 動作確認

1. AWS環境にec2 on macOSを起動する

1-1. 専有ホストの用意

  • AWSのEC2管理画面のナビゲーションペインにて[専有ホスト]を選択し、[Dedicated Hostsを割り当て]を選択
  • インスタンスファミリーを[mac1]とし、インスタンスタイプを[mac1.metal]と設定します
  • アベイラビリティゾーンに専有ホストを配置するアベイラビリティゾーンを指定します

  • 作成された専有ホストはすぐに利用可能です
    • おかしいなと思った時は、ステータスが[Available]であるかを確認しましょう

1-2. macOSインスタンスの起動

  • EC2管理画面からインスタンスを起動します
  • 2022年3月3日現在、OSは以下の3種から選択可能
    • 今回の検証では、MontereyとBig Surを使用しました

  • インスタンスファミリーは、[mac1]を選択

  • インスタンスを配置するサブネットは、専有ホストを配置したAvailability Zoneを選択

  • ホストのプルダウンを選択して、作成した専有ホストを選択
    • 専有ホストで[自動配置]を有効にしている場合は、[自動配置を使用する]を指定することもできます

  • あとはナビゲーション通りに進めていきます
    • 初期ログインはSSHのみであるため、秘密鍵の設定は忘れずに行ってください
    • セキュリティグループで解放するポートは、SSHのみです

1-3. 起動したmacOSにてGUIでログイン

% sudo defaults write /var/db/launchd.db/com.apple.launchd/overrides.plist com.apple.screensharing -dict Disabled -bool false
% sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.screensharing.plist
% sudo /usr/bin/dscl . -passwd /Users/ec2-user
New Password:
  • 手元の環境がmacOSの場合、ログイン対象のmacOSへ以下コマンドでSSH接続する
ssh -i /PATH/TO/YOUR-PRIVATE-KEY.pem -L 5900:localhost:5900 ec2-user@x.x.x.x
  • Finderの[移動]-[サーバーへ接続]を選択

  • 以下接続先を指定して[接続]ボタンを選択
vnc://localhost:5900

  • 先ほど設定したパスワードを入力して、[サインイン]を選択

  • 同じパスワードでログインします

2. ec2 on macOSをActive Directoryに参加させる

  • 画面左上のリンゴマークを選択し、[System Preferences] – [Network]を選択
  • 緑のインジケータが点灯しているインタフェースを選択し、[Advanced]を選択

  • Active DirectoryサーバーのIPアドレスとドメイン名を入力し、[OK]を選択
    • 戻った画面で[Apply]を忘れずに選択

  • [Users & Groups]内の[Login Option]を選択し、Network Accout Serverの[Join]を選択
    • 【Montereyの場合】Display Login windows as を[Name and Password]にチェックすること

  • Server蘭にActive DirectoryサーバーのIPアドレスを入力し、登録するコンピュータ名とコンピュータをActive Directoryに登録できる権限を有するADユーザーのIDとパスワードを入力して、[OK]を選択

  • Active Directoryへの参加ができた場合、緑のインジケータが表示されます

3. ec2 on macOSをJamfに登録する

  • ブラウザを起動し、JamfのEnroll URLに接続
https://YOUR-TENANT-NAME.jamfcloud.com/enroll
  • アサインするユーザーを入力し、[OK]を選択

  • MDMプロファイルのダウンロード確認画面が表示されるので、[Allow]を選択

  • リンゴマークを選択し、[System Preferences]-[Profiles]を選択

  • [Install]を選択

  • MDM Profileが[Verified]になっていることを確認

4. ec2 on macOSにNetskopeを配信する

  • [Netskope Support サイト]にログインし、macOSのパッケージとインストールスクリプトをダウンロード

4-1. 構成プロファイルの作成

  • Jamf管理画面にログインし、[コンピュータ] – [構成プロファイル]を選択

4-1-1. Netskope Auto Approval of Network Extension

  • [一般]では以下のように設定

  • [システム拡張機能]では以下のように設定して、[保存]を選択
    • チーム識別子は、以下文字列を登録
      • 24W52P9M7W
    • 許可された拡張機能として、以下文字列を登録
      • com.netskope.client.Netskope-Client.NetskopeClientMacAppProxy
      • com.netskope.client.Netskope-Client.NetskopeClientMacDNSProxy

  • [保存]を選択

4-1-2. Netskope Auto Approval of VPN

  • [一般]では以下のように設定

  • [VPN]では以下のように設定する
    • VPNタイプは、[Per-App VPN]を選択

  • AppごとのVPN接続タイプは、[Custom SSL]を選択
  • 識別子は、 com.netskope.client.Netskope-Client と入力
  • サーバは、 gateway-TENNANT_NAME.goskope.com と入力
    • TENNANT_NAMEの部分は、Netskope管理画面のURLの TENNANT_NAME.goskope.com の部分と同じにすること
  • プロバイダバンドル識別子は、 com.netskope.client.Netskope-Client と入力

  • プロバイダタイプを[App-proxy]と選択
  • [全ネットワークを含める]を選択
  • プロバイダ指定の要件に以下文字列を入力
anchor apple generic and identifier "com.netskope.client.Netskope-Client" and (certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = "24W52P9M7W")
  • [ユーザが温度万灯のVPN設定を無効にするのを禁止]を選択

  • [保存]を選択

4-1-3. Netskope Root and Tenant Certificates

  • Netskope管理画面にログインし、[Settings] – [Security Cloud Platform] – [MDM Distributions]を選択
  • [DOWNLOAD NETSKOPE ROOT CERTIFICATE]と[DOWNLOAD NETSKOPE INTERMEDIATE CERTIFICATE]をそれぞれ選択し、証明書をダウンロード

  • Jamf管理画面の[コンピュータ] – [構成プロファイル]にて[+新規]を選択
  • [一般]では以下のように設定

  • [証明書]では、ダウンロードした証明書をそれぞれインポートし、以下のように設定

  • [保存]を選択

4−1−4. 作成した構成プロファイルを配信

  • 4−1−[1-3]で作成した構成プロファイルの[scope]を選択し、[+追加]を選択
    • 配信対象のmacOSを選択

  • 全ての構成プロファイルが完了していることを確認

4-2. スクリプトの登録

  • [Netskopeサポートサイト]にログインし、[JAMFScripts.zip]をダウンロード

  • ダウンロードした、JAMFScripts.zipを展開

  • Jamf管理画面右上の[ギアアイコン]を選択し、[コンピュータの管理] – [スクリプト]を選択

4-2-1. インストールスクリプトの登録

  • [+新規]を選択
  • [一般]には、以下のように登録

  • [スクリプト]には、事前に[Netskopeサポートサイト]からダウンロードしたスクリプトのうち、JAMFScript_MMMYYYY.sh の内容を貼り付ける

  • [保存]を選択

4-2-2. アンインストールスクリプトの登録

  • [+新規]を選択
  • [一般]には、以下のように登録

  • [スクリプト]には、事前に[Netskopeサポートサイト]からダウンロードしたスクリプトのうち、jamfuninstall_vX.sh の内容を貼り付ける

  • [保存]を選択

4-3. インストールパッケージの登録

  • [Netskopeサポートサイト]にログインし、macOSのインストールパッケージをダウンロード

  • Jamf管理画面右上の[ギアアイコン]を選択し、[コンピュータの管理] – [パッケージ]を選択

  • [ファイルを選択]を選択し、事前にダウンロードした、macOSのインストールパッケージを選択する

  • [保存]を選択

4-4. インストールパッケージの配信

  • Netskope管理画面にログインし、[Settings] – [Security Cloud Platform] – [MDM Distributions]を選択
    • Organization IDの値を控えておく

  • Jamf管理画面の[コンピュータ] – [ポリシー]を選択し、[+新規]を選択

  • [General]は、以下のように設定

  • [パッケージ]は、先ほど登録したインストールパッケージを選択

  • [スクリプト]は、以下のように設定
    • パラメータ4は、 addon-TENANT_NAME.goskope.comと設定
      • TENNANT_NAMEの部分は、Netskope管理画面のURLの TENNANT_NAME.goskope.com の部分と同じにすること
    • パラメータ5は、事前に控えておいたOrganization IDの値を設定
    • パラメータ6は、 peruserconfig と設定

  • [Scope]を選択し、配信対象のmacOSを選択

  • [保存]を選択

5. 動作確認

5-1. Netskopeの配信

  • ec2-userでログインしているmacOSを ログアウト する
  • 再度ec2-userでログインして、Netskopeアイコンが表示されることを確認
    • 表示されるまで数分かかることがあります
  • アイコン表示はグレーアウトしたままで問題ありません
    • ec2-userは、Netskopeテナントにプロビジョニングされているユーザーではないため、Netskopeは動作しません

5-2. ドメインユーザーでログインし、Netskopeが動作することを確認

  • ec2-userでログインしているmacOSを ログアウト する
  • ドメインユーザーでログインし、Netskopeアイコンが以下のように表示されることを確認
    • Netskopeアイコンを選択し、[Configuration]を選択した時に、以下のように表示されること

5-3. 別のドメインユーザーでログインし、Netskopeが動作することを確認

  • ec2-userでログインしているmacOSを ログアウト する
  • 別のドメインユーザーでログインし、Netskopeアイコンが以下のように表示されることを確認
    • Netskopeアイコンを選択し、[Configuration]を選択した時に、以下のように表示されること

おまけ

常にActive Directoryサーバーとの疎通が必要

  • AD JoinedのmacOSに対して、Netskopeをマルチユーザーモードでインストールした場合、常にActive Directoryサーバーとの疎通が必要です
    • Active Directoryサーバーとの疎通が切れた場合、数秒後にNetskope Agentは無効化されます
    • Active Directoryサーバーとの疎通が回復すると、数秒後にNetskope Agentは有効化されます

ここが辛いよec2 on macOS

  • 再起動すると5割くらいの確率でインスタンスのステータスが0/2になる
    • Stop/Startの方が安定する
    • ステータスが0/2の状態で停止した場合、強制停止がデフォ
    • 強制停止後に起動できるようになるまで、だいたい30分かかる
  • macOSインスタンスを削除しても、専有ホストが24時間以上Pending
    • とっとと新しい専有ホストをアサインした方が良い
  • 作成した専有ホストは、24時間解約できない
  • 専有ホストを移動すると、シリアル番号が変わるので、Jamfでの管理に影響がでる
    • この時点で長期管理運用には向かない

おわりに

macOS on EC2にJamfからNetskopeをマルチユーザーモードで配信することができました

手元にmacOSがないときにさっと試せるのはありがたいですね

今日はここまでです

お疲れ様でした

コメントを残す

メールアドレスが公開されることはありません。