|
|
@@ -0,0 +1,186 @@
|
|
|
+# Руководство пользования системой RMM
|
|
|
+# Анотация
|
|
|
+Программный комплекс **RMM** (Remote Monitoring and Management) предназначен для централизованного удалённого мониторинга и управления устройствами в компьютерной сети. Система состоит из серверной части, реализованной на языке Python с использованием фреймворка Flask, и клиентского агента, разработанного на языке Rust. \
|
|
|
+\
|
|
|
+Сервер обеспечивает регистрацию агентов, хранение информации об устройствах, обработку команд, обмен данными по WebSocket, а также предоставляет административную панель и REST API. Агент устанавливается на удалённое устройство, поддерживает постоянное соединение с сервером, отправляет heartbeat-сообщения и выполняет полученные команды.\
|
|
|
+\
|
|
|
+Система может использоваться в локальных сетях организаций, учебных лабораториях, тестовых инфраструктурах и средах администрирования для автоматизации контроля и управления удалёнными узлами.
|
|
|
+
|
|
|
+---
|
|
|
+# Введение
|
|
|
+В современных условиях стремительного развития информационных технологий и увеличения количества сетевых устройств возрастает необходимость централизованного мониторинга и удалённого управления компьютерными системами. Организации, учебные учреждения и частные администраторы сталкиваются с необходимостью оперативного контроля состояния удалённых устройств, автоматизации обслуживания инфраструктуры и обеспечения безопасного взаимодействия между клиентскими узлами и сервером управления.\
|
|
|
+\
|
|
|
+Системы класса RMM (Remote Monitoring and Management) предназначены для решения задач удалённого администрирования, мониторинга состояния устройств, автоматизированного выполнения команд и централизованного сбора информации о работе оборудования. Использование подобных систем позволяет существенно сократить время реагирования на инциденты, повысить эффективность сопровождения инфраструктуры и упростить процессы технического обслуживания.\
|
|
|
+\
|
|
|
+В рамках данного проекта разработан программный комплекс удалённого мониторинга и управления, состоящий из серверной части и клиентского агента. Серверная часть реализована с использованием языка программирования Python и фреймворка Flask, что обеспечивает гибкость разработки, поддержку REST API и возможность масштабирования системы. Клиентский агент разработан на языке Rust, обеспечивающем высокую производительность, безопасность работы с памятью и стабильность сетевого взаимодействия.\
|
|
|
+\
|
|
|
+Разработанная система поддерживает регистрацию агентов, двустороннее взаимодействие по WebSocket, передачу управляющих команд, сбор системной информации и ведение журналов аудита. Для обеспечения безопасности используются механизмы TLS/mTLS, JWT-аутентификация и ограничение количества запросов.\
|
|
|
+\
|
|
|
+Актуальность разработки обусловлена необходимостью создания безопасного и расширяемого решения для централизованного управления удалёнными устройствами, которое может применяться как в учебных целях, так и в небольших корпоративных инфраструктурах.\
|
|
|
+\
|
|
|
+Целью разработки является создание программного комплекса удалённого мониторинга и управления устройствами, обеспечивающего безопасное взаимодействие между сервером и агентами, централизованное выполнение команд и контроль состояния подключённых узлов.\
|
|
|
+
|
|
|
+---
|
|
|
+## Область применения
|
|
|
+Программный комплекс RMM применяется для удалённого администрирования и мониторинга компьютеров и серверов, подключённых к сети. Система ориентирована на использование:
|
|
|
+- в корпоративных локальных сетях;
|
|
|
+- в учебных и исследовательских лабораториях;
|
|
|
+- в тестовых инфраструктурах;
|
|
|
+- в системах централизованного администрирования;
|
|
|
+- в проектах автоматизации обслуживания удалённых устройств.
|
|
|
+
|
|
|
+Комплекс позволяет администраторам централизованно получать информацию о состоянии подключённых устройств, отправлять управляющие команды и контролировать сетевую активность агентов.
|
|
|
+
|
|
|
+---
|
|
|
+## Краткое описание возможностей
|
|
|
+Основные возможности программного комплекса:
|
|
|
+- регистрация и хранение информации об агентах;
|
|
|
+- централизованное управление удалёнными устройствами;
|
|
|
+- обмен сообщениями между сервером и агентами по WebSocket;
|
|
|
+- отправка и выполнение команд на удалённых устройствах;
|
|
|
+- периодическая отправка heartbeat-сообщений;
|
|
|
+- сбор системной информации об устройствах;
|
|
|
+- журналирование действий пользователей и агентов;
|
|
|
+- загрузка и хранение файлов;
|
|
|
+- REST API для интеграции с внешними системами;
|
|
|
+- использование JWT-аутентификации;
|
|
|
+- защита соединений с помощью TLS/mTLS;
|
|
|
+- ограничение запросов с использованием rate limiting;
|
|
|
+- административная веб-панель управления.
|
|
|
+
|
|
|
+---
|
|
|
+## Перечень эксплуатационной документации
|
|
|
+В состав эксплуатационной документации входят:
|
|
|
+- руководство пользователя;
|
|
|
+- руководство администратора;
|
|
|
+- руководство программиста;
|
|
|
+- описание архитектуры системы;
|
|
|
+- программа и методика испытаний;
|
|
|
+- инструкция по установке и настройке;
|
|
|
+- описание REST API;
|
|
|
+- описание конфигурационных файлов.
|
|
|
+
|
|
|
+---
|
|
|
+# Назначение и условия применения
|
|
|
+Программный комплекс RMM предназначен для удалённого мониторинга и управления устройствами в компьютерной сети.
|
|
|
+Система обеспечивает:
|
|
|
+- централизованное управление агентами;
|
|
|
+- контроль состояния подключённых устройств;
|
|
|
+- выполнение удалённых команд;
|
|
|
+- защищённый обмен данными между сервером и агентами;
|
|
|
+- хранение информации о действиях пользователей и агентов.
|
|
|
+
|
|
|
+\
|
|
|
+Условия применения системы:
|
|
|
+- Docker
|
|
|
+
|
|
|
+Или:
|
|
|
+- наличие установленного Python версии 3.11 или выше;
|
|
|
+- наличие Rust и Cargo для сборки агента;
|
|
|
+- наличие базы данных PostgreSQL;
|
|
|
+А также:
|
|
|
+- наличие сетевого соединения между сервером и агентами;
|
|
|
+- поддержка TLS-соединений;
|
|
|
+- операционная система семейства Windows или Linux.
|
|
|
+
|
|
|
+Минимальные требования к серверу:
|
|
|
+- процессор: 2 ядра;
|
|
|
+- оперативная память: от 2 ГБ;
|
|
|
+- свободное место на диске: от 1 ГБ;
|
|
|
+- Docker или установленный PostgreSQL или другая поддерживаемая СУБД.
|
|
|
+
|
|
|
+---
|
|
|
+# Установка
|
|
|
+становка серверной части с использованием Docker:
|
|
|
+1. Перейти в каталог сервера:
|
|
|
+2. Написать команду в терминале
|
|
|
+```Docker-compose up -d```
|
|
|
+
|
|
|
+
|
|
|
+Установка серверной части без Docker:
|
|
|
+- [ ] 1. Перейти в каталог сервера
|
|
|
+ ```cd server```
|
|
|
+- [ ] 2. Создать виртуальное окружение
|
|
|
+```python -m venv venv```
|
|
|
+- [ ] 3. Активировать виртуальное окружение
|
|
|
+```venv\Scripts\activate```
|
|
|
+- [ ] 4. Установить зависимости
|
|
|
+```pip install -r requirements.txt```
|
|
|
+- [ ] 5. Настроить файл ```.env```.
|
|
|
+- [ ] 6. Запустить сервер
|
|
|
+```python run.py```
|
|
|
+
|
|
|
+Установка агента
|
|
|
+1. Перейти в каталог агента
|
|
|
+```cd agent```
|
|
|
+2. Настроить файл ```config.json```.
|
|
|
+3. Выполнить сборку
|
|
|
+```cargo build --release```
|
|
|
+4. Запустить агент
|
|
|
+\
|
|
|
+<div align="left">
|
|
|
+
|
|
|
+> **Справка:**
|
|
|
+> Серверная часть RMM использует Flask и SQLAlchemy для обработки API-запросов и работы с базой данных.
|
|
|
+
|
|
|
+</div>
|
|
|
+
|
|
|
+<div align="center">
|
|
|
+
|
|
|
+> **Рекомендация:**
|
|
|
+> Для безопасной эксплуатации системы рекомендуется использовать TLS и регулярно обновлять сертификаты.
|
|
|
+
|
|
|
+</div>
|
|
|
+
|
|
|
+<div align="right">
|
|
|
+
|
|
|
+> **Внимание:**
|
|
|
+> Использование стандартного пароля администратора может привести к компрометации системы.
|
|
|
+
|
|
|
+</div>
|
|
|
+---
|
|
|
+# Описание операций
|
|
|
+Основные операции, выполняемые системой:
|
|
|
+1. Регистрация агента
|
|
|
+Агент отправляет информацию о себе на сервер и получает уникальный идентификатор.
|
|
|
+2. Поддержание соединения
|
|
|
+Агент периодически отправляет heartbeat-сообщения для подтверждения активности.
|
|
|
+3. Передача команд
|
|
|
+Администратор отправляет команду через сервер, после чего она передаётся агенту по WebSocket.
|
|
|
+4. Выполнение команд
|
|
|
+Агент принимает команду, выполняет её и возвращает результат выполнения.
|
|
|
+5. Работа с файлами
|
|
|
+Система позволяет загружать и хранить файлы на сервере.
|
|
|
+6. Аутентификация пользователей
|
|
|
+Для доступа к административной панели используется JWT-аутентификация.
|
|
|
+7. Ведение журнала аудита
|
|
|
+Все действия пользователей и агентов фиксируются в журнале событий.
|
|
|
+
|
|
|
+---
|
|
|
+# Термины и сокращения
|
|
|
+| Термин | Полная форма |
|
|
|
+| ------ | ------------ |
|
|
|
+| RMM | Remote Monitoring and Management — система удалённого мониторинга и управления|
|
|
|
+| Агент |Клиентское приложение, установленное на удалённом устройстве |
|
|
|
+| Сервер | Центральный компонент системы управления |
|
|
|
+| REST API | Интерфейс взаимодействия по HTTP |
|
|
|
+|WebSocket| Протокол двустороннего обмена данными|
|
|
|
+|JWT|JSON Web Token — механизм аутентификации|
|
|
|
+|TLS|Transport Layer Security — протокол защиты соединения|
|
|
|
+|mTLS|Mutual TLS — взаимная аутентификация по сертификатам|
|
|
|
+|Heartbeat|Периодическое сообщение о работоспособности агента|
|
|
|
+|SQLAlchemy|ORM-библиотека для работы с базой данных|
|
|
|
+|Rate Limiting|Ограничение количества запросов|
|
|
|
+|Audit Log|Журнал действий пользователей и системы|
|
|
|
+|Fingerprint|Уникальный отпечаток сертификата|
|
|
|
+|ORM|Object-Relational Mapping — технология взаимодействия с БД через объекты|
|
|
|
+
|
|
|
+# Контакты
|
|
|
+<details>
|
|
|
+<summary>Почта</summary>
|
|
|
+
|
|
|
+> Chernobai.e.s@yandex.ru
|
|
|
+
|
|
|
+</details>
|
|
|
+
|
|
|
+[Telegram](https://t.me/another_useless_nickname)
|