120 lines
3.3 KiB
Markdown
120 lines
3.3 KiB
Markdown
# 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)
|
|
|
|
```bash
|
|
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`
|
|
|
|
```bash
|
|
# 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):
|
|
|
|
```bash
|
|
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
|
|
|
|
```yaml
|
|
# /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)
|
|
|
|
```bash
|
|
# 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`
|