MeshCentral — установка и настройка системы удаленного доступа в Debian 11

MeshCentral — достаточно интересный продукт, который несомненно заслуживает самого пристального внимания. Это система удаленного управления устройствами работающая через веб-интерфейс. Т.е. решается проблема установки серверной части системы на свой рабочий ПК как это происходило  в случае с Veyon. Администрировать можно с любого устройства, достаточно запустить браузер и подключиться к серверу. При этом агенты для MeshCentral разработаны, практически, для любой известной операционной системы. Также заложена возможность одновременной работы в системе сразу нескольких человек.

Система управления MeshCenter

Содержание:
  1. Подготовка контейнера в Proxmox
  2. Настройка системы после создания и запуска контейнера
  3. Выполняем установку MeshCentral
  4. Установка MongoDB
  5. Первичная настройка MeshCentral
  6. Добавление устройства под управлением ОС Windows
  7. Добавление устройства под управлением ОС Astra Linux
  8. Делегирование полномочий
  9. Запуск MeshCentral с поддержкой DNS имени
  10. Запуск сервера MeshCentral в автоматическом режиме

Разработчики предлагают разные варианты серверных платформ. Но мы возьмём за основу Debian 11. В нашем варианте это будет контейнер LXC в Proxmox VE.

1. Подготовка контейнера в Proxmox

1. 1. Создаем контейнер:

MeshCentral- создание контейнера в Proxmox

1.2. Указываем шаблон:

MeshCentral- создание контейнера в Proxmox

1.3. Задаем параметры системы:

MeshCentral- создание контейнера в Proxmox

MeshCentral- создание контейнера в Proxmox

1.4. Задаем настройки сети:

MeshCentral- создание контейнера в Proxmox

1.5. Запускаем процесс создания контейнера:

MeshCentral- создание контейнера в Proxmox

MeshCentral- создание контейнера в Proxmox

 

2. Настройка системы после создания и запуска контейнера

Подключаемся к системе с правами root и приступаем к настройке

2.1. Добавляем sudo в систему:

apt install sudo

2.2. Добавляем пользователя в систему, у меня это master:

adduser master
Adding user `master' ...
Adding new group `master' (1000) ...
Adding new user `master' (1000) with group `master' ...
Creating home directory `/home/master' ...
Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for master
Enter the new value, or press ENTER for the default
        Full Name []: 
        Room Number []: 
        Work Phone []: 
        Home Phone []: 
        Other []: 
Is the information correct? [Y/n] y

2.3. Добавляем пользователя master в группу sudo:

usermod -aG sudo master

2.4. Входим в систему под учетной записью master:

machcenter login: master
Password:

2.5. Устанавливаем NodeJS

sudo apt install nodejs -y
sudo apt install npm -y

2.6. Разрешаем прослушивание портов ниже 1024

master@mechcentral:~$ whereis node
node: /usr/bin/node /usr/include/node /usr/share/man/man1/node.1.gz
master@machcentral:~$ sudo setcap cap_net_bind_service=+ep /usr/bin/node
3. Выполняем установку MeshCentral

3.1. Запускаем команду установки MeshCentral. Важно отметить, что установка выполняется с правами обычного пользователя:

npm install meshcentral

3.2. Запускаем MeshCentral

node ./node_modules/meshcentral

Если все правильно сделали, то получим следующий выхлоп:

Installing archiver@4.0.2...
Installing otplib@10.2.3...
MeshCentral HTTP redirection server running on port 80.
Generating certificates, may take a few minutes...
Generating root certificate...
Generating HTTPS certificate...
Generating MeshAgent certificate...
Generating Intel AMT MPS certificate...
MeshCentral v0.9.62, LAN mode.
Server has no users, next new account will be site administrator.
MeshCentral HTTPS server running on port 443.

В принципе, на этом этапе мы получаем уже рабочую систему.

3.3. Запускаем браузер и переходим по заданному ранее нами  адресу:

MeshCentral - первый вход в систему

В данном варианте для хранения настроек используется база данных NeDB.  Однако разработчики рекомендуют использовать сервер баз данных  MongoDB.

4. Установка MongoDB

4.1. Обновляем индексы репозитория:

sudo apt update

4.2. Выполняем установку доп. пакетов:

sudo apt install dirmngr gnupg apt-transport-https ca-certificates software-properties-common

4.3. Скачиваем ключ репозитория:

wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -

4.4. Добавляем репозиторий для Ubunru Focal:

sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse'

4.5. Обновляем индексы репозитория:

sudo apt update

4.6. Выполняем установку MongoDB:

sudo apt install mongodb-org

4.7. Запускаем сервер баз данных MongoDB:

sudo systemctl start mongod

4.8. Добавляем сервис в автозагрузку:

sudo systemctl enable mongod

4.9. Проверяем статус сервиса:

systemctl status mongod

4.10. Запускаем конфигурационный файл MeshCentral на редактирование:

mcedit ~/meshcentral-data/config.json

Изначально он выглядит вот так:

{
  "$schema": "http://info.meshcentral.com/downloads/meshcentral-config-schema.json",
  "__comment1__": "This is a simple configuration file, all values and sections that start with underscore (_) are ignored. Edit a section and remove the _ in front of the name. Refer to the user's guide for details.",
  "__comment2__": "See node_modules/meshcentral/sample-config-advanced.json for a more advanced example.",
  "settings": {
    "_cert": "myserver.mydomain.com",
    "_WANonly": true,
    "_LANonly": true,
    "_sessionKey": "MyReallySecretPassword1",
    "_port": 443,
    "_aliasPort": 443,
    "_redirPort": 80,
    "_redirAliasPort": 80
  },
  "domains": {
    "": {
      "_title": "MyServer",
      "_title2": "Servername",
      "_minify": true,
      "_newAccounts": true,
      "_userNameIsEmail": true
    }
  },
  "_letsencrypt": {
    "__comment__": "Requires NodeJS 8.x or better, Go to https://letsdebug.net/ first before trying Let's Encrypt.",
    "email": "myemail@mydomain.com",
    "names": "myserver.mydomain.com",
    "production": false
  }
}

и указываем что данные нужно хранить в MangoDB, для этого в параметрах «settings» добавляем строку ««MongoDb»: «mongodb://127.0.0.1:27017/meshcentral»,«:

{
  "$schema": "http://info.meshcentral.com/downloads/meshcentral-config-schema.json",
  "__comment1__": "This is a simple configuration file, all values and sections that start with underscore (_) are ignored. Edit a section and remove the _ in front of the name. Refer to the user's guide for details.",
  "__comment2__": "See node_modules/meshcentral/sample-config-advanced.json for a more advanced example.",
  "settings": {
    "MongoDb": "mongodb://127.0.0.1:27017/meshcentral",
    "_cert": "myserver.mydomain.com",
    "_WANonly": true,
    "_LANonly": true,
    "_sessionKey": "MyReallySecretPassword1",
    "_port": 443,
    "_aliasPort": 443,
    "_redirPort": 80,
    "_redirAliasPort": 80
  },
  "domains": {
    "": {
      "_title": "MyServer",
      "_title2": "Servername",
      "_minify": true,
      "_newAccounts": true,
      "_userNameIsEmail": true
    }
  },
  "_letsencrypt": {
    "__comment__": "Requires NodeJS 8.x or better, Go to https://letsdebug.net/ first before trying Let's Encrypt.",
    "email": "myemail@mydomain.com",
    "names": "myserver.mydomain.com",
    "production": false
  }
}

Сохраняем изменения.

4.11. Запускаем MeshCentral:

node ./node_modules/meshcentral

Выхлоп должен получиться вот таким:

Installing mongodb@4.1.0...
Installing saslprep...
Resetting main indexes...
Resetting events indexes...
Resetting power events indexes...
Resetting server stats indexes...
MeshCentral HTTP redirection server running on port 80.
MeshCentral v0.9.62, LAN mode.
Server has no users, next new account will be site administrator.
MeshCentral HTTPS server running on port 443.
5. Первичная настройка MeshCentral

5.1. Запускаем браузер и переходим по ip адресу, который мы задавали для нашего сервера. И создаем учетную запись администратора системы:

MeshCentral - создание учетной записи администратора системы

5.2. При первом входе в MashCentral система предлагает нам создать группы устройств:

MeshCentral - первый вход в систему

5.3. Создаем группы устройств. Это могут быть кабинеты или одна общая группа:

MeshCentral - создание группы устройств

5.4. После создания группы устройств необходимо добавить сами устройства:

MeshCentral - создание группы устройств

6. Добавление устройства под управлением ОС Windows

6.1. Нажимаем кнопку «Добавить» и в появившемся диалоговом окне скачиваем дистрибутив агента:

Добавление агента под управлением ОС Windows

6.2. Дистрибутив необходимо установить на ПК, которые мы будем администрировать:

Установка агента на ПК под управлением ОС Windows

После установки запись о ПК появиться в системе:

Отображение удалённых ПК в MeshCentral

7. Добавление устройства под управлением ОС Astra Linux

7.1. Для добавления ПК под управлением Linux (в нашем случае это Astra Linux) необходимо скачать скрипт установки в MeshCentral:

Установочный скрипт агента для Linux и BSD

7.2. Копируем скрипт и запускаем его с правами root на ПК под управлением Linux:

Установка агента MeshCentral в Astra Linux

7.3. После окончания работы установочного скрипта переходим в панель управления MeshCentral и отмечаем появление записи о ПК под управлением Astra Linux:

Отображение записи о ПК под управлением Astra Linux в MeshCentral

8. Делегирование полномочий

8.1. Для того чтобы инженеры также могли работать в системе необходимо создать им учетные записи в разделе «Мои пользователи«:

MeshCentral - добавление пользователя

8.2. Предоставляем пользователям доступ к группам устройств. Теперь администрировать ПК и оказывать техподдержку смогут и другие инженеры ОУ:

MeshCentral - назначение групп устройств добавленному пользователю

 

9. Запуск MeshCentral с поддержкой DNS имени

Изначально сервер MeshCentral запущен в режиме работы только в локальной сети без поддержки обнаружения клиентами по имени DNS:

MeshCentral v0.9.62, LAN mode.

Однако разработчики заложили в него функцию работы по доменному имени. Для этого необходимо в конфигурационном файле включить поддержку WAN режима, сгенерировать сертификат для доменного имени и указать его в конфиге. Нижнее подчеркиваие  «_» перед параметром означает что он отключен.

9.1. Прописываем DNS запись на нашем DNS сервере. У меня он работает в локальной сети поэтому выглядит так:

Вносим запись о сервере MeshCentral в DNS сервер

9.2. Указываем в конфигурационном файле имя сертификата. У меня это meshcentral.g528.lan и подключаем параметр WANonly:

{
  "$schema": "http://info.meshcentral.com/downloads/meshcentral-config-schema.json",
  "__comment1__": "This is a simple configuration file, all values and sections that start with underscore (_) are ignored. Edit a section and remove the _ in front of the name. Refer to the user's guide for details.",
  "__comment2__": "See node_modules/meshcentral/sample-config-advanced.json for a more advanced example.",
  "settings": {
    "MongoDb": "mongodb://127.0.0.1:27017/meshcentral",
    "cert": "meshcentral.g528.lan",
    "WANonly": true,
    "_LANonly": true,
    "_sessionKey": "MyReallySecretPassword1",
    "_port": 443,
    "_aliasPort": 443,
    "_redirPort": 80,
    "_redirAliasPort": 80
  },
  "domains": {
    "": {
      "_title": "MyServer",
      "_title2": "Servername",
      "_minify": true,
      "_newAccounts": true,
      "_userNameIsEmail": true
    }
  },
  "_letsencrypt": {
    "__comment__": "Requires NodeJS 8.x or better, Go to https://letsdebug.net/ first before trying Let's Encrypt.",
    "email": "myemail@mydomain.com",
    "names": "myserver.mydomain.com",
    "production": false
  }
}

9.3. Запускаем сервер MeshCenter в режиме поддержки сертификата:

node ./node_modules/meshcentral --cert meshcentral.g528.lan

Если ранее вы уже запускали сервер, то  сервер может не запуститься в режиме WANonly. Для решения этой задачи я удалил все сертификаты и ключи из дериктории meshcentral-data и запустил сервер снова:

node ./node_modules/meshcentral

Возможно не самое удачное решение, но оно сработало )

Выхлоп должен получиться вот таким:

MeshCentral HTTP redirection server running on port 80.
MeshCentral v0.9.62, WAN mode.
MeshCentral Intel(R) AMT server running on meshcentral.g528.lan:4433.
MeshCentral HTTPS server running on meshcentral.g528.lan:443.

Агента нужно будет генерировать и устанавливать заново. Однако теперь агенты будут находить сервер в сети по DNS имени.

10. Запуск сервера MeshCentral в автоматическом режиме

10.1. Проверим права на доступ к файлам конфигурации нашего сервера:

ls -l

В моем случае это выглядит так:

drwxr-xr-x   2 master master      2 Dec 26 13:16 meshcentral-backup
drwxr-xr-x   2 master master     16 Dec 26 13:44 meshcentral-data
drwxr-xr-x   3 master master      3 Dec 26 13:41 meshcentral-files
drwxr-xr-x 150 master master    151 Dec 26 13:16 node_modules
-rw-r--r--   1 master master 108431 Dec 26 13:16 package-lock.json
-rw-r--r--   1 master master    159 Dec 26 13:16 package.json

10.2.   Создаем конфигурационный файл запуска сервиса:

sudo mcedit /etc/systemd/system/meshcentral.service

И приводим его к виду:

[Unit]
Description=MeshCentral Server
[Service]
Type=simple
LimitNOFILE=1000000
ExecStart=/usr/bin/node /home/master/node_modules/meshcentral
WorkingDirectory=/home/master
Environment=NODE_ENV=production
User=master
Group=master
Restart=always
# Restart service after 10 seconds if node service crashes
RestartSec=10
# Set port permissions capability
AmbientCapabilities=cap_net_bind_service
[Install]
WantedBy=multi-user.target

Сохраняем изменения.

10.3. Запускаем последовательно команды:

sudo systemctl enable meshcentral.service
sudo systemctl start meshcentral.service

10.4. Проверяем работу сервиса:

systemctl status meshcentral.service

Должно быть так:

* meshcentral.service - MeshCentral Server
     Loaded: loaded (/etc/systemd/system/meshcentral.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2021-12-26 14:08:44 UTC; 20s ago
   Main PID: 6589 (node)
      Tasks: 22 (limit: 4915)
     Memory: 115.6M
     CGroup: /system.slice/meshcentral.service
             |-6589 /usr/bin/node /home/master/node_modules/meshcentral
             `-6600 /usr/bin/node /home/master/node_modules/meshcentral --launch 6589

Dec 26 14:08:44 meshcentral systemd[1]: Started MeshCentral Server.
Dec 26 14:08:44 meshcentral node[6589]: MeshCentral HTTP redirection server running on port 80.
Dec 26 14:08:44 meshcentral node[6589]: MeshCentral v0.9.62, WAN mode, Production mode.
Dec 26 14:08:45 meshcentral node[6589]: MeshCentral Intel(R) AMT server running on meshcentral.g528.lan:4433.
Dec 26 14:08:45 meshcentral node[6589]: MeshCentral HTTPS server running on meshcentral.g528.lan:443.

Теперь сервер MeshCentral будет работать в режиме сервиса.

Источники:

6 thoughts on “MeshCentral — установка и настройка системы удаленного доступа в Debian 11

  • 12.05.2022 в 15:30
    Permalink

    Добрый день!

    Установил всё удачно по вашей инструкции на VPS, агенты вроде бы как тоже удачно подключаются, но в админке Meshcentral устройства не появляются. Установлено все также на Debian 11, iptables пустой. Подскажите, пожалуйста, в чем может быть проблема?

    Ответ
    • 13.05.2022 в 05:44
      Permalink

      Если сервер запущен в режиме LAN, то устройства должны быть в одном сегменте сети с сервером, они его ищут broadcast запросами.

      Ответ
  • 19.01.2023 в 14:16
    Permalink

    Добрый день. Устанавливал proxmox на виртуалбокс (сеть в режиме моста), в Proxmox интернет есть, а в добавленном контейнере интернет отсутствует (пингует только хост Proxmoх’a). Сам контейнер в сети пингуется. Подскажите, пожалуйста, в чем может быть проблема?

    Ответ
  • 22.01.2023 в 14:04
    Permalink

    Касперский убивает агента, детектируя что это вирус.

    Ответ
    • 20.12.2023 в 11:59
      Permalink

      Касперский лечится исключением в %ProgramFiles% политикой Security Cloud или вручную если каспер обычной версии

      Ответ

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Подтвердите, что Вы не бот — выберите человечка с поднятой рукой:

Мы в соцсетях

  • RSS