Ранее "Инструмент управления Android устройствами в ЛВС"
я уже разворачивал Headwind MDM
на Ubuntu 22.04 Server
где все расписал от и до, но это было год назад и тогда была версия 5.25
, сейчас на 28.04.2025
уже версия 5.33
– и хочу посмотреть что изменилось может все же стоит приобщиться к использованию. Если вспомнить что я тестировал, то функционал даже бесплатного впечатляет, ведь управлять всем парком мобильных устройств, да еще где все под Вашим контролем – это то, о чем может мечтать нормальный системный администратора. Что ж пора вспомнить и потестить обновленную версию.
На заметку: Заметка пишется в первую очередь для себя для своего в последующем практического применения.
Шаг №1:
На своем тестовом полигоне под управлением Debian 10 + Proxmox 6.4-13
создаю виртуальную машину опираясь на минимальные требования к системе:
Name: srv-mdm
OS: Ubuntu 22.04 Server
IP&DNS: Статический (фиксирую его на своем домашнем роутере Mikrotik rb2011UiAS-2Hnd-IN)
RAM: 4Gb
CPU: 2
SSD: 20Gb
На заметку: У системы должен быть выход в интернет для скачивания пакетов.
Шаг №2:
Обновляю установленную систему до самого последнего релиза в рамках текущего LTS
релиза для Ubuntu 22.04 Server
на момент написания заметки:
ekzorchik@srv-mdm:~$ sudo nano /etc/update-manager/release-upgrades
[DEFAULT]
Prompt=never
ekzorchik@srv-mdm:~$ sudo rm -rf /var/lib/apt/lists
ekzorchik@srv-mdm:~$ sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y && sudo apt-get autoremove -y
ekzorchik@srv-mdm:~$ sudo reboot
ekzorchik@srv-mdm:~$ uname -a && lsb_release -a
Linux srv-mdm 5.15.0-138-generic #148-Ubuntu SMP Fri Mar 14 19:05:48 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.5 LTS
Release: 22.04
Codename: jammy
ekzorchik@srv-mdm:~$
Шаг №3:
Настройки синхронизации времени и настройки локали:
см заметку: "Настраиваем службу времени в Ubuntu 22.04 Server"
Шаг №4:
Произвожу установку пакетов перед установкой:
ekzorchik@srv-mdm:~$ sudo apt install -y aapt tomcat9 postgresql vim certbot unzip net-tools unzip
Шаг №5:
Поднимаю сервис базы данных Postgres:
ekzorchik@srv-mdm:~$ sudo su - postgres
postgres@srv-mdm:~$ psql
psql (14.17 (Ubuntu 14.17-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=# exit
postgres@srv-mdm:~$ logout
ekzorchik@srv-mdm:~$
Шаг №6:
Скачиваю самую последнюю версию hmdm (Headwind MDM)
на момент написания текущей заметки и устанавливаю на текущей системе Ubuntu 22.04 Server:
ekzorchik@srv-mdm:~$ wget https://h-mdm.com/files/hmdm-5.33-install-ubuntu.zip
ekzorchik@srv-mdm:~$ unzip hmdm-5.33-install-ubuntu.zip
ekzorchik@srv-mdm:~$ ls -l hmdm-install/hmdm_install.sh
-rwxr-xr-x 1 ekzorchik ekzorchik 19439 Mar 25 15:05 hmdm-install/hmdm_install.sh
ekzorchik@srv-mdm:~$
ekzorchik@srv-mdm:~$ cd hmdm-install/
ekzorchik@srv-mdm:~/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
Please choose the directory where supply scripts will be located.
Headwind MDM scripts directory [/opt/hmdm]: /opt/hmdm
Web application setup
=====================
Headwind MDM requires access from Internet
Please assign a public domain name to this server
Protocol (http|https) [https]: http
Domain name or public IP (e.g. example.com): 172.33.33.125
Port (e.g. 8080, leave empty for default ports 80 or 443):
Project path on server (e.g. /hmdm) or ROOT: ROOT
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
Ready to install!
Location on server: /var/lib/tomcat9/work
URL: http://172.33.33.125
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.33.2-os.war to Tomcat: /var/lib/tomcat9/webapps/ROOT.war
............
ожидаю…
Deploying hmdm-5.33.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-mdm:~/hmdm-install$
как и в прошлый раз запускаю установку заново
ekzorchik@srv-mdm:~/hmdm-install$ sudo ./hmdm_install.sh
Minimal installation of Headwind MDM has been done!
At this step, you can open in your web browser:
http://172.33.33.125:8080
Login: admin:admin
======================================
Setup HTTPS via LetsEncrypt [Y/n]?: n
Use iptables to redirect port 443 to 8443 [Y/n]?: n
Move required APKs from h-mdm.com to your server [Y/n]?: Y
и начинается процесс скачивания и установки, а по итогу получаем:
======================================
Headwind MDM installation is completed!
To access your web panel, open in the web browser:
http://172.33.33.125
Login: admin:admin
======================================
ekzorchik@srv-mdm:~/hmdm-install$
Шаг №7:
Проверяю, на какие порты развернутый сервис ожидает подключения с учетом выполненного выше:
ekzorchik@srv-mdm:~/hmdm-install$ cd ~
ekzorchik@srv-mdm:~$ 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 558/systemd-resolve
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 3745/postgres
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 663/sshd: /usr/sbin
tcp6 0 0 :::8080 :::* LISTEN 5476/java
tcp6 0 0 172.33.33.125:31000 :::* LISTEN 5476/java
tcp6 0 0 :::22 :::* LISTEN 663/sshd: /usr/sbin
udp 0 0 127.0.0.53:53 0.0.0.0:* 558/systemd-resolve
udp 0 0 172.33.33.125:68 0.0.0.0:* 511/systemd-network
ekzorchik@srv-mdm:~$
Из вывода выше вижу, как и было в прошлый раз, сервис слушает порт 8080
, но если вспомнить, то все ссылки в нем работают если порт 80
и нужно настроить обратный прокси.
Шаг №8:
Применяем заметку: "Обратный прокси для Headwind MDM"
Шаг №9:
Первый вход в сервис осуществляется через URL
ссылку вида: http://172.33.33.125
Имя пользователя или email: указываю admin (по дефолту)
Пароль: указываю admin (по дефолту)
и нажимаю "Войти"
, после мастер предлагает установить новый пароль
Новый пароль: указываю 712mbddr@
Подтверждение: подтверждаю 712mbddr@
и нажимаю "Установить пароль"
Вижу, что Web
-интерфейс администрирования выглядит точно так же, как и в той версии с которой я начинал свое знакомство. С одной стороны, это хорошо, можно вспомнить или ориентироваться на свои заметки быстро начать тестировать и применять:
По итогу, буду тестировать на новой версии все то что смотрел ранее и уже с учетом наработок составлять практические заметки.
На этом пока заметку завершаю, с уважением автор блога Олло Александр aka ekzorchik.