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

Das Plugin (os-rmm-agent-*.pkg) wird über das OPNsense-Paketmanagement installiert:

# Auf der OPNsense-Firewall (SSH)
git clone https://git.cynfo.net/christian/rmm2.git /tmp/rmm
cd /tmp/rmm
scp opnsense-plugin/install.sh root@FIREWALL_IP:/tmp/
ssh root@FIREWALL_IP "/bin/sh /tmp/install.sh"

Anschliessend im OPNsense WebGUI unter Services → RMM Agent konfigurieren.

Konfiguration (WebGUI)

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

Manuell kompilieren & deployen

# Auf dem Entwicklungsrechner (mit Go 1.24+)
cd /opt/rmm
make agent

# Binary auf Firewall kopieren und installieren
scp build/rmm-agent root@FIREWALL_IP:/tmp/
scp agent-bsd/install.sh root@FIREWALL_IP:/tmp/
ssh root@FIREWALL_IP "/bin/sh /tmp/install.sh"

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