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

Зміст
- Общие сведения о MeshCentral
- Развертывание MeshCentral на сервере Ubuntu
- Создание пользователя и подключение к постороннему репозиторию
- Установка NodeJS и NPM
- Установка БД
- Открытие портов
- Установка MeshCentral
- Запуск и настройка 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

Обновим индекс пакетов:
$ 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

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

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

Ответ: v0.38.0. То есть все хорошо, средство установлено.
Проверим наличие новых доступных релизов NodeJS. Для этого введем в терминале:
$ nvm ls-remote


Можно убедиться, что последней LTS-версией NodeJS есть v20.17.0 (Latest LTS: Iron).
Именно она нам и нужна.
Установим ее с помощью следующей команды:
$ nvm install v20.17.0

Ответ:
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 устанавливается в автоматическом режиме Менеджер пакетов NPM. Проверим это с помощью команды:
$ npm -v

Ответ: 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

Ответ:
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


Ответ: added 201 packages, and audited 202 packages in 22s. Итак, программа установлена.
Запуск и настройка MeshCentral
Выполним первый запуск программы для нашего сервера с именем cf1280475.freehost.com.ua. При этом в автоматическом режиме будут созданы соответствующие сертификаты. Это необходимо для того, чтобы агенты MeshCentral, установленные на удаленных устройствах имели возможность к нему обращаться.
Введем в терминале:
$ node ./node_modules/meshcentral --cert cf1280475.freehost.com.ua

Ответ:
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

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

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

Остановим:
$ ./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

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

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

Остановим сервер:
$ sudo systemctl stop meshcentral.service

Выключим:
$ sudo systemctl disable meshcentral.service

Ответ: 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