Plugin WebGUI fix, Pre-Registration, Service-Filter, Business-Lizenz, Firmware-Mgmt
This commit is contained in:
parent
e74cdce0ba
commit
fb5930051e
59
README.md
59
README.md
@ -1,7 +1,7 @@
|
||||
# OPNsense RMM System
|
||||
|
||||
Remote Monitoring & Management fuer OPNsense Firewalls.
|
||||
Go-basierter Agent + Backend mit WebSocket-Kommunikation und Session-basierten TCP-Tunneln.
|
||||
Go-basierter Agent (v1.0.3) + Backend mit WebSocket-Kommunikation und Session-basierten TCP-Tunneln.
|
||||
|
||||
## Architektur
|
||||
|
||||
@ -42,7 +42,7 @@ Client ──► Backend:ProxyPort ──► WebSocket (Binary) ──► Agent
|
||||
| Memory | Total, Used, Free | `sysctl` |
|
||||
| Disks | ZFS Datasets, Belegung, Mountpoints | `zfs list` |
|
||||
| Network | Interfaces, IPs, Status, MAC, Statistiken | `ifconfig` |
|
||||
| Services | Laufende Dienste, Status | `service -e`, `configctl` |
|
||||
| Services | Laufende OPNsense-Dienste (gefiltert) | `service -e`, `configctl`, `/usr/local/sbin/pluginctl` |
|
||||
| WireGuard | Tunnel, Peers, Transfer, Handshake | `wg show` |
|
||||
| DHCP | Aktive Leases (KEA/ISC/dnsmasq) | Lease-Dateien, KEA JSON |
|
||||
| Routing | Routing-Tabelle | `netstat -rn` |
|
||||
@ -356,6 +356,7 @@ Oder Plugin komplett neu installieren (`install.sh` ist idempotent — installie
|
||||
|---------|----------|-------------|
|
||||
| POST | `/api/v1/agent/register` | Agent registrieren (mit optionaler `agent_id`) |
|
||||
| POST | `/api/v1/agent/heartbeat` | Systemdaten senden |
|
||||
| POST | `/api/v1/agents` | Firewall pre-registrieren (`{name, customer_id?}`) |
|
||||
| GET | `/api/v1/agents` | Alle Agents auflisten |
|
||||
| GET | `/api/v1/agents/{id}` | Agent + Systemdaten abrufen |
|
||||
| GET | `/api/v1/agents/{id}/system` | Nur Systemdaten |
|
||||
@ -798,7 +799,7 @@ React + Vite + TailwindCSS Web-Frontend, deployed als statische Dateien auf Ngin
|
||||
| Seite | Beschreibung |
|
||||
|-------|-------------|
|
||||
| Dashboard | Uebersicht aller Firewalls, Status-Kacheln, AgentPanel per Klick |
|
||||
| Firewalls | Suchbare Tabelle, AgentPanel mit Tabs (Uebersicht, Interfaces, Dienste, Tunnel, VPN, WireGuard, Routen, DHCP, Zertifikate, Backups, Agent) |
|
||||
| Firewalls | Suchbare Tabelle, AgentPanel mit Tabs (Uebersicht, Interfaces, Dienste, Tunnel, VPN, WireGuard, Routen, DHCP, Zertifikate, Backups, Agent); Firewall hinzufuegen/loeschen |
|
||||
| Tunnel | Globale Tunnel-Uebersicht ueber alle Firewalls |
|
||||
| Firmware | Multi-Plattform Firmware-Upload, Agent-Update-Trigger |
|
||||
| Kunden | CRUD Kundenverwaltung |
|
||||
@ -914,6 +915,58 @@ rmm/
|
||||
- **Persistente Agent-ID**: Ueberlebt Agent- und Backend-Neustarts
|
||||
- **FreeBSD-kompatibel**: Volle Pfade (/usr/bin/netstat etc.), daemon statt nohup
|
||||
|
||||
## Neue Features (v1.0.3)
|
||||
|
||||
### OPNsense Plugin WebGUI Fix
|
||||
|
||||
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 der `config.xml` angelegt, sodass die WebGUI-Konfiguration sofort funktioniert
|
||||
|
||||
### Pre-Registration von Firewalls
|
||||
|
||||
Firewalls koennen vorab im System registriert werden, bevor der Agent installiert wird:
|
||||
|
||||
- **API**: `POST /api/v1/agents` mit `name` (Pflicht) und optionalem `customer_id`
|
||||
- Der Agent wird mit `hostname="(ausstehend)"` angelegt
|
||||
- Bei der eigentlichen Agent-Registration (`POST /api/v1/agent/register`) wird automatisch nach Name gematcht
|
||||
- **DB-Funktion**: `GetAgentByName` fuer das automatische Pre-Registration Matching
|
||||
- **Frontend**: "Firewall hinzufuegen" Dialog mit Installationsanleitung und Copy-Buttons fuer die Befehle
|
||||
|
||||
### Firewall loeschen
|
||||
|
||||
- Firewalls koennen direkt im Frontend ueber das Papierkorb-Icon im AgentPanel geloescht werden
|
||||
- Loescht den Agent und alle zugehoerigen Daten (Systemdaten, Events, Backups, Metriken)
|
||||
|
||||
### Service-Filter
|
||||
|
||||
Boot- und Init-Scripts werden nicht mehr in der Dienste-Liste angezeigt:
|
||||
- **Gefiltert**: `bgfsck`, `cleanvar`, `dmesg`, `hostid`, `ldconfig`, `motd`, `newsyslog`, `ntpd`, `resolv`, `syslogd`, `var` und andere System-Boot-Scripts
|
||||
- **Angezeigt**: Nur echte OPNsense-Dienste (OpenVPN, Unbound, DHCPd, WireGuard, etc.)
|
||||
- `pluginctl` wird mit vollem Pfad `/usr/local/sbin/pluginctl` aufgerufen (FreeBSD-Kompatibilitaet)
|
||||
|
||||
### OPNsense Business Edition Lizenz-Anzeige
|
||||
|
||||
Im Frontend im **Uebersicht-Tab** des AgentPanel wird die Lizenzinformation angezeigt:
|
||||
- **Product Name**: z.B. "OPNsense Business Edition"
|
||||
- **Subscription Key**: Lizenzschluessel
|
||||
- **Ablaufdatum**: Wann die Lizenz ablaeuft
|
||||
- **Restlaufzeit**: Visueller Farbbalken (gruen/gelb/rot je nach verbleibender Zeit)
|
||||
|
||||
### Firmware Management (Frontend)
|
||||
|
||||
Die **Firmware-Seite** im Frontend bietet:
|
||||
- **Multi-Platform Upload**: Agent-Binaries fuer FreeBSD, Linux und Windows hochladen
|
||||
- **Versions-Uebersicht**: Alle hochgeladenen Firmware-Versionen pro Plattform mit SHA256-Hash und Groesse
|
||||
- **Agent-Update-Buttons**: Update fuer einzelne Agents oder "Alle updaten" mit einem Klick
|
||||
|
||||
### Frontend Agent-Tab
|
||||
|
||||
Der **Agent-Tab** im AgentPanel zeigt:
|
||||
- **Agent-Info**: Version, Agent-ID, Plattform, Uptime
|
||||
- **Update-Button**: Direktes Agent-Update anfordern
|
||||
- **Befehle**: Remote-Shell-Befehle direkt aus dem Frontend ausfuehren
|
||||
|
||||
## Hinweise
|
||||
|
||||
- Backend braucht **kein root** — laeuft als normaler User auf Port 8443
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user