Сегодня речь пойдет на тему, что когда я развернул Headwind MDM по заметке: "Инструмент управления Android устройствами в ЛВС", столкнулся с тем, что мой сервис работает на порту 8080/tcp, а чтобы вручную завести в него смартфон на базе Android я описал в заметке: "Заводим Honor 5C на центральную консоль Headwind MDM". С учетом приобретенного понимания я изменял порт, на котором работает Headwind MDM, но вот исходя из этого, лучше развернуть Webсервис Nginx и настроить обратный прокси для Headwind MDM, а уже надстройкой над Iptables в лице firewalld ограничить доступ к хосту оставив: 22/tcp, 80/tcp.

Приступаю к реализации задуманного.

Шаг №1: Возвращаю назад работу сервиса Headwind MDM с 80/tcp на 8080/tcp:

sudo nano /etc/tomcat9/server.xml

было

    <Connector port="80" protocol="HTTP/1.1"

изменяю на

    <Connector port="8080" protocol="HTTP/1.1"

После нажимаем Ctrl + O, Enter - Ctrl + X (для выхода из редактора).

sudo systemctl restart tomcat9.service
ekzorchik@srv-us2204mdm:~$ sudo netstat -tulpn | grep java
tcp6       0      0 :::8080                 :::*                    LISTEN      52635/java

Шаг №2: Устанавливаю в систему Webсервис nginx:

ekzorchik@srv-us2204mdm:~$ sudo apt-get install -y nginx

ekzorchik@srv-us2204mdm:~$ sudo rm /etc/nginx/sites-available/default

ekzorchik@srv-us2204mdm:~$ sudo rm /etc/nginx/sites-enabled/default

ekzorchik@srv-us2204mdm:~$ sudo nano /etc/nginx/sites-available/hmdm.conf

upstream hmdm {
        server 127.0.0.1:8080;
}
server {
        listen 80;
        server_name 192.168.10.13;
        access_log /var/log/nginx/hmdm-access.log;
        error_log /var/log/nginx/hmdm-error.log;
        proxy_redirect off;

 location / {
                proxy_pass http://hmdm;
                proxy_buffering off;
                client_max_body_size 0;
                proxy_connect_timeout  3600s;
                proxy_read_timeout  3600s;
                proxy_send_timeout  3600s;
                send_timeout  3600s;
        }
}

После нажимаем Ctrl + O, Enter - Ctrl + X (для выхода из редактора).

ekzorchik@srv-us2204mdm:~$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
ekzorchik@srv-us2204mdm:~$
ekzorchik@srv-us2204mdm:~$ sudo ln -s /etc/nginx/sites-available/hmdm.conf /etc/nginx/sites-enabled/hmdm.conf
ekzorchik@srv-us2204mdm:~$
ekzorchik@srv-us2204mdm:~$ sudo systemctl restart nginx

Шаг №3: Закрываю систему Ubuntu 22.04 Server надстройкой над правилами в лице firewalld:

ekzorchik@srv-us2204mdm:~$ apt-cache show firewalld | grep Version
Version: 1.1.1-1ubuntu1
ekzorchik@srv-us2204mdm:~$
ekzorchik@srv-us2204mdm:~$ sudo ufw disable
Firewall stopped and disabled on system startup
ekzorchik@srv-us2204mdm:~$ sudo apt-get install -y firewalld
ekzorchik@srv-us2204mdm:~$ sudo systemctl enable firewalld
ekzorchik@srv-us2204mdm:~$ sudo systemctl start firewalld
ekzorchik@srv-us2204mdm:~$ sudo firewall-cmd --state
running
ekzorchik@srv-us2204mdm:~$ ip r | awk '{print $5}' | head -n1
ens160
ekzorchik@srv-us2204mdm:~$ sudo firewall-cmd --zone public --change-interface=ens160 --permanent
success
ekzorchik@srv-us2204mdm:~$
ekzorchik@srv-us2204mdm:~$ sudo firewall-cmd --reload
success
ekzorchik@srv-us2204mdm:~$ sudo firewall-cmd --zone=public --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160
  sources:
  services: dhcpv6-client ssh
  ports:
  protocols:
  forward: yes
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
ekzorchik@srv-us2204mdm:~$
ekzorchik@srv-us2204mdm:~$ sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
success
ekzorchik@srv-us2204mdm:~$ sudo firewall-cmd --reload
success
ekzorchik@srv-us2204mdm:~$ sudo firewall-cmd --zone=public --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160
  sources:
  services: dhcpv6-client ssh
  ports: 80/tcp
  protocols:
  forward: yes
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
ekzorchik@srv-us2204mdm:~$

После чего доступ к хосту Ubuntu 22.04 Server возможен только через SSH и через Web, т.е. URL адрес вида: http://192.168.11.13:80 тем самым попадая на страницу авторизации в Headwind MDM:

  • Имя пользователя или email: указываю свои, т.е. admin
  • Пароль: указываю свои, т.е. 712mbddr@

Вход в Headwind MDM через Nginx Proxy Pass

и нажимаю «Войти»

Шаг №4: Если посмотреть логи обращения на 80/tcp порт, то все обращения имеют статус HTTP 200, что говорит, что сервис отвечает на все запросы успешно осуществляя перенаправление с 80 на 8080:

ekzorchik@srv-us2204mdm:~$ sudo tail -f /var/log/nginx/hmdm-access.log
192.168.10.4 - - [03/May/2024:09:37:30 +0300] "GET /app/components/plugins/push/i18n/ar_AE.json HTTP/1.1" 200 2539 "http://192.168.10.13/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"
192.168.10.4 - - [03/May/2024:09:37:30 +0300] "GET /app/components/plugins/push/i18n/fr_FR.json HTTP/1.1" 200 2337 "http://192.168.10.13/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"
192.168.10.4 - - [03/May/2024:09:37:30 +0300] "GET /app/components/plugins/push/i18n/es_ES.json HTTP/1.1" 200 2301 "http://192.168.10.13/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"
192.168.10.4 - - [03/May/2024:09:37:30 +0300] "GET /app/components/plugins/push/i18n/de_DE.json HTTP/1.1" 200 2350 "http://192.168.10.13/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"
192.168.10.4 - - [03/May/2024:09:37:30 +0300] "GET /app/components/plugins/push/i18n/zh_TW.json HTTP/1.1" 200 2078 "http://192.168.10.13/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"
192.168.10.4 - - [03/May/2024:09:37:30 +0300] "GET /app/components/plugins/push/i18n/ja_JP.json HTTP/1.1" 200 2589 "http://192.168.10.13/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"
192.168.10.4 - - [03/May/2024:09:37:30 +0300] "GET /app/components/plugins/push/i18n/zh_CN.json HTTP/1.1" 200 2078 "http://192.168.10.13/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"
192.168.10.16 - - [03/May/2024:09:38:15 +0300] "POST /rest/public/sync/info HTTP/1.1" 200 42 "-" "okhttp/3.12.1"
192.168.10.16 - - [03/May/2024:10:06:10 +0300] "POST /rest/plugins/devicelog/log/list/h0002 HTTP/1.1" 200 42 "-" "okhttp/3.12.1"
192.168.10.16 - - [03/May/2024:10:06:10 +0300] "POST /rest/public/sync/info HTTP/1.1" 200 42 "-" "okhttp/3.12.1"
^C
ekzorchik@srv-us2204mdm:~$

Итого, я сделал более правильный вариант работы с сервисом Headwind MDM не изменяя порт, на котором работает сервис tomcat который лежит в основе Headwind MDM, а сделал настройку в лице обратного прокси сервиса через nginx.

На этом моя практическая заметка для самого себя успешно завершена, с уважением автор блога Олло Александр aka ekzorchik.