Стаття також доступна російською (перейти до перегляду).
Зміст
- Загальні відомості про 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