Настройка сервера для реального использования

По умолчанию, установка веб-панели Headwind MDM проходит достаточно просто, и дает возможность изучить возможности MDM-системы. Однако такая установка имеет некоторые недостатки, препятствующие ее использованию в «боевом режиме». Вот какие опции обычно требуются от корпоративного MDM сервера:

  • Использование последней версии ОС
  • Безопасное подключение через HTTPS
  • Установка в корневую директорию домена
  • Отсутствие ссылок на внешние ресурсы

Пошаговая инструкция

Требования

  • Сервер (можно VM) с Ubuntu 20.10
  • Публичный IP адрес
  • Доменное имя, соответствующее этому адресу (в примере — build.h-mdm.com)

Настройка производится под учетной записью root.

1. Установка требуемого ПО

# apt update
# apt install openjdk-8-jdk aapt tomcat9 postgresql vim

Обратите внимание: версия Tomcat 9, устанавливаемая через apt в Ubuntu 20.04 (9.0.31) содержит баг, связанный с передачей файлов через HTTPS, и Headwind MDM при использовании HTTPS-протокола не будет работать с этой версией.

Решением будет либо использовать Ubuntu 18.04, либо (рекомендуется) обновить Tomcat до последней версии вручную.

Чтобы увидеть версию Tomcat, выполните команду:

# /usr/share/tomcat9/bin/version.sh

Для обновления Tomcat до правильной версии (в примере ниже, будет обновляться до 9.0.40), выполните следующие команды:

# VERSION=9.0.40
# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.40/bin/apache-tomcat-${VERSION}.tar.gz
# tar -zxf apache-tomcat-${VERSION}.tar.gz
# cd apache-tomcat-${VERSION}
# chmod a+x bin
# chmod a+x lib
# chmod -R a+r bin
# chmod -R a+r lib
# chmod a+x bin/*.sh
# mv /usr/share/tomcat9/bin /usr/share/tomcat9/bin~
# mv /usr/share/tomcat9/lib /usr/share/tomcat9/lib~
# cp -r bin /usr/share/tomcat9
# cp -r lib /usr/share/tomcat9
# service tomcat9 restart

Обратите внимание, что apt на Ubuntu 20.10 устанавливает Tomcat version 9.0.37-3, которая не содержит этого бага и работает корректно.

2. Настройка базы данных

# su postgres
# psql
postgres=# CREATE USER hmdm WITH PASSWORD 'topsecret';
postgres=# CREATE DATABASE hmdm WITH OWNER=hmdm;
# exit

Внимание: для большей безопасности, используйте свой пароль. Этот пароль будет использоваться на 4-м шаге при запуске скрипта установки Headwind MDM.

3. Сборка Headwind MDM

# git clone https://github.com/h-mdm/hmdm-server.git
# cd hmdm-server/
# apt install maven
# mvn install

Альтернатива: загрузите инсталлятор

URL последней версии инсталлятора Headwind MDM можно найти на странице «Загрузки».

# wget https://h-mdm.com/files/hmdm-3.31-install-ubuntu.zip
# apt install unzip
# unzip hmdm-3.31-install-ubuntu.zip
# cd hmdm-install/

4. Установка Headwind MDM

# ./hmdm_install.sh

Важно: на Tomcat 9 нужно использовать специальную директорию вместо предлагаемой инсталлятором, так как Tomcat 9 имеет ограниченный доступ к файловой системе.

Для установки в корневую директорию домена, наберите ROOT, когда инсталлятор спросит про поддиректорию. А чтобы использовать на HTTPS порту (443), оставьте поле «порт» пустым.

Установка Headwind MDM экран 1

Установка Headwind MDM экран 2

На этом этапе вы можете уже проверить, что веб-панель Headwind MDM работает, попытавшись открыть http://build.h-mdm.com:8080 в браузере. Это финальный шаг «тестовой» установки, но для настройки «боевого» сервера нужно выполнить еще несколько действий.

Если же на этом этапе возникли проблемы, то для диагностики нужно посмотреть журнал Tomcat — в версии 9 он выводится в системный журнал Linux:

journalctl -u tomcat9.service

5. Настройка HTTPS через LetsEncrypt

Внимание: LetsEncrypt — это бесплатный сертификат, который требует обновления каждые 3 месяца. Вы можете использовать иной HTTPS сертификат: посмотрите, как установить его, здесь.

5.1. Получение сертификата

# apt install certbot
# vim ./letsencrypt-ssl.sh

Мы предполагаем, что вы знаете, как использовать текстовый редактор vim. Вы можете использовать любой другой текстовый редактор, а также прочитать про использование vim здесь.

Измените одну строчку в скрипте letsencrypt-ssl.sh:

DOMAIN=your-domain.com -> DOMAIN=build.h-mdm.com

После обновления скрипта, запустите его и получите сертификат (ответьте на вопросы LetsEncrypt, которые он задаст в процессе получения сертификата).

# ./letsencrypt-ssl.sh

LetsEncrypt экран 1

LetsEncrypt экран 2

5.2. Настройте HTTPS в конфигурации Tomcat

Скрипт letsenscrypt-ssl.sh выводит требуемый блок конфигурации. Конфигурационный файл server.xml уже содержит блок для настройки HTTPS в закомментированном виде. Вам нужно раскомментировать его, а также настроить путь к файлу сертификата и пароль.

vim /var/lib/tomcat9/conf/server.xml

Закомментированный блок HTTPS конфигурации Tomcat

Конфигурация Tomcat с блоком HTTPS

После внесения изменений в конфигурацию, перезапустите Tomcat для применения настроек.

# service tomcat9 restart

Чтобы протестировать этот этап, откройте в браузере https://build.h-mdm.com:8443.

5.3. Настройка автоматического обновления сертификата

LetsEncrypt требует обновления сертификата раз в три месяца. Чтобы избежать проблем с сервисом, лучше проверять необходимость обновления более часто. Мы рекомендуем запускать скрипт обновления сертификатов раз в неделю (он автоматически определит, требует ли сертификат обновления, и обновит его).

Для запуска скрипта автоматического обновления раз в неделю, добавьте в crontab строку (используйте команду «crontab -e»):

0 5 * * 1 /root/hmdm-server/letsencrypt-ssl.sh

Числа в этой строке обозначают минуту, час и день недели, когда запускается скрипт. В этом примере, скрипт запускается в понедельник, в 5 часов утра.

Внимание: проверьте путь к скрипту! Можно скопировать скрипт в общую директорию, например, /usr/local/bin

6. Настройка работы по стандартному HTTPS порту

Томкат принимает HTTPS запросы на порту 8443. Чтобы перенаправить запросы со стандартного HTTPS порта (443) на 8443, можно использовать iptables.

Внимание: эти инструкции будут работать только в случае, если ваш сервер имеет публичный IP-адрес. Если сервер находится за NAT, то необходимо настраивать перенаправление на вашем брандмауэре (инструкция здесь).

6.1. Определение внешнего сетевого интерфейса

# ifconfig

Вывод ifconfig - сетевые интерфейсы

Эта команда выводит информацию о всех сетевых интерфейсах на сервере. Как правило, это внешний сетевой интерфейс, LAN интерфейс (по соглашению, он имеет вид 192.168.x.x или 10.x.x.x), а также локальный интерфейс (по соглашению, 127.0.0.1). Вам нужно найти внешний сетевой интерфейс и использовать его в настройке iptables.

6.2. Настройка iptables

Создайте файл, например, /etc/iptables-tomcat.sh и добавьте туда следующие строки.

/sbin/iptables -A PREROUTING -t nat -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8443
/sbin/iptables -A OUTPUT -t nat -o lo -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8443

Файл настроек iptables

Предоставьте файлу разрешение на исполнение, и выполните его:

# chmod +x /etc/iptables-tomcat.sh
# /etc/iptables-tomcat.sh

Чтобы сделать настройку iptables перманентной, сделайте, чтобы скрипт запускался при загрузке системы, добавив следующую строку в crontab:

@reboot /etc/iptables-tomcat.sh

Для модификации crontab, используйте команду «crontab -e».

7. Откройте веб-панель Headwind MDM

Этот шаг завершает установку. Вам нужно провести тесты, чтобы проверить, что Headwind MDM работает, а также перенести требуемые файлы мобильных приложений (APK) из внешнего источника на ваш сервер.

7.1. Проверьте, что URL работает

https://build.h-mdm.com должен открывать веб-панель Headwind MDM.

Логин и пароль по умолчанию admin:admin (не забудьте изменить пароль, нажав admin в правом верхнем углу, и затем Профиль!)

7.2. Перенесите APK файлы на ваш сервер

Инсталлятор Headwind MDM по умолчанию загружает требуемые APK файлы с веб-сайта https://h-mdm.com. Вы можете изменить это поведение, разместив файлы на вашем сервере.

Выберите вкладку Приложения и снимите флажок «Показывать системные приложения». Вы увидите ссылки, ведущие на h-mdm.com. Скопируйте ссылку и сохраните файл APK на ваш компьютер.

Выгрузка APK в веб-панель Headwind MDM

Нажмите Добавить, чтобы загрузить APK на ваш сервер.

Выгрузка APK в веб-панель Headwind MDM

После нажатия «Сохранить», Headwind MDM спросит вас, что вы хотите добавить, новое приложение или новую версию. Выберите «Новая версия», чтобы изменить местоположение файла по умолчанию (h-mdm.com).

На последнем экране добавления приложения ничего изменять не требуется, просто нажмите «Сохранить».

Повторите эту процедуру для каждого APK файла.

7.3. Проверьте QR код инициализации устройств

Откройте вкладку Устройства и нажмите на иконку QR кода.

Как открыть QR код для настройки мобильного устройства

Если QR код открывается, установка Headwind MDM завершена, поздравляем!

Следующий шаг — настройка мобильного устройства. Посмотрите видео, как это делается: