4.8 KiB
4.8 KiB
Agent — Installation & Konfiguration
Der RMM-Agent laeuft auf OPNsense (FreeBSD) und wird als OPNsense-Plugin mit WebGUI-Konfiguration installiert.
Komponenten
- Collectors: Hardware, CPU, Memory, Disk, Network, Services, WireGuard, DHCP, Routing, Gateways, Zertifikate, Plugins, Updates, Cron
- WebSocket Client: Persistente Verbindung zum Backend, automatisches Reconnect mit Backoff
- Command Handler: Remote-Befehlsausfuehrung, Tunnel-Connect/Disconnect
- Tunnel Manager: Session-basierte TCP-Verbindungen zu lokalen Diensten
1. Agent bauen
make agent # Erzeugt build/rmm-agent (freebsd/amd64)
2. Plugin installieren
# Binary + Installer auf die Firewall kopieren
scp build/rmm-agent root@OPNSENSE:/tmp/
scp opnsense-plugin/install.sh root@OPNSENSE:/tmp/
# Installer ausfuehren
ssh root@OPNSENSE '/bin/sh /tmp/install.sh'
Der Installer richtet alles ein:
- Binary nach
/usr/local/rmm/rmm-agent - rc.d Service (
/usr/local/etc/rc.d/rmm_agent) - OPNsense MVC Plugin (Model, Controller, View)
- configd Actions (start/stop/restart/status/reconfigure)
- Plugin-Hook fuer Service-Integration
- Setup-Script das Config aus dem Model generiert
3. WebGUI konfigurieren
- OPNsense WebGUI oeffnen
- Services > RMM Agent
- Felder ausfuellen:
- Aktiviert: Ankreuzen
- Backend URL:
https://BACKEND_IP:8443 - API Key: Backend API-Key eintragen
- Agent Name: Optional (Standard: Hostname)
- Heartbeat Intervall: 60 (Sekunden)
- Self-Signed Zertifikate: Ankreuzen bei self-signed Backend-Certs
- Speichern & Anwenden klicken
Der Agent startet automatisch und meldet sich am Backend an.
OPNsense Plugin WebGUI Fix (v1.0.3)
Der SettingsController wurde gefixt:
- Config-Parsing: Korrektes Parsen von
rmmagent[general][KEY]Formular-Feldern (OPNsense MVC-Konvention) - Initialer config.xml Eintrag: Beim ersten Speichern wird automatisch der
<rmmagent>Knoten in derconfig.xmlangelegt
4. Verifizieren
# Status in der WebGUI: Badge zeigt "Running"
# Oder per SSH:
ssh root@OPNSENSE 'service rmm_agent status'
# Auf dem Backend: Agent sollte erscheinen
curl -sk -H "X-API-Key: DEIN_API_KEY" https://BACKEND_IP:8443/api/v1/agents
Pre-Registration
Firewalls koennen vorab im System registriert werden, bevor der Agent installiert wird:
- Im Frontend auf "Firewall hinzufuegen" klicken (oder
POST /api/v1/agents) - Name und optionalen Kunden angeben
- Agent wird mit
hostname="(ausstehend)"angelegt - Bei der eigentlichen Agent-Registration wird automatisch nach Name gematcht (
GetAgentByName) - Der pre-registrierte Eintrag wird mit den echten Agent-Daten aktualisiert
Agent-Update (via Updater — empfohlen)
Der rmm-updater ist ein separater Daemon, der auf jeder Firewall neben dem Agent laeuft. Er prueft alle 60 Sekunden ob ein Update ansteht und fuehrt es automatisch durch.
Flow:
- Neue Agent-Binary im Frontend hochladen (Firmware-Seite)
- Update-Button bei einzelnem Agent oder "Alle updaten" klicken
- Updater erkennt den Flag, laedt die Binary vom Backend, stoppt Agent, ersetzt Binary, startet Agent
- Flag wird automatisch zurueckgesetzt
Technische Details:
- Separates Go-Binary (
rmm-updater), laeuft alsrmm_updaterrc.d Service - Liest die gleiche
config.yamlwie der Agent (Backend-URL, API-Key) - Download ueber
GET /api/v1/firmware/download?platform=freebsd - SHA256-Verifizierung vor Ersetzung
- Automatisches Rollback bei fehlgeschlagenem Agent-Start
- Backup der alten Binary als
.bakwaehrend des Updates - Logs:
/var/log/rmm-updater.log
Manuelles Update (Fallback):
make agent
scp build/rmm-agent root@OPNSENSE:/tmp/
ssh root@OPNSENSE '/bin/sh -c "service rmm_agent stop; cp /tmp/rmm-agent /usr/local/rmm/rmm-agent; chmod +x /usr/local/rmm/rmm-agent; service rmm_agent start"'
Oder Plugin komplett neu installieren (install.sh ist idempotent — installiert Agent + Updater).
Service-Filter (v1.0.3)
Boot- und Init-Scripts werden nicht mehr in der Dienste-Liste angezeigt:
- Gefiltert:
bgfsck,cleanvar,dmesg,hostid,ldconfig,motd,newsyslog,ntpd,resolv,syslogd,varund andere System-Boot-Scripts - Angezeigt: Nur echte OPNsense-Dienste (OpenVPN, Unbound, DHCPd, WireGuard, etc.)
pluginctlwird mit vollem Pfad/usr/local/sbin/pluginctlaufgerufen (FreeBSD-Kompatibilitaet)
Hinweise
- Agent-ID wird persistent in
/usr/local/rmm/agent_idgespeichert — ueberlebt Neuinstallationen - Config wird bei "Speichern & Anwenden" aus dem OPNsense-Model nach
/usr/local/rmm/config.yamlgeneriert - Logs:
/var/log/rmm-agent.log - PID-File:
/var/run/rmm_agent.pid - Agent braucht root auf OPNsense (fuer Hardware-/Service-Daten)
- OPNsense WebGUI typischerweise auf Port 4444 (nicht 443)