TRMM-Linux-Agent-Konzept

abstract: Kurzfassung Linux-Hosts in TRMM laufen bei CORESTREAM inzwischen über einen eigenen Linux-Agent-Fork mit vorgebauten, SHA256-verifizierten Linux-Binaries und mobile-freundlichem curl | bash-Installer. Der frühere netvolt-/Live-Compile-Workaround entfällt. Der Pilot mit v2.11.0-cs4 wurde erfolgreich getestet; Mesh + tacticalagent.service funktionieren.


1. Problemstellung

warning: Show-Stopper im MSP-Alltag Linux-Hosts lassen sich in TRMM nur über einen umständlichen, nicht automatisierbaren Workaround aufnehmen. Pro Maschine von Hand — nicht skalierbar.

success: Lösung Eigenen Fork + Build-CI betreiben → vorgebaute, SHA256-verifizierte Linux-Binaries + sauberes curl | bash-Install-Script. Kein TRMM-Token, keine Paywall, kein manueller Umweg.


2. Ausgangslage (faktisch)

bug: Sicherheitsproblem des Umwegs Lädt Go vom Web, clont master (ungepinnt!) und kompiliert zur Laufzeit auf dem Kunden-Server. Exakt die „fremdes Binary/Source vertrauen"-Falle aus dem 2021/22 Miner-Vorfall — nur als Live-Source statt als Binary.


3. Zielbild

Eigener Fork mit vorgebauten, verifizierten Linux-Binaries + sauberem Installer.


4. Komponenten

4.1 Fork-Strategie

4.2 Build-CI (erzeugt die Binaries)

4.3 Install-Script (Ersatz für netvolt)

4.4 Update-Pfad

4.5 Security (aus Miner-Review)


5. Linux-Code Gaps

Funktionen in agent_unix.go sind oft Stub/nil — Linux kann weniger als Windows:

Funktion Linux-Status Bedeutung
GetDisks / checkin / RunScript / Terminal / Mesh ✅ implementiert Kern-RMM funktioniert
GetInstalledSoftware {} (leer) Keine Software-Inventur
SendSoftware {} kein Reporting
GetServiceDetail / ControlService / EditService Windows-only Service-Steuerung nur via Script
PatchMgmnt nil kein Patch-Management
CreateSchedTask / ListSchedTasks nil kein GUI-Task-Scheduling
GetWinUpdates / InstallUpdates Windows kein OS-Update-Mgmt
GetEventLog Windows kein Eventlog
InstallChoco Windows kein Chocolatey

note: Fazit Linux-Agent taugt für Monitoring, Scripts, Terminal, Mesh — aber keine Software-Inventur, kein Patch-Mgmt, keine Service-UI. Feature-Gap, kein Bug. Entscheidung: Gaps füllen oder „Monitoring-only" akzeptieren?


6. Code-Signing-Strategie (Linux-fokussiert)

Plattform Signing nötig? Maßnahme
Linux ❌ nein SHA256-Verifikation statt Signatur (reicht, da wir Build kontrollieren)
macOS 🚫 vorerst NEIN (2026-07-28) kein Apple-Dev-Account; bei Bedarf später nachrüsten
Windows ❌ vorerst raus läuft weiter via TRMM-Sponsor / unsigniert + AV-Exclusion

info: Kernpunkt Der 400-Fehler verschwindet komplett, sobald wir die Build-CI selbst betreiben — kein TRMM-Token, keine Paywall, kein manueller netvolt-Umweg mehr.


7. Risiken

caution: Wichtig

  • Fork-Pflegeverantwortung dauerhaft (Build-Kette + Security-Tracking)
  • CVEs manuell verfolgen (kein upstream-Auto-Patch)
  • Lizenz: Tactical RMM License v1.0 ist kein OSI-Open-Source — verbietet kommerziellen Weiterverkauf. Interne MSP-Nutzung OK; Rebrand nur intern, kein gebrandeter SaaS-Verkauf

8. Rollout (Phasen)

  1. Dev-VM: Fork + CI + Install-Script testen (Linux-VM bei euch)
  2. Pilot: 1–2 eigene CORESTREAM-Hosts
  3. Prod: ausgewählte Kunden-Linux-Server

8b. Scaffold-Stand 2026-08-17

success: Erster interner Scaffold gebaut Upstream amidaware/rmmagent wurde auf Tag v2.11.0 / Commit e6b61ba540af2df9d13247f96538397daa3c4f1f gepinnt, statisch geprüft und lokal als CORESTREAM-Scaffold vorbereitet.

Lokaler Arbeitsstand auf Hermes:

Gebaut/verifiziert:

Artefakte lokal:

Checksums der Linux-Binaries:

Package-Checksums:

success: Self-Update-Härtung erledigt Der Installer und der Linux-Self-Update-Pfad verifizieren jetzt SHA256. Voraussetzung: Update-URLs zeigen auf internes Artefaktlayout <BASE_URL>/<VERSION>/rmmagent-linux-<arch> und daneben liegt SHA256SUMS.


8c. Produktiver Installer-Stand 2026-09-09

success: Pilot bestätigt Der kurze Linux-Installer wurde mit v2.11.0-cs4 auf einer Testmaschine erfolgreich ausgeführt. Agent registriert sich im RMM, Mesh wird installiert und tacticalagent.service läuft.

Aktueller Prozess für Techniker:

  1. In Tactical RMM Client/Site und Enrollment-/Deployment-Token bestimmen.

  2. Auf Linux-Zielhost folgenden Befehl ausführen:

    curl -fsSL https://git.corestream.ch/corestream/rmmagent/~raw/main/install-linux.sh | sudo bash -s -- -c CLIENT -s SITE -t TOKEN

  3. Wenn Werte nicht direkt im Befehl stehen, fragt der Installer interaktiv nach:

    • Client-ID
    • Site-ID
    • Enrollment-Token/Auth verdeckt
  4. Nach Installation prüfen:

    • RMM: Host erscheint unter der gewählten Client/Site.
    • Systemd: tacticalagent.service läuft.
    • Mesh: Remote-Control-Verknüpfung ist vorhanden.

Aktueller Artefaktstand v2.11.0-cs4 im OneDev-Raw-Pfad:

Relevante Commits:

Offen für nächsten Ausbau:


9. Offene Entscheidungen


Verwandt


Quelle: Obsidian Knowledge Base/TacticalRMM/TRMM-Linux-Agent-Konzept.md · Stand: 2026-09-20 · Automatisiert publiziert durch Hermes.


Revision #1
Created 2026-10-11 23:34:31 UTC by Hermes
Updated 2026-10-11 23:34:31 UTC by Hermes