Skip to content

API-Key entfernen und natives Debian-Paket ergänzen - #2

Merged
amolani merged 6 commits into
mainfrom
agent/debian-package-no-api-key
Jul 14, 2026
Merged

amolani merged 6 commits into
mainfrom
agent/debian-package-no-api-key

Conversation

@amolani

@amolani amolani commented Jul 14, 2026 •

Copy link
Copy Markdown
Owner

Was geändert wurde

  • die anwendungsinterne API-Key-Authentifizierung samt UI-Key-Speicherung entfernt
  • Host-, Origin- und Cross-Site-Prüfungen als HTTP-Sicherheitsgrenze ergänzt
  • ein natives Debian-Paket für Ubuntu 26.04 und linuxmuster-linbo7 >= 4.3.33-0 hinzugefügt
  • Host-Konfiguration, SSH-Key-/linbofs-Integration, ACLs, systemd und sichere Legacy-Migration automatisiert
  • bei einer frischen Installation die konkrete private addc-Server-IP aus devices.csv erkennen und für Listener sowie Host-Allowlist verwenden
  • vorhandene Netzwerkwerte bei Paketupdates unverändert erhalten und bei uneindeutiger IP-Erkennung auf Loopback zurückfallen
  • die Weboberfläche als responsive, helle Admin-Oberfläche mit Profilkarten und dem Ablauf Hardware → Treiber → Image neu strukturiert
  • technische Bereiche wie match.conf, Einzeldatei-Upload und Log standardmäßig einklappen
  • Browser-API-Aufrufe bei bewusstem internem HTTP-Betrieb nicht mehr durch die CSP auf einen nicht vorhandenen HTTPS-Listener umschreiben
  • LINBO-Inventare im Profildialog nach exaktem DMI-Hersteller und -Modell gruppieren und Anzahl, Räume sowie veraltete Inventare anzeigen
  • klarstellen, dass der ausgewählte Host nur als Hardwareprobe dient und ein Modellprofil alle passenden Clients des zugewiesenen Images berücksichtigt
  • private SSH-Schlüssel auf den Dienstbenutzer mit Modus 0600 begrenzen
  • produktive Node-Abhängigkeiten bereinigen und Lizenzhinweise reproduzierbar aufnehmen
  • Dokumentation für LAN-Zugriff, Betrieb ohne eigenen API-Key und Ubuntu-24.04/7.3-Grenzen überarbeiten

Warum

Patchless läuft als Verwaltungsdienst direkt auf einem abgesicherten linuxmuster-Server. Ein separater statischer API-Key brachte dort keinen Benutzerkontext, erschwerte aber Installation und Bedienung. Der Zugriff wird deshalb über die konkrete interne Serveradresse und die Netzgrenzen des Betreibers oder alternativ über SSH-Tunnel bzw. einen authentifizierenden HTTPS-Reverse-Proxy begrenzt.

Die bisherige Oberfläche zeigte Status, Profile, Expertenkonfiguration, Uploads und Logs gleichzeitig. Die neue Struktur trennt Übersicht und Profilbearbeitung und bildet den tatsächlichen Arbeitsablauf ab.

Ein Profil ist nicht an den Hostnamen gebunden, aus dessen Inventar es erzeugt wurde. Die Oberfläche fasst deshalb identische DMI-Werte zusammen, statt bei großen Installationen hunderte einzelne Hosts zur Profilanlage anzubieten.

Das Debian-Paket übernimmt Abhängigkeiten, Hostintegration und Dienstverwaltung über APT und systemd. Es startet keinen Container.

Auswirkungen

  • kein Patchless-API-Key erforderlich
  • frische Paketinstallationen sind unter der automatisch erkannten internen Server-IP erreichbar; 10.0.0.14 ist nur die Referenzserver-Adresse und nicht fest codiert
  • bestehende Betreiberkonfigurationen werden bei Updates nicht überschrieben
  • bei mehreren oder fehlenden geeigneten privaten Adressen bleibt der sichere Loopback-Bind aktiv
  • vorhandene Profile und QCOW2-Images werden bei Paketoperationen nicht verändert oder entfernt
  • direkter HTTP-Zugriff besitzt keine Benutzeranmeldung und muss auf ein vertrauenswürdiges Adminnetz bzw. per Firewall begrenzt werden
  • Ubuntu 24.04/linuxmuster 7.3 bleibt vorerst nicht unterstützt, da dort Node.js 18 und 7-Zip 23.01 bereitgestellt werden
  • relative UI- und API-Aufrufe bleiben auch beim direkten LAN-Zugriff same-origin über HTTP
  • ein Modellprofil kann beliebig viele passende Clients des zugewiesenen Images bedienen; mehrere Produkte desselben Herstellers bleiben über zusätzliche product-Zeilen möglich
  • neue Clients erscheinen erst nach erfolgreichem Aufbau der LINBO-Cache-Partition und Erzeugung von *_hwinfo.gz; für noch nicht initialisierte Clients bleibt der Live-Scan verfügbar

Validierung

  • unmittelbar betroffene Paket- und Treibersuites: 124/124 Tests bestanden
  • Sicherheitsheader-/API-Suite nach dem HTTP-CSP-Fix: 41/41 Tests bestanden
  • UI-Skript parsebar; 59 eindeutige DOM-IDs und alle 50 Script-Referenzen aufgelöst
  • Installer- und Paketkonfigurator-Syntax erfolgreich geprüft
  • Debian-Paket reproduzierbar unter Ubuntu 26.04 gebaut
  • Upgrade auf einem Snapshot-basierten linuxmuster-Referenzserver mit linuxmuster-linbo7 7.4.5 erfolgreich
  • Dienst aktiv und aktiviert; Health-Status healthy, ready: true, Version 1.0.4
  • direkter Zugriff auf http://10.0.0.14:3001/ mit HTTP 200 bestätigt; neue Oberfläche ausgeliefert
  • ausgelieferte CSP enthält kein upgrade-insecure-requests; available-images liefert mint und win11_pro_edu
  • Listener an die konkrete interne IP gebunden; Host-Allowlist stimmt mit dieser IP überein
  • vorhandener SSH-Schlüssel blieb stabil und war weiterhin in linbofs enthalten
  • vorherige saubere Snapshot-Installation bestätigte erzeugte Postsync-Hooks und unveränderte QCOW2-Prüfsummen
  • Modellgruppierung mit exakten DMI-Werten, Vertreterauswahl, veralteten Inventaren und Image-Grenze überprüft; Inline-JavaScript syntaktisch gültig
  • Referenzclient sechs diagnostiziert: LINBO-Start und Logupload funktionieren, aber ohne vorhandenes /dev/disk0p4 entsteht erwartungsgemäß noch kein sechs_hwinfo.gz
  • finales DEB: linbo-patchless_1.0.4_all.deb, 789.026 Bytes
  • SHA-256: f6d52d80422522b2673baa7f4326291426c9eb06ab0b409aabddf6d352d15efa

Noch offen

Ubuntu 26.04 liefert derzeit 7-Zip 26.00. Bis eine gepatchte bzw. gebündelte 7-Zip-Version integriert ist, sollten keine nicht vertrauenswürdigen 7z-/EXE-Treiberarchive extrahiert werden. Die normale Installation, Oberfläche, Profilerkennung und Hook-Erzeugung sind davon nicht betroffen.

@amolani
amolani merged commit 236850a into main Jul 14, 2026
2 checks passed
@amolani
amolani deleted the agent/debian-package-no-api-key branch July 14, 2026 20:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant