こんにちは、ひろかずです。
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サポートサイト]にログインする権限を有していること
工程
- AWS環境にec2 on macOSを起動する
- ec2 on macOSをActive Directoryに参加させる
- ec2 on macOSをJamfに登録する
- ec2 on macOSにNetskopeを配信する
- 動作確認
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でログイン
- SSHでログインしたら、以下コマンドを実行してパスワードを設定
- 参考ドキュメント - [GUI を使用して amazon EC2 Mac インスタンスにアクセスするにはどうすればよいですか?]
% 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
の部分と同じにすること
- TENNANT_NAMEの部分は、Netskope管理画面のURLの
- プロバイダバンドル識別子は、
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
の部分と同じにすること
- TENNANT_NAMEの部分は、Netskope管理画面のURLの
- パラメータ5は、事前に控えておいたOrganization IDの値を設定
- パラメータ6は、
peruserconfig
と設定
- パラメータ4は、
- [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がないときにさっと試せるのはありがたいですね
今日はここまでです
お疲れ様でした