rmm2/agent-bsd

RMM Agent BSD (OPNsense)

FreeBSD/OPNsense Agent für das RMM-System. Läuft als OPNsense-Plugin und liefert Systemdaten via Heartbeat sowie Remote-Commands über WebSocket.

Unterstützte Systeme

  • OPNsense (FreeBSD, amd64)

Installation via OPNsense Plugin

1. Repo klonen und Plugin bauen (auf dem Backend-Server)

git clone https://git.cynfo.net/christian/rmm2.git /opt/rmm
cd /opt/rmm
make agent         # Baut das FreeBSD-Binary
make plugin        # Paketiert das OPNsense-Plugin (.pkg)

2. Installer-ZIP im Frontend hochladen

Frontend → Firmware → Installer-Pakete → freebsd → ZIP hochladen

Das ZIP enthält: rmm-agent + rmm-updater-freebsd + install.sh

# ZIP bauen (auf dem Build-Server)
cd /opt/rmm
make release VERSION=1.0.3
# → build/release/rmm-freebsd-1.0.3.zip

3. Installer auf der Firewall ausführen

Das Frontend zeigt nach dem Upload den fertigen Befehl mit Copy-Button. Auf der OPNsense-Firewall (SSH als root):

fetch --no-verify-peer --no-verify-hostname \
  -o /tmp/installer.zip \
  "https://BACKEND_IP:8443/api/v1/installer/download?platform=freebsd&api_key=DEIN_API_KEY" \
&& cd /tmp && unzip -o installer.zip && sh /tmp/install.sh

3. Im WebGUI konfigurieren

Services → RMM Agent öffnen und eintragen:

Feld Beschreibung
Backend URL https://BACKEND_IP:8443
API Key API-Key aus backend/config.yaml
Agent Name Anzeigename im RMM-Frontend

Konfigurationsdatei

# /usr/local/etc/rmm-agent/config.yaml
backend_url: "https://BACKEND_IP:8443"
api_key: "DEIN_API_KEY"
agent_name: "OPN.intra.kunde.de"
insecure: true   # false wenn gültiges TLS-Zertifikat vorhanden

Service-Management (FreeBSD)

# Status
service rmm-agent status

# Start / Stop / Restart
service rmm-agent start
service rmm-agent stop
service rmm-agent restart

# Logs
tail -f /var/log/rmm-agent.log

Gesammelte Daten (Heartbeat alle 60s)

Collector Daten
Hardware Hersteller, Modell, Seriennummer, BIOS
CPU Modell, Cores, Threads, Auslastung
Memory Total, Used, Free
Disks ZFS Datasets, Belegung, Mountpoints
Network Interfaces, IPs, Status, MAC, Statistiken
Services Laufende OPNsense-Dienste
WireGuard Tunnel, Peers, Transfer, Handshake
DHCP Aktive Leases (KEA/ISC/dnsmasq)
Routing Routing-Tabelle
Gateways Status, RTT, Loss
Zertifikate Ablaufdatum, Aussteller
Plugins Installierte OPNsense-Plugins
Updates Verfügbare Core + Package Updates
Cron System-Crontab + OPNsense Jobs

Remote-Commands (via WebSocket)

Command Beschreibung
exec Beliebigen Shell-Befehl ausführen
backup config.xml sichern
update OPNsense Update (Core + Packages)
major_update Major-Upgrade (2-Phasen)
reboot Neustart
tunnel_connect TCP-Tunnel öffnen (SSH, WebGUI, etc.)
wg_add_peer WireGuard-Peer anlegen
wg_delete_peer WireGuard-Peer löschen

Hinweise (FreeBSD)

  • Volle Pfade verwenden: /usr/local/sbin/pluginctl, /usr/bin/netstat
  • daemon statt nohup für Hintergrundprozesse
  • csh hat kein $() — Agent verwendet /bin/sh -c
  • OPNsense Plugin-Cache nach View-Änderungen leeren
  • PHP-Fehlerlog: /var/log/php-fpm.log