• База знань
  • /
  • Блог
  • /
  • 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-подібній системі. Усю іншу інформацію по програмі можна знайти у документації на неї від розробника.

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

Дивіться наш канал Youtube на https://www.youtube.com/freehostua.

Ми у чомусь помилилися, чи щось пропустили?

Напишіть про це у коментарях, ми з задоволенням відповімо та обговорюємо Ваші зауваження та пропозиції.

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

Авторам статті важлива Ваша думка. Будемо раді його обговорити з Вами:

comments powered by Disqus
navigate
go
exit
Дякуємо, що обираєте FREEhost.UA