• База знаний
  • /
  • Блог
  • /
  • Wiki
  • /
  • ONLINE CHAT
+380 (44) 364 05 71

Статья также доступна на украинском (перейти к просмотру).

Система удаленного управления компьютерами MeshCentral

Зміст

В настоящее время на рынке программного обеспечения представлено множество продуктов с функцией Remote Control, днако не все из них относятся к категории Open Source и соответствуют определенному уровню функциональности. MeshCentral вляется одной из тех программ, которые удовлетворяют указанным критериям и позволяют управлять удаленными устройствами с помощью веб-интерфейса. Последняя функция является дополнительным преимуществом и делает программное средство незаменимым инструментом для удобного управления группами устройств в локальной и глобальной сетях. Рассмотрим коротко возможности программного средства, процедуру его развертывания и первоначальной настройки Linux-подобной платформе под управлением ОС Ubuntu.

Общие сведения о MeshCentral

Программа относится к Open Source ресурсов и позволяет с помощью собственного веб-сервера осуществлять все виды работ, связанных с управлением удаленными устройствами. Лицензированная по Apache 2.0. MeshCentral имеет следующие основные функции и возможности:

  • Кроссплатформенность;
  • Поддержка WebRTC, TLS, SSO, HashiCorp Vault;
  • Настройка сертификатов Let's Encrypt;
  • Фильтрация IP;
  • Веб-интерфейс, гарантирующий полный контроль над устройствами;
  • Управление удаленным рабочим столом в пределах локальной и глобальной сетей;
  • Управление терминалами;
  • Управление файлами;
  • Мониторинг удаленных систем;
  • Самоактивация агентов внутри локальной сети;
  • Широкие возможности для настройки;
  • Открытый код (Open Source), что обеспечивает гибкость адаптации к определенным потребностям проекта и повышает возможности защиты;
  • Минимальные требования к серверному оборудованию;
  • Надежный контроль над данными в пределах кластера;
  • Поддержка 2FA;
  • Интеграция с Active Directory;
  • Удаленное обновление ПО;
  • Широкие возможности масштабирования кластера;
  • Возможность автономной работы;
  • Наличие API для интеграции со сторонними сервисами;
  • Удаленная поддержка пользователей;
  • Минимальное потребление ресурсов.

Кроссплатформенность программы позволяет ей работать на многих известных платформах: Raspberry Pi, Amazon Linux 2, Windows, OpenBSD, Microsoft Azure и многих других.

Для ее работы достаточно установить веб-сервер на любой компьютер или VPS-сервер, а также программы-агенты на все удаленные устройства, входящие в группу контроля. Управление устройствами будет производиться из личного кабинета, доступного через веб-браузер.

Среди основных аналогов MeshCentral можно выделить следующие программные средства:

  • VNC Connect;
  • AnyDesk;
  • NoMachine;
  • X2Go;
  • DWService.

Все они довольно прилично выполняют свои функции по управлению удаленными устройствами, однако не совмещают в себе ключевых преимуществ Remote Control средств, как это реализовано в MeshCentral.

Развертывание MeshCentral на сервере Ubuntu

Рассмотрим процесс установки программы в домашний каталог пользователя. При этом обязательным условием должно быть использование аккаунта не root-пользователя.

Приведем основные этапы процесса:

  • Создание пользователя и подключение к постороннему репозиторию;
  • Установка NodeJS и NPM;
  • Установка БД;
  • Открытие портов;
  • Установка MeshCentral;
  • Конфигурирование БД.

Рассмотрим поочередно каждый из перечисленных этапов.

Создание пользователя и подключение к постороннему репозиторию

Создадим не root-пользователя, под учетной записью которого будет производиться развертывание системы. Его имя – testing_mesh. Для этого введем в терминале:

$ adduser testing_mesh

Создание нового пользователя

Добавим testing_mesh в администраторскую группу sudo с помощью следующей команды:

$ adduser testing_mesh sudo

Добавление пользователя в группу администраторов

Ответ Adding user testing_mesh to group sudo Done.

Итак, пользователь создан и добавлен в админ-группу.

Теперь подключимся к репозиторию universe. Это позволит нам беспрепятственно загружать требуемое программное обеспечение.

$ sudo add-apt-repository universe

Подключение к репозиторию universe

Обновим индекс пакетов:

$ sudo apt update

Обновление пакетов

Сменим рабочий аккаунт:

$ su -l testing_mesh

Смена аккаунта

Приглашение командной строчки изменилось на testing_mesh@dedicated:~$. Теперь можем начинать процесс установки.

Установка NodeJS и NPM

NodeJS – это среда выполнения программ JavaScript вне браузера. Оно также необходимо для работы MeshCentral. Для его установки воспользуемся одним из доступных способов – с помощью Менеджера NVM. Это позволит получить последнюю LTS версию программы, что очень важно для совместной работы всех компонентов системы.

Воспользуемся командой curl. Введем в терминале:

$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash

Загрузка NVM менеджера

Активируем внесенные изменения с помощью следующей команды:

$ source ~/.bashrc

Активация изменений

Убедимся в том, что нужная версия Менеджеру установлена:

$ nvm --version

Проверка версии NVM

Ответ: v0.38.0. То есть все хорошо, средство установлено.

Проверим наличие новых доступных релизов NodeJS. Для этого введем в терминале:

$ nvm ls-remote

Релизы NodeJS

Релизы NodeJS

Можно убедиться, что последней LTS-версией NodeJS есть v20.17.0 (Latest LTS: Iron).

Именно она нам и нужна.

Установим ее с помощью следующей команды:

$ nvm install v20.17.0

Установка NodeJS

Ответ:

Downloading and installing node v20.17.0...

Downloading https://nodejs.org/dist/v20.17.0/node-v20.17.0-linux-x64.tar.xz...

######################################################## 100.0%

Computing checksum with sha256sum

Checksums matched!

Now using node v20.17.0 (npm v10.8.2)

Creating default alias: default -> v20.17.0

Убеждаемся, що средство корректно установлено:

$ node -v

Проверка версии NodeJS

Итак, все хорошо. Идём дальше.

Следует отметить, что вместе с NodeJS устанавливается в автоматическом режиме Менеджер пакетов NPM. Проверим это с помощью команды:

$ npm -v

Проверка версии NPM

Ответ: v10.8.2. Это означает, что была успешно установлена ??последняя версия менеджера NPM.

Установка БД

На этом этапе мы должны определиться с базой данных, которая будет использоваться при работе MeshCentral. Один из подходов состоит в том, чтобы выбрать базу с учетом размера нашего будущего кластера. К примеру, если кластер буде містити 100 сетевых устройств или больше, можно выбрать базу MongoDB или подобного уровня. Если меньше, то можно ничего не устанавливать – программа в автоматическом режиме будет использовать интегрированную БД NeDB. Конкретно таковой вариант нам подходит.

Но если все же вам понадобится MongoDB, последовательность действий будет следующей:

$ sudo apt install mongodb -y
$ sudo systemctl start mongodb
$ sudo systemctl enable mongodb

Последние две команды запускают MongoDB «в фоне» и включают ее автоматическую перезагрузку.

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

$ mongo --host :27017

Выход из среды – Ctrl+C.

Открытие портов

MeshCentral настроен на прослушивание портов 443 и 80. Но для не root-пользователя в Ubuntu они заблокированы. И потому попробуем их разблокировать с помощью следующих команд:

$ whereis node

Открытие портов 443 та 80

Ответ:

node: /usr/bin/node /usr/include/node /opt/bitninja-node-dojo/bin/node /usr/share/man/man1/node.1.gz

$ sudo setcap cap_net_bind_service=+ep /usr/bin/node

 Установка разрешений на использование портов

Последняя команда устанавливает разрешения для node для использования нужных нам портов. Следовательно, препятствия сняты.

Установка MeshCentral

Установим программу с помощью менеджера NPM. При этом служебное слово sudo не используется. Введем в терминале:

$ npm install meshcentral

Установка MeshCentral

Установка MeshCentral

Ответ: added 201 packages, and audited 202 packages in 22s. Итак, программа установлена.

Запуск и настройка MeshCentral

Выполним первый запуск программы для нашего сервера с именем cf1280475.freehost.com.ua. При этом в автоматическом режиме будут созданы соответствующие сертификаты. Это необходимо для того, чтобы агенты MeshCentral, установленные на удаленных устройствах имели возможность к нему обращаться.

Введем в терминале:

$ node ./node_modules/meshcentral --cert cf1280475.freehost.com.ua

Создание сертификатов для MeshCentral

Ответ:

Installing modules [ 'archiver@7.0.1', 'otplib@10.2.3' ]

Installing modules [ 'archiver@7.0.1' ]

MeshCentral HTTP redirection server running on port 1024.

Generating certificates, may take a few minutes...

Generating root certificate...

Generating HTTPS certificate...

Generating MeshAgent certificate...

Generating code signing certificate...

Generating Intel AMT MPS certificate...

MeshCentral v1.1.30, Hybrid (LAN + WAN) mode.

Code signed MeshCmd64.exe.

Code signed MeshService.exe.

Code signed MeshCmd.exe.

Code signed MeshService64.exe.

Code signed MeshServiceARM64.exe.

Code signed MeshCmdARM64.exe.

MeshCentral Intel(R) AMT server running on cf1280475.freehost.com.ua:4433.

Server has no users, next new account will be site administrator.

Можна убедиться, что сервер успешно запущен и готов к использованию.

Для того, что бы попасть в Панель управления кластером нужно запустить браузер и ввести в адресной строке:

http://cf1280475.freehost.com.ua

Теперь мы можем управлять своим кластером. Остановка сервера производится с помощью комбинации клавиш CTRL+C.

Конфигурирование БД

Если мы используем интегрированную в систему базу NeDB (как в данном случае), дополнительная конфигурация базы не нужна, но для других типов баз – это необходимо. Все настройки производятся в конфигурационном файле config.json. Перед тем, конечно, необходимо остановить работу сервера. Набор вариантов для редактирования представлен ниже.

$ nano ~/meshcentral-data/config.json

Редактирование файла конфигураций

Здесь должно быть указано название вашей БД, а также имя или IP-адрес хоста.

Запуск сервера в фоновом режиме

Мы можем производить запуск как в ручном, так и автоматическом режимах. Сначала рассмотрим первый вариант. Введем в терминале:

$ echo "node ./node_modules/meshcentral > stdout.txt 2> stderr.txt &" > mcstart
chmod 755 mcstart

Создание команды запуска node

$ echo "pkill –f node_modules/meshcentral" > mcstop
chmod 755 mcstop

Создание команды остановки node

После этого с помощью команд ./mcstart и ./mcstop мы можем управлять нашим сервером. Запустим его:

$ ./mcstart

Запуск node

Остановим:

$ ./mcstop

Теперь настроим автоматический запуск сервера в фоновом режиме. Это можно сделать с помощью файла описания системной службы /etc/systemd/system/meshcentral.service. Введем в терминале:

$ sudo nano /etc/systemd/system/meshcentral.service

Введем в файл следующий код, в котором укажем наше имя пользователя и группу:

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

Изменения в файле meshcentral.service

Сохраним внесенные изменения и выйдем из редактора.

После этого мы можем включать, отключать, запускать и останавливать наш сервер. Продемонстрируем это на практике. Сначала включим службу. Это обеспечит возможность автоматического запуска при перезагрузке устройства. Введем в терминале:

$ sudo systemctl enable meshcentral.service

Запуск службы meshcentral

Ответ: Created symlink /etc/systemd/system/multi-user.target.wants/meshcentral.service → /etc/systemd/system/meshcentral.service. То есть, была создана соответствующая ссылка.

Запустим сервер:

$ sudo systemctl start meshcentral.service

Запуск сервера meshcentral

Остановим сервер:

$ sudo systemctl stop meshcentral.service

Остановка сервера meshcentral

Выключим:

$ sudo systemctl disable meshcentral.service

Отключение службы meshcentral

Ответ: Removed /etc/systemd/system/multi-user.target.wants/meshcentral.service. То есть ссылка удалена и служба отключена.

Мы рассмотрели основные приемы работы с веб-сервером MeshCentral и основной способ его развертывания. При этом мы не акцентировали внимание на работе с программой в веб-браузере, поскольку нашей задачей была только техническая сторона использования программного средства Linux-подобной системе.

Сервер MeshCentral удобно размещать на виртуальном сервере. Это обеспечит бесперебойный доступ к нему и ежедневные бекапы. При необходимости всегда можно расширить ресурсы сервера.

Подписывайтесь на наш телеграм-канал https://t.me/freehostua, чтобы быть в курсе новых полезных материалов.

Смотрите наш канал Youtube на https://www.youtube.com/freehostua.

Мы в чем ошиблись, или что-то пропустили?

Напишите об этом в комментариях, мы с удовольствием ответим и обсуждаем Ваши замечания и предложения.

Дата: 19.09.2024
Автор: Александр Ровник
Голосование

Авторам статьи важно Ваше мнение. Будем рады его обсудить с Вами:

comments powered by Disqus
navigate
go
exit
Спасибо, что выбираете FREEhost.UA