6.9 KiB
OpenWrt RMM
English · Релизы · Changelog · Безопасность
OpenWrt RMM — самостоятельная платформа удалённого мониторинга и управления роутерами OpenWrt. В неё входят облачный сервер на Go, компактный исходящий агент, адаптивный веб-интерфейс, временный доступ по SSH и LuCI, уведомления и подписанные репозитории пакетов OpenWrt.
На роутере не требуется открывать входящий порт. Агент подключается к серверу по HTTPS, а ограниченный обратный туннель создаётся только по запросу авторизованного оператора.
Возможности
- Отдельные аккаунты пользователей и привязка роутеров к владельцу.
- Одноразовые коды подключения роутеров.
- Инвентаризация, метрики, проверки соединения и определение присутствия LAN-клиентов.
- Безопасный ограниченный набор диагностических, пакетных и UCI-команд.
- Временный доступ к SSH и LuCI через изолированный облачный туннель.
- Центр уведомлений, e-mail, Telegram и подписанные webhook-запросы.
- Тихие часы, режим обслуживания и настройки алертов для каждого роутера.
- Адаптивный веб-интерфейс и LuCI-приложение для настройки агента.
- Подписанные IPK/APK-репозитории для поддерживаемых версий OpenWrt.
Компоненты
Браузер ──HTTPS──> RMM-сервер ──SQLite
│
├── обработчики уведомлений
└── изолированный SSH tunnel-сервис
▲
OpenWrt-роутер ──исходящие HTTPS/SSH─────┘
├── rmm-agent-go-production
├── luci-app-rmm-agent
└── luci-i18n-rmm-agent-ru (необязательно)
| Компонент | Назначение | Лицензия |
|---|---|---|
server/, web/ |
API, база данных, интерфейс и уведомления | AGPL-3.0-only |
deploy/tunnel/ |
Ограниченный обратный SSH-туннель | AGPL-3.0-only |
agent/ |
Go-агент, LuCI и пакеты OpenWrt | MIT |
Развёртывание
Потребуются:
- Docker Engine и Compose v2;
- HTTPS reverse proxy, например NPMplus;
- wildcard DNS-запись и сертификат для облачного доступа к LuCI;
- отдельный SSH-ключ для туннелей роутеров.
Скопируйте пример конфигурации и следуйте инструкции по развёртыванию:
cp .env.example .env
docker compose -f compose.yaml -f compose.release.yaml pull
docker compose -f compose.yaml -f compose.release.yaml up -d
docker compose -f compose.yaml -f compose.release.yaml ps
Не запускайте прод с примерными секретами. Сначала создайте ключ туннеля и заполните обязательные переменные окружения.
- Развёртывание через Docker Compose
- Настройка NPMplus
- Wildcard-доступ к роутерам в стиле KeenDNS
- Архитектура
Установка агента OpenWrt
Рекомендуемый способ — подписанный пакетный репозиторий:
- OpenWrt 24.10 и старше: IPK/opkg;
- OpenWrt 25.12 и новее: APK;
- OpenWrt 21.02, 22.03 и 23.05: уровень legacy-поддержки.
Установите агент и LuCI-приложение:
opkg install rmm-agent-go-production luci-app-rmm-agent
# или
apk add rmm-agent-go-production luci-app-rmm-agent
По умолчанию интерфейс LuCI остаётся английским. Русский язык устанавливается отдельным стандартным пакетом:
opkg install luci-i18n-rmm-agent-ru
# или
apk add luci-i18n-rmm-agent-ru
Адреса репозиториев, ключи проверки и инструкции для архитектур находятся в документе Подписанный репозиторий OpenWrt.
Разработка и проверки
go test ./...
go vet ./...
node --check web/app.js
docker compose config
Запуск сервера в явно включённом локальном режиме разработки:
RMM_INSECURE_DEV_MODE=true \
RMM_OPERATOR_PASSWORD='replace-with-a-long-development-password' \
go run ./server/cmd/rmm-server
Небезопасный режим разработки нельзя использовать на публичном сервере.
Релизы
Сервер и агент версионируются независимо:
server-v*публикует контейнеры сервера и tunnel-сервиса;agent-v*публикует устанавливаемые IPK/APK-пакеты;- подробные описания релизов ведутся на английском в CHANGELOG.md.
В GitHub Release загружаются только устанавливаемые пакеты. Подписанные индексы и публичные ключи публикуются через GitHub Pages, а provenance хранится в GitHub attestations. Подробнее: политика релизов.
Безопасность и лицензирование
Перед публикацией сервиса изучите модель безопасности. Перед каждым обновлением серверной части создавайте резервную копию SQLite volume.
Облачная часть распространяется по AGPL-3.0-only, агент и LuCI-пакеты — по MIT.
Подробнее: LICENSE.md и NOTICE.md.
