В одном посте я прочитал про инструмент именуемый, как Headwind MDM
— это Open-Source
платформа для управления корпоративными Android
-устройствами. Тема интересная, себе пометил что хочу ее разобрать и возможно применять на рабочем месте, как когда-то давным-давно также узнал про инструмент удаленного управления Windows
системами, кто не знает это я про Aspia
говорю.
Сегодня я покажу каким образом можно в локальной сети управлять смартфонами (у меня цель управлять PDA
терминалами (Zebra TC210K)
на складе и производстве), подключенными к офисному Wi-Fi
, что подразумевается, как управление:
Устанавливать только по ПО что разрешено
Блокировать функции смартфона
Собирать статистику.
В роли подопытного смартфона выступит то что есть в наличии для теста, а именно Honor 5C.
Системные требования:
(минимальные требования к серверу)
OS: Ubuntu 22.04 Server
IP&DNS: Статический
RAM: 4Gb
CPU: 2
SSD: 20Gb
Шаг №1:
Создаю VM (виртуальную машину)
с учетом минимальных требований к серверу:
OS: Ubuntu 22.04 Server
RAM: 4Gb
CPU: 1 sockets (2cores)
SSD: 50Gb
Шаг №2:
Обновляю установленную систему до самого последнего релиза в рамках текущего LTS
релиза для Ubuntu 22.04 Server/Desktop:
ekzorchik@srv-home:~$ sudo nano /etc/update-manager/release-upgrades [DEFAULT] Prompt=never ekzorchik@srv-home:~$ sudo rm -Rf /var/lib/apt/lists ekzorchik@srv-home:~$ sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y && sudo apt-get autoremove -y ekzorchik@srv-home:~$ sudo reboot ekzorchik@srv-home:~$ uname -a && lsb_release -a Linux srv-home 5.15.0-105-generic #115-Ubuntu SMP Mon Apr 15 09:52:04 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.4 LTS Release: 22.04 Codename: jammy ekzorchik@srv-home:~$
Шаг №3:
Настройки локали прописываю следующим образом:
sudo rm -f /etc/localtime sudo ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime sudo locale-gen en_US.UTF-8 echo "LC_ALL="en_US.UTF-8"" | sudo -s tee /etc/default/locale echo "LANG="en_US.UTF-8"" | sudo tee -a /etc/default/locale echo "LANGUAGE="en.US.UTF-8"" | sudo tee -a /etc/default/locale
Шаг №4:
Синхронизируем время опираясь на заметку: "Настраиваем службу времени в Ubuntu 22.04 Server"
Шаг №5:
Устанавливаю пакеты перед тем как запустить установку:
ekzorchik@srv-home:~$ sudo apt install -y aapt tomcat9 postgresql vim certbot unzip net-tools unzip
Шаг №6:
Настраиваю сервис базы данных Postgres:
ekzorchik@srv-us2204mdm:~$ su - postgres Password: su: Authentication failure ekzorchik@srv-us2204mdm:~$ sudo su - postgres postgres@srv-us2204mdm:~$ psql psql (14.11 (Ubuntu 14.11-0ubuntu0.22.04.1)) Type "help" for help. postgres=# postgres=# CREATE USER us_hmdm WITH PASSWORD 'Aa1234567aA'; CREATE ROLE postgres=# CREATE DATABASE db_hmdm WITH OWNER=us_hmdm; CREATE DATABASE postgres=# \q postgres@srv-us2204mdm:~$ exit logout ekzorchik@srv-us2204mdm:~$
Шаг №7:
Скачиваю, распаковываю и устанавливаю:
ekzorchik@srv-us2204mdm:~$ wget https://h-mdm.com/files/hmdm-5.25-install-ubuntu.zip ekzorchik@srv-us2204mdm:~$ unzip hmdm-5.25-install-ubuntu.zip ekzorchik@srv-us2204mdm:~$ ls -l hmdm-install/hmdm_install.sh -rwxr-xr-x 1 ekzorchik ekzorchik 18786 Feb 16 09:51 hmdm-install/hmdm_install.sh ekzorchik@srv-us2204mdm:~$ cd hmdm-install/ ekzorchik@srv-us2204mdm:~/hmdm-install$ sudo ./hmdm_install.sh Please choose the installation language (en/ru) [en]: ru PostgreSQL database setup ========================= Make sure you've installed PostgreSQL and created the database. If you didn't create a database yet, please click Ctrl-C to break, then execute the following commands: ------------------------- su postgres psql CREATE USER hmdm WITH PASSWORD 'topsecret'; CREATE DATABASE hmdm WITH OWNER=hmdm; \q exit ------------------------- PostgreSQL host [localhost]: localhost PostgreSQL port [5432]: 5432 PostgreSQL database [hmdm]: db_hmdm PostgreSQL user [hmdm]: us_hmdm PostgreSQL password: Aa1234567aA File storage setup ================== Please choose where the files uploaded to Headwind MDM will be stored If the directory doesn't exist, it will be created ##### FOR TOMCAT 9, USE SANDBOXED DIR: /var/lib/tomcat9/work ##### Headwind MDM storage directory [/var/lib/tomcat9/work]: /var/lib/tomcat9/work нажимаю клавишу "ENTER" Please choose the directory where supply scripts will be located. Headwind MDM scripts directory [/opt/hmdm]: /opt/hmdm нажимаю клавишу "ENTER" Web application setup ===================== Headwind MDM requires access from Internet Please assign a public domain name to this server Protocol (http|https) [https]: изменяю на http и нажимаю клавишу "ENTER" Domain name or public IP (e.g. example.com): 192.168.10.13 и нажимаю клавишу "ENTER" Port (e.g. 8080, leave empty for default ports 80 or 443): нажимаю клавишу "ENTER" Project path on server (e.g. /hmdm) or ROOT: ROOT и нажимаю клавишу "ENTER" To enable password recovery function, Headwind MDM must be connected to SMTP. Password recovery is an optional but recommended feature. Setup SMTP credentials [Y/n]?: выбираю "n" и нажимаю клавишу "ENTER" Ready to install! Location on server: /var/lib/tomcat9/work URL: http://192.168.10.13 Is this information correct [Y/n]? Подтверждаю выбор символом "Y" и нажимаю клавишу "ENTER" Waiting for undeploying the previous version .......... Tomcat config file created: /var/lib/tomcat9/conf/Catalina/localhost/ROOT.xml Deploying hmdm-5.25.2-os.war to Tomcat: /var/lib/tomcat9/webapps/ROOT.war ........................................................................................................................ ERROR: failed to deploy WAR file! Please check /var/lib/tomcat9/logs/catalina.out for details. ekzorchik@srv-home:~/hmdm-install$ Так почему не установилось. Запустил еще раз и успешно ekzorchik@srv-us2204mdm:~/hmdm-install$ sudo ./hmdm_install.sh Please choose the installation language (en/ru) [en]: ru PostgreSQL database setup ========================= Make sure you've installed PostgreSQL and created the database. If you didn't create a database yet, please click Ctrl-C to break, then execute the following commands: ------------------------- su postgres psql CREATE USER hmdm WITH PASSWORD 'topsecret'; CREATE DATABASE hmdm WITH OWNER=hmdm; \q exit ------------------------- PostgreSQL host [localhost]: localhost PostgreSQL port [5432]: 5432 PostgreSQL database [hmdm]: db_hmdm PostgreSQL user [hmdm]: us_hmdm PostgreSQL password: Aa1234567aA The database is already setup. To re-deploy Headwind MDM, the database needs to be cleared. Clear the database? ALL DATA WILL BE LOST! Type "erase" to clear the database and continue setup: набираем "erase" и нажимаю клавишу "ENTER"
и дальше все тоже самое что и выше при первом запуске инсталлятора и установка проходит успешно:
Ready to install! Location on server: /var/lib/tomcat9/work URL: http://192.168.10.13 Is this information correct [Y/n]? y Waiting for undeploying the previous version .......... Tomcat config file created: /var/lib/tomcat9/conf/Catalina/localhost/ROOT.xml Deploying hmdm-5.25.2-os.war to Tomcat: /var/lib/tomcat9/webapps/ROOT.war ........... Deployment successful, initializing the database... ====================================== Minimal installation of Headwind MDM has been done! At this step, you can open in your web browser: http://192.168.10.13:8080 Login: admin:admin ====================================== Setup HTTPS via LetsEncrypt [Y/n]?: указываю "n" и нажимаю клавишу "ENTER" Setup HTTPS via LetsEncrypt [Y/n]?: n
начинается процесс скачивания файлов с официального сервера:
Move required APKs from h-mdm.com to your server [Y/n]?: Y Downloading https://h-mdm.com/files/hmdm-5.26-os.apk... --2024-04-25 14:02:54-- https://h-mdm.com/files/hmdm-5.26-os.apk Downloading https://h-mdm.com/files/pager-1.02.apk... --2024-04-25 14:03:00-- https://h-mdm.com/files/pager-1.02.apk Downloading https://h-mdm.com/files/phoneproxy-1.02.apk... --2024-04-25 14:03:03-- https://h-mdm.com/files/phoneproxy-1.02.apk Downloading https://h-mdm.com/files/LauncherRestarter-1.04.apk... --2024-04-25 14:03:06-- https://h-mdm.com/files/LauncherRestarter-1.04.apk ====================================== Headwind MDM installation is completed! To access your web panel, open in the web browser: http://192.168.10.13 Login: admin:admin ====================================== ekzorchik@srv-us2204mdm:~/hmdm-install$
Отлично, вижу, что установка и скачивание необходимых файлов успешно завершена.
Шаг №8:
Проверяю что система слушает порты развернутого сервиса выше:
ekzorchik@srv-us2204mdm:~/hmdm-install$ cd ~ ekzorchik@srv-us2204mdm:~$ sudo netstat -tulpn Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 836/systemd-resolve tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 5190/postgres tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 918/sshd: /usr/sbin tcp6 0 0 :::8080 :::* LISTEN 54552/java tcp6 0 0 192.168.10.13:31000 :::* LISTEN 54552/java tcp6 0 0 :::22 :::* LISTEN 918/sshd: /usr/sbin udp 0 0 127.0.0.53:53 0.0.0.0:* 836/systemd-resolve udp 0 0 192.168.10.13:68 0.0.0.0:* 834/systemd-network ekzorchik@srv-us2204mdm:~$
Шаг №9:
Установка выше завершена, теперь могу обратиться по IP&DNS
адресу сервера выше к сервису Headwind MDM
, где URL
будет: http://192.168.10.13:8080
Headwind MDM - система управления мобильными устройствами с открытым кодом
Имя пользователя или email: указываю дефолтный логин admin
Пароль: указываю дефолтный пароль admin от логина admin
и нажимаю "Войти"
Первым делом система попросит изменить дефолтный пароль, изменяю
Новый пароль: указываю к примеру, 712mbddr@
Подтверждение: подтверждаю, 712mbddr@
и после нажимаю "Установить пароль"
Вот так выглядит Web
-интерфейс после входа
нажимаю на иконку с нарисованным на нем QR
кодом, но увы получаю ошибку
URL выглядит как:
http://192.168.10.13/#/qr/6fb9c8dc81483173a0c0e9f8b2e46be1/h0001
на этот счет я спросил на сайте в форме поддержки по продукту, на что получил ответ:
«Я правильно понимаю, что вы хотите настроить Headwind MDM
именно в локальной сети?
Я рекомендую вам настраивать Headwind MDM
на домене в сети Интернет, это наиболее простой способ, не требующий дополнительных ухищрений. Как это сделать — написано здесь: https://h-mdm.com/ru/ustanovka-veb-paneli/
В вашем случае, полагаю, достаточно будет настроить редирект порта 80 -> 8080 с помощью iptables. Как это сделать — написано здесь: https://qa.h-mdm.com/1533/
Также, если хотите, у нас есть пробная версия Premium, ограниченная по времени, которую можно тоже развернуть на вашем сервере. Напишите мне, если вам интересно получить доступ.»
но вот я конкретно написал, что мне нужно в локальной сети развернуть без возможности иметь внешнее доменное имя и внешний WAN-IP адрес, я пока обкатываю на локальных мощностях. Если честно я уже смирился, что когда задаешь вопрос разработчику или в организацию по вопросам хоть ты и перелопатил всю ихнюю документацию, то тебе отвечают не про то что у тебя.
На заметку: Я предполагаю, что функционал через QR код доступен если разворачиваемая система работает в интернете, имеет доменное имя и статический WAN-IP адрес и у нее есть сертификат, к примеру, от Let’s Encrypt, после чего сервис доступен, как https://domain_name:8080. Могу ошибаться, пока еще не проверял. Стремно выставлять в интернет средством управления Android устройствами.
Что по итогу, я разобрал в шагах, как происходит установка Headwind MDM
на Ubuntu 22.04 Server
, в дальнейшем я буду показывать своими заметками как заводить в нее в ручном режиме смартфон, настраивать и взаимодействовать, а пока на этом все, с уважением автор блога Олло Александр aka ekzorchik.