Raspberry Pi 4 model B を Workspace ONE UEM に加入してみる
Raspberry Pi 4 model B を Workspace ONE UEM に加入してみる
Raspberry Pi は、英 Raspberry Pi 財団が開発しているシングルボードコンユーターです。
Workspace ONE UEM はバージョン 2109 にて Linux デバイスのサポートが含まれ、順次各環境へロールアウトされています。
ご利用の環境でサポートされていない場合は、サポートへお問い合わせください。
今回は Raspberry Pi 4 model B を用いて、 Workspace ONE UEM への加入を行います。
Raspberry Pi 公式ページより引用 |
サポート状況
サポートされるアーキテクチャ
Linux Kernel は様々なアーキテクチャ上で動作しますが、実行する各アプリケーションバイナリはアーキテクチャ毎に提供される必要があります。
Workspace ONE UEM ではサポートされるアーキテクチャが限定的であり、2023年5月時点では x86_64 (AMD64), ARMv5, ARMv7 がサポートされています。
参考
Requirements for Workspace ONE UEM on Linux
また、インストーラーとしては下記を確認しています。
No. | 提供形式 | x86_64 | ARMv7 | ARMv5 | 用途 |
---|---|---|---|---|---|
1 | Red Hat based (rpm) | ○ | ○ | ○ | RHEL, Fedora 等向け |
2 | Debian based (deb) | ○ | ○ | - | Debian, Ubuntu, Raspberry Pi OS 等 |
3 | その他 (tar) | ○ | ○ | ○ | その他の Linux ディストリビューション向け tar 形式での提供 |
サポートされる機能
2023年5月時点では、他のプラットフォームと比較すると限定的なサポートが行われています。
- 基本的なデバイス情報収集
- ネットワーク情報
- フルディスク暗号化状態検出
- ファイアウォール状態検出
- 一部のインストール済みパッケージ情報収集
- プロファイル
- 下記のペイロードのみ提供
- Wi-Fi ペイロード
- 資格情報ペイロード
- Puppet を用いたカスタム設定ペイロード
- センサーによるデバイス情報収集
アプリ配信や順守ポリシーは2023年5月時点ではサポートされていません。
また、カスタム設定ペイロードを利用するためには、デバイス側へ Puppet エージェントがインストールされている必要があります。
Raspberry Pi のアーキテクチャ
Raspberry Pi は、 Raspberry Pi 2 model B v1.2 以降では CPU が ARMv8 アーキテクチャで提供されています。
ARMv7 アーキテクチャと ARMv8 アーキテクチャの最大の違いとして、 ARMv8 アーキテクチャでは 64 ビット命令セット (AArch64) に対応しています。
ただし、ARMv8 アーキテクチャでは、ARMv7 (armhf) と互換性のある32 ビット命令セット (AArch32) を動作させることが可能です。
そのため、 Intelligent Hub のサポートとしては ARMv7 アーキテクチャとはなりますが、 ARMv8 アーキテクチャである Praspberry Pi 2 model B v1.2 以降についても、32 ビット互換動作として利用することが可能です。
また、インストールイメージを 32 ビットとした場合も問題なく導入可能です。
Raspberry Pi OS の利用準備
事前準備
Raspberry Pi 4 model B で動作させる Linux ディストリビューションとして、今回は Raspberry Pi 財団が開発、サポートしている Raspberry Pi OS を利用します。
2023年5月時点の Raspberry Pi OS は、Debian 11 "bullseye" (コードネーム参考情報) をベースとしています。
その他、多数の Linux ディストリビューションからも Raspberry Pi 向けのイメージが提供されており、それらを動作させることも可能です。
Raspberry Pi の利用にあたり下記が必要です。
- Raspberry Pi model 4 本体
- micro SD カード (micro SDHC/micro SDXC)
- 用途に応じた容量が必要(最低でも2GB, 4GB以上を推奨)
- 電源アダプタおよびケーブル
- 利用する Raspberry Pi に応じた供給能力を有する充電器
- Raspberry Pi 4 model B の場合、USB Type-C にて 5V/3A の供給が必要
- ネットワーク環境
- 有線、Wi-Fi 問わず
- 有線の場合、LAN ケーブルが必要
また、画面出力を実施しての操作が必要な場合は、下記も用意します。
- HDMI 入力が可能なモニター
- Raspberry Pi をモニターに接続する HDMI ケーブル
- 十分な長さが必要
- USB キーボード
- USB マウス
- GUI 操作が必要な場合
Raspberry Pi OS の提供状況
Raspberry Pi OS は以下のインストールイメージが提供されています。
- Raspberry Pi OS (32-bit)
- 32 ビット OS、デスクトップ環境を含む基本環境
- Raspberry Pi OS Lite (32-bit)
- 32 ビット OS、デスクトップ環境が含まれない軽量環境
- Raspberry Pi OS Full (32-bit)
- 32 ビット OS、デスクトップ環境を含み、 Raspberry Pi 財団が推奨するパッケージが含まれた環境環境
- Raspberry Pi OS (64-bit)
- 64 ビット OS、デスクトップ環境を含む基本環境
- Raspberry Pi OS Lite (64-bit)
- 64 ビット OS、デスクトップ環境が含まれない軽量環境
- Raspberry Pi OS (Legacy)
- Debian 10 "Buster" をベース
- 32 ビット OS、デスクトップ環境を含む基本環境
- Raspberry Pi OS Lite (Legacy)
- Debian 10 "Buster" をベース
- 32 ビット OS、デスクトップ環境が含まれない軽量環境
Raspberry Pi Imager の推奨は、汎用的に利用可能な『Raspberry Pi OS (32-bit)』とされています。
32 ビット OS であるため、Raspberry Pi 2 model B v1.1 以前でも動作するためであると考えられます。
今回の導入ではデスクトップ機能は不要であること、64 ビット OS での導入を検証するため、『Raspberry Pi OS Lite (64-bit)』を利用します。
ブート用 SD カードの作成
Raspberry Pi 財団では、ブート用 SD カードを簡単に作成可能なソフトウェアとして『Raspberry Pi Imager』を提供しています。
Raspberry Pi Imager は、Windows、macOS、Ubuntu (x86) 向けに提供されています。
今回は Raspberry Pi Imager を用いて、macOS 環境下でブート用 SD カードの作成を行います。
- Raspberry Pi Imager のダウンロード
『Raspberry Pi Imager』のダウンロードページより、利用環境に応じたインストーラーをダウンロード - Raspberry Pi Imager のインストール
ダウンロードした .dmg ファイルを開き、表示される画面で『Raspberry Pi Imager』を『Application』へドラッグ&ドロップ - Raspberry Pi Imager の起動
Launchpad からインストールした Raspberry Pi Imager を起動 - OS の選択
『OSを選ぶ』をクリック、インストールイメージを選択するため、『Raspberry Pi OS (other)』を選択 - 64 ビット OS 軽量 Raspberry Pi OS の選択
リストから『Raspberry Pi OS Lite (64-bit)』を選択 - 書き込み対象ストレージの選択
あらかじめブート用 SD カードを操作環境へ接続、『ストレージ』をクリック、ブート用 SD として利用するストレージを選択
※誤ったストレージを選択した場合、対象ストレージ内の情報が全て消去されるため注意 - オプション設定
ここまでの選択で Raspberry Pi OS の標準構成としてブート用 SD カードの作成が可能ですが、セットアップを簡略化するオプションが歯車アイコンから設定可能です。
今回はオプションを構成していきます。 - オプション設定の実施
オプション設定として、下記が設定可能です。- ホスト名設定
- SSH有効化および認証設定
- 管理者ユーザー作成
- Wi-Fi接続情報設定
- ロケール設定
モニターを用いない場合、SSH 設定を実施しておく必要があります。
今回は以下のように設定しています。 - Raspberry Pi OS 書き込みの開始
『書き込む』をクリック - ストレージデータ消去の確認
選択したストレージの情報が全て消去されることを確認、『はい』をクリック - macOS システム変更の許可
システムへの変更を行うため、管理者アカウントでの認証を実施 - ブート用 SD カード作成完了
完了画面を確認、操作環境から SD カードを取り外す
Raspberry Pi の起動
作成が完了したブート用 SD カードを Raspberry Pi 4 model B へ挿入後、電源アダプタからの給電が開始されると Raspberry Pi OS が起動します。Raspberry Pi は標準では電源スイッチがないため、電源アダプタからの電源供給が開始されると自動的に起動を開始します。
Raspberry Pi 環境へのログイン
今回は有線 LAN ケーブルを用いて、作業環境と同じネットワークに接続しています。
Raspberry Pi OS では、標準で avahi-daemon が起動しているため、操作環境が対応していればマルチキャストDNSによる接続が可能です。
接続環境から下記の SSH コマンドを実行して接続を開始します。
$ ssh <username>@<hostname>.local
初回接続時は、下記のようなメッセージが表示されます。
『yes』を入力して Enter キーを押下します。
The authenticity of host '<hostname>.local (<IP Addr>)' can't be established.
ED25519 key fingerprint is SHA256:qDDyNwjJ/O2LDh3k9SvUj/NlvlwZB1NtqytZAdifvOs.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])?
また、同じホスト名で再インストールを実施した場合に接続すると、下記のようなメッセージが表示される場合があります。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ED25519 key sent by the remote host is
SHA256:bm5nPn5DTpYwaeG1s78mFOr231bZQAiXxxWYw7OgOM8.
Please contact your system administrator.
Add correct host key in /Users/<username>/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/<username>/.ssh/known_hosts:2
Host key for <hostname>.local has changed and you have requested strict checking.
Host key verification failed.
これは、前回接続した際の SSH のホスト鍵と今回接続して受け取った SSH ホスト鍵が異なるため、Man-in-the-middle (MITM) 攻撃が生じている可能性があることを警告するメッセージです。
接続先に誤りがないことを確認して、下記コマンドを実行することで、古いサーバー情報を削除することが可能です。
$ ssh-keygen -R <hostname>.local
# Host <hostname>.local found: line 2
/Users/<username>/.ssh/known_hosts updated.
Original contents retained as /Users/<username>/.ssh/known_hosts.old
Workspace ONE UEM への加入
事前準備
Workspace ONE UEM への加入にあたり、以下が必要です。
- Intelligent Hub for Linux インストーラー
- Customer Connect または Partner Connect のアカウント
- My Workspace ONE へのログインに利用
Intelligent Hub のダウンロード
My Workspace ONE のログインについては、こちらのKBを参考に実施してください。
ログイン後、左上のメニューから下記を選択します。
Software > Device Agents
一覧ですぐに見つからない場合は、キーワード検索による絞り込みが可能です。
今回は利用するプラットフォームに合わせ『VMware Workspace ONE Intelligent Hub for Linux 23.04 {ARM7 Debian based}』を選択します。
利用規約に同意するチェックを入れ、『ACCEPT』をクリックします。
自動的にダウンロードが開始されるため、任意の場所へ保存します。
Intelligent Hub のインストール
Raspberry Pi 4 model B 上の環境で、 Intelligent Hub for Linux のインストールを行います。
ダウンロードした Intelligent Hub for Linux のインストーラーを Raspberry Pi 4 model B のストレージに保存します。
今回は scp コマンドにて操作環境からコピーを行うため、操作環境にて以下を実施します。
$ scp Downloads/workspaceone-intelligent-hub-arm7-23.04.0.3.deb <username>@<hostname>.local:
Enter passphrase for key '/Users/<username>/.ssh/id_rsa':
workspaceone-intelligent-hub-arm7-23.04.0.3.d 100% 6705KB 48.4MB/s 00:00
今回は依存関係パッケージを取得可能な apt を用います。
$ sudo apt update
$ sudo apt install ./workspaceone-intelligent-hub-arm7-23.04.0.3.deb
複数の依存関係パッケージが提示されるため、内容を確認して『y』を入力、Enter キーを押下してインストールを開始します。
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'workspaceone-intelligent-hub:armhf' instead of './workspaceone-intelligent-hub-arm7-23.04.0.3.deb'
The following packages were automatically installed and are no longer required:
libbluetooth3 libmm-glib0 libndp0 libnm0 libpcap0.8 libteamdctl0
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
dnsmasq-base:armhf fonts-lato gcc-10-base:armhf javascript-common krb5-locales libaudit1:armhf libblkid1:armhf libbluetooth3:armhf
libbrotli1:armhf libbsd0:armhf libc6:armhf libcap-ng0:armhf libcom-err2:armhf libcrypt1:armhf libcurl3-gnutls:armhf libdb5.3:armhf
libdbus-1-3:armhf libedit2:armhf libffi7:armhf libfribidi0:armhf libgcc-s1:armhf libgcrypt20:armhf libgdbm-compat4:armhf libgdbm6:armhf
libglib2.0-0:armhf libglib2.0-data libgmp10:armhf libgnutls30:armhf libgpg-error-l10n libgpg-error0:armhf libgssapi-krb5-2:armhf
libgudev-1.0-0:armhf libhogweed6:armhf libidn2-0:armhf libjansson4:armhf libjs-jquery libk5crypto3:armhf libkeyutils1:armhf
libkrb5-3:armhf libkrb5support0:armhf libldap-2.4-2:armhf liblz4-1:armhf liblzma5:armhf libmbim-glib4:armhf libmd0:armhf
libmm-glib0:armhf libmnl0:armhf libmount1:armhf libndp0:armhf libnetfilter-conntrack3:armhf libnettle8:armhf libnewt0.52:armhf
libnfnetlink0:armhf libnghttp2-14:armhf libnm0:armhf libnsl2:armhf libnspr4:armhf libnss-nis:armhf libnss-nisplus:armhf libnss3:armhf
libnss3-tools:armhf libp11-kit0:armhf libpam-modules:armhf libpam-systemd:armhf libpam0g:armhf libpcap0.8:armhf libpcre2-8-0:armhf
libpcre3:armhf libpolkit-gobject-1-0:armhf libpsl5:armhf libqmi-glib5:armhf libreadline8:armhf librtmp1:armhf libruby2.7:armhf
libsasl2-2:armhf libsasl2-modules:armhf libsasl2-modules-db:armhf libselinux1:armhf libslang2:armhf libsqlite3-0:armhf libssh2-1:armhf
libssl1.1:armhf libsystemd0:armhf libtasn1-6:armhf libteamdctl0:armhf libtinfo6:armhf libtirpc3:armhf libudev1:armhf libunistring2:armhf
libuuid1:armhf libyaml-0-2:armhf libzstd1:armhf modemmanager:armhf network-manager:armhf ppp:armhf rake ruby:armhf ruby-minitest
ruby-net-telnet ruby-power-assert ruby-rubygems ruby-test-unit ruby-xmlrpc ruby2.7:armhf rubygems-integration shared-mime-info
uuid-runtime xdg-user-dirs zlib1g:armhf
Suggested packages:
apache2 | lighttpd | httpd glibc-doc:armhf locales:armhf rng-tools:armhf gdbm-l10n:armhf gnutls-bin:armhf krb5-doc:armhf krb5-user:armhf
libpam-doc:armhf libsasl2-modules-gssapi-mit:armhf | libsasl2-modules-gssapi-heimdal:armhf libsasl2-modules-ldap:armhf
libsasl2-modules-otp:armhf libsasl2-modules-sql:armhf libteam-utils:armhf isc-dhcp-client:armhf ri:armhf ruby-dev:armhf bundler
Recommended packages:
usb-modeswitch:armhf puppet-agent:armhf osquery:armhf ruby-full:armhf
The following packages will be REMOVED:
dnsmasq-base modemmanager network-manager ppp
The following NEW packages will be installed:
dnsmasq-base:armhf fonts-lato gcc-10-base:armhf javascript-common krb5-locales libaudit1:armhf libblkid1:armhf libbluetooth3:armhf
libbrotli1:armhf libbsd0:armhf libc6:armhf libcap-ng0:armhf libcom-err2:armhf libcrypt1:armhf libcurl3-gnutls:armhf libdb5.3:armhf
libdbus-1-3:armhf libedit2:armhf libffi7:armhf libfribidi0:armhf libgcc-s1:armhf libgcrypt20:armhf libgdbm-compat4:armhf libgdbm6:armhf
libglib2.0-0:armhf libglib2.0-data libgmp10:armhf libgnutls30:armhf libgpg-error-l10n libgpg-error0:armhf libgssapi-krb5-2:armhf
libgudev-1.0-0:armhf libhogweed6:armhf libidn2-0:armhf libjansson4:armhf libjs-jquery libk5crypto3:armhf libkeyutils1:armhf
libkrb5-3:armhf libkrb5support0:armhf libldap-2.4-2:armhf liblz4-1:armhf liblzma5:armhf libmbim-glib4:armhf libmd0:armhf
libmm-glib0:armhf libmnl0:armhf libmount1:armhf libndp0:armhf libnetfilter-conntrack3:armhf libnettle8:armhf libnewt0.52:armhf
libnfnetlink0:armhf libnghttp2-14:armhf libnm0:armhf libnsl2:armhf libnspr4:armhf libnss-nis:armhf libnss-nisplus:armhf libnss3:armhf
libnss3-tools:armhf libp11-kit0:armhf libpam-modules:armhf libpam-systemd:armhf libpam0g:armhf libpcap0.8:armhf libpcre2-8-0:armhf
libpcre3:armhf libpolkit-gobject-1-0:armhf libpsl5:armhf libqmi-glib5:armhf libreadline8:armhf librtmp1:armhf libruby2.7:armhf
libsasl2-2:armhf libsasl2-modules:armhf libsasl2-modules-db:armhf libselinux1:armhf libslang2:armhf libsqlite3-0:armhf libssh2-1:armhf
libssl1.1:armhf libsystemd0:armhf libtasn1-6:armhf libteamdctl0:armhf libtinfo6:armhf libtirpc3:armhf libudev1:armhf libunistring2:armhf
libuuid1:armhf libyaml-0-2:armhf libzstd1:armhf modemmanager:armhf network-manager:armhf ppp:armhf rake ruby:armhf ruby-minitest
ruby-net-telnet ruby-power-assert ruby-rubygems ruby-test-unit ruby-xmlrpc ruby2.7:armhf rubygems-integration shared-mime-info
uuid-runtime workspaceone-intelligent-hub:armhf xdg-user-dirs zlib1g:armhf
0 upgraded, 110 newly installed, 4 to remove and 0 not upgraded.
Need to get 37.4 MB/44.3 MB of archives.
After this operation, 118 MB of additional disk space will be used.
Do you want to continue? [Y/n]
提案パッケージとして Web サーバーの apache2 が含まれていますが、これは Workspace ONE UEM の加入方式として、Web ブラウザを用いた加入があるためです。
今回はコマンドによる加入を実施するため、 apache2 は導入せずにインストールを行います。
また、いくつかのパッケージ名に armhf が付与されていますが、これは 32 ビットプログラムを実行させるため、AArch32 命令セット用のパッケージが指定されているためとなります。
Workspace ONE UEM への加入
Intelligent Hub for Linux は、『/opt/vmware/ws1-hub』へインストールが行われます。
このパスは PATH に追加されないため、加入用コマンドを実行するためにフォルダを移動します。
なお、通常は Intelligent Hub for Linux のコマンドは用いないため、 PATH へ追加する必要はありません。
$ cd /opt/vmware/ws1-hub/bin/
下記のコマンドを参考に加入を開始します。
$ sudo ./ws1HubUtil enroll --user <enroll username> --password <enroll password> --group <enroll Group ID> --server https://<enroll device server FQDN, ex. dsXXX.awmdm.com>
加入が完了すると下記の文字列が出力されます。
Workspace ONE Intelligent Hub enrollment completed successfully.
For privacy related information regarding this product, see PrivacyPolicy.txt
指定するオプションは公式ドキュメントを参考にしてください。
加入状態の確認
Workspace ONE UEM コンソール デバイス表示
加入済みとして表示されています。
ファイアウォールステータスが不明と表示されていますが、デバイス側では ufw を有効化しています。
2023年5月時点の制約として、ufw の状態を検出できないようです。
なお、リスト表示では Linux デバイスはすべて Linux 公式マスコットのタックスくんをイメージしたアイコンで表示されています。
ディストリビューション名はリスト表示に表示されるため、参考として Ubuntu デバイスを加入させたところ、一覧からディストリビューションを見分けることが可能でした。
アプリ情報
OS へインストールされているパッケージのうち、ごく一部が表示されます。
Raspberry Pi OS Lite では、標準で Puppet が含まれているため、追加操作不要でカスタム設定ペイロードを利用することが可能です。
Workspace ONE UEM スマートグループ
Linux デバイスに対するスマートグループの条件について確認してみました。
『プラットフォームと OS』では『Linux』が選択可能です。
Linux Kernel バージョンの選択が可能です。
ただし、2023年5月時点では指定可能なバージョンの候補として 3.19.0 から 5.19.0 が表示されており、今回導入した Raspberry Pi OS の Linux Lernel 6.1.X は選択出来ませんでした。
また、その他の Linux デバイス固有の条件として『モデル (レガシー)』が利用可能です。
多くのメジャーなディストリビューション名による絞り込みが可能です。
ただし、2023年5月時点では VMware 社が開発、提供している Photon OS は含まれていませんでした。
デバイス側サービス情報
Intelligent Hub for Linux のサービスとして、『ws1-hub.service』を確認しました。
サービスステータスの確認結果は下記の通りです。
$ sudo systemctl status ws1-hub.service
● ws1-hub.service - Workspace ONE Intelligent Hub
Loaded: loaded (/etc/systemd/system/ws1-hub.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2023-05-07 15:22:35 JST; 20s ago
Main PID: 1041 (ws1HubAgent)
Tasks: 12 (limit: 3933)
CPU: 21.824s
CGroup: /system.slice/ws1-hub.service
└─1041 /opt/vmware/ws1-hub/bin/ws1HubAgent
May 07 15:22:35 rp-64-uem systemd[1]: Started Workspace ONE Intelligent Hub.
おわりに
今回は Raspberry Pi を Workspace ONE UEM へ加入させるための流れと、加入後に確認できる情報について記載しました。
Intelligent Hub for Linux を導入する日本語の情報はあまり多くないように見受けられたため、この記事が参考になればと思います。
コメント
コメントを投稿