IR
irwinrodriguez.dev
Zurück zur Dokumentation

Guardian

Mit dem Guardian gelangen Ihre Techniker auf einen Server, vor dem niemand sitzt. Niemand muss golem serve starten oder die Zeile weitergeben, und niemand muss dafür vorher eine AnyDesk-Sitzung öffnen. Er ist neu in 1.4 und in der Lizenz Golem Unternehmen enthalten, ohne Kosten pro Server.

Der Server speichert kein Passwort. Er speichert ein Schloss, das die Zugangsnachweise der Techniker Ihres Unternehmens erkennt, und einen Windows-Dienst, der nach außen nichts annimmt, solange niemand anklopft. Klopft ein Techniker mit einem gültigen Zugangsnachweis an, öffnet der Dienst ihm eine normale Golem-Sitzung, mit einem neuen Token und nur für ihn, und schließt sie, wenn er sie nicht mehr nutzt.

Wo er nicht installiert ist, ändert sich nichts: Ohne Schloss verhält sich golem.exe wie in 1.3.1. Der Rest des Agenten steht im Server-Kit.

Was nötig ist

  • Eine Lizenz Golem Unternehmen. Damit legt der Administrator des Kontos seine Techniker unter Techniker an, und das Portal stellt jedem einen Zugangsnachweis aus. Eine Lizenz für einen Techniker oder ein Team hat keine Zugangsnachweise.
  • Den Zugangsnachweis eines dieser Techniker, in einer Datei.
  • Eine Konsole mit erhöhten Rechten (Als Administrator ausführen), weil ein Dienst installiert wird.
  • golem.exe in seinem endgültigen Ordner, zum Beispiel C:\Golem\: Der Dienst startet diese Datei unter diesem Pfad. Im Modus tunnel daneben cloudflared.exe, wie es im Kit liegt.

Auf einem Server installieren

Beim ersten Mal geschieht das aus einer betreuten Sitzung, mit jemandem vom Kunden vor Ort oder über die übliche Fernsitzung. Diese Installation ist der Moment, in dem der Kunde seine Erlaubnis gibt. Das Schloss wird mit dem Datum, Ihrem Unternehmen und dem installierenden Techniker geschrieben und ist der Nachweis dieser Einwilligung.

Den Guardian installieren, in einer Konsole mit erhöhten Rechten
golem guardian install --credential C:\Golem\juan.cred

So läuft er im Modus tunnel, fragt das Portal alle 60 Sekunden, mit allen Tools und 30 Minuten Leerlaufzeit. Die Optionen:

OptionWas sie tutStandard
--credential <Datei>Der Zugangsnachweis des Technikers, mit dem installiert wird. Pflicht. Aus ihm stammen Ihr Unternehmen (der ISV) und der Name der installierenden Person
--mode tunnel|directtunnel für einen Server hinter einem Router; direct für einen mit erreichbarer IP (ein VPS, oder über das VPN, das Sie schon mit dem Kunden haben)tunnel
--port <n>In direct der Port, auf dem Anklopfen und Sitzung annehmen. In tunnel der lokale Port, an dem der Tunnel ankommt8797
--portal <url>Welches Portal der Guardian anruft. Ändert sich nur, wenn Sie einen eigenen Vermittler betreibenhttps://irwinrodriguez.dev/api
--poll-seconds <n>Wie viele Sekunden zwischen zwei Anfragen beim Portal, ob jemand angeklopft hat. Von 10 bis 360060
--public-host <Name oder IP>Nur in direct: der Name oder die IP, über die Ihre Techniker diesen Rechner erreichen, ohne Schema, Port oder Pfadder Rechnername
--allow a,bWie bei serve: nur die passenden Toolsalle
--read-onlyWie bei serve: nur die Tools, die hinsehen
--idle-minutes <n>Minuten ohne Anfragen, bevor die Sitzung schließt. Von 1 bis 144030

Am Ende gibt er zwei Angaben aus, die Sie im Inventar dieses Kunden notieren müssen. Der Slot sind die acht Ziffern, die der Techniker zum Hineinkommen eingibt; sie ändern sich nicht, solange der Guardian installiert bleibt. Die Identität sind 16 Hexadezimalzeichen, der Fingerabdruck des Schlüssels des Guardians: Damit prüft der Techniker, dass am anderen Ende dieser Server steht und kein anderer.

Was die Installation ausgibt (golem.exe spricht Spanisch oder Englisch)
Guardian installed: service GolemGuardian, ISV lic_01m2k8..., installed by Juan Perez, mode tunnel. The lock is C:\Golem\golem.guardian.json; to revoke everything: golem guardian remove
Guardian identity: B46CBC0856E39E3A. Write it down in the inventory: it is the one the technician pins the first time they come in through the portal.
Portal slot: 3050 7712. A technician of this ISV gets in with those eight digits (portal https://irwinrodriguez.dev/api).

Antwortet das Portal während der Installation nicht, wird der Guardian trotzdem installiert, ohne Slot, und sagt es in Rot. Ohne Slot kommt niemand über das Portal hinein. Abhilfe schaffen golem guardian remove und erneut install, sobald das Portal antwortet.

Die beiden Modi

In tunnel nimmt der Guardian außerhalb des Rechners nichts an. Er öffnet einen Cloudflare-Schnelltunnel erst, wenn ein Anklopfen eintrifft, das alle Prüfungen bestanden hat, und schließt ihn mit der Sitzung. Es gelten die Grenzen des Tunnels aus dem Server-Kit: Kein Aufruf darf länger als 125 Sekunden dauern.

In direct nimmt er auf seinem Port an, mit TLS und einem eigenen Zertifikat, das einmal erzeugt wird. Neben den acht Ziffern kann der Techniker den Port direkt anrufen, ohne Portal und ohne auf eine Abfrage zu warten, und fällt das Portal aus, funktioniert dieser Weg weiter. In Windows entsteht die eingehende Firewall-Regel für seinen Port, die der Dienst beim Start anlegt und beim Beenden entfernt.

Was auf dem Rechner bleibt

Neben golem.exe:

DateiWas sie ist
golem.guardian.jsonDas Schloss, als lesbares JSON: Ihr Unternehmen, wer es wann installiert hat, Modus, Portal, Slot, Tools und Leerlaufzeit. Das Slot-Geheimnis ist mit der DPAPI des Rechners verschlüsselt
golem.guardian.cert.jsonDas Zertifikat des Guardians, aus dem seine Identität stammt. Der private Teil ist mit der DPAPI von LocalSystem verschlüsselt. Es wird einmal erzeugt und hält, solange der Guardian besteht
golem.guardian.portal.jsonWas der Dienst über das Portal weiß (ob es antwortet, und seit wann nicht), damit status es anzeigen kann
golem-audit.logDas übliche Log. Jedes Anklopfen, angenommen oder abgelehnt, mit dem Namen des Technikers, und jeder Aufruf der Sitzung

In Windows bleiben der Dienst GolemGuardian, der als LocalSystem läuft und mit dem Rechner startet, und die Quelle GolemGuardian im Ereignisprotokoll Anwendung.

Das Schloss enthält keinen Schlüssel. Das Slot-Geheimnis dient nur dazu, beim Portal nachzufragen, ob jemand angeklopft hat, und damit kommt niemand auf den Server.

Prüfen, entfernen und aktualisieren

golem guardian status braucht weder erhöhte Rechte noch einen Zugangsnachweis: Es zeigt Schloss, Modus, Slot, Identität und den Zustand des Dienstes und warnt in Rot, wenn etwas nicht stimmt. golem guardian remove entfernt in einer Konsole mit erhöhten Rechten alles: den Dienst, das Schloss, das Zertifikat, den Portalstatus und die Quelle im Ereignisprotokoll. Nur golem-audit.log bleibt, weil es dem Eigentümer des Rechners gehört. Wird er erneut installiert, bekommt er einen neuen Slot und eine neue Identität.

Zustand prüfen und entfernen
golem guardian status
golem guardian remove

Zum Aktualisieren von golem.exe den Dienst anhalten, die neue Datei darüberkopieren und ihn wieder starten. Slot und Identität ändern sich nicht.

golem.exe bei installiertem Guardian aktualisieren
sc stop GolemGuardian
copy /y golem.exe C:\Golem\golem.exe
sc start GolemGuardian

Wie ein Techniker hineinkommt

Nötig sind ein Schlüssel auf seinem Rechner, ein Zugangsnachweis von seinem Unternehmen und die acht Ziffern des Servers. Die ersten beiden Schritte geschehen einmal.

1. Der Schlüssel

Auf dem Rechner des Technikers:

Den Schlüssel des Technikers erzeugen
%LOCALAPPDATA%\Golem\golem-client.exe --guardian-key

Das erzeugt einen Schlüssel in %APPDATA%\Golem\guardian.key, verschlüsselt mit der DPAPI seines Windows-Benutzers, und gibt dessen öffentlichen Teil und Fingerabdruck aus. Er gilt nur auf diesem Rechner und mit diesem Konto: Auf einem neuen Rechner erzeugt der Techniker einen anderen und bittet um einen Zugangsnachweis dafür.

2. Der Zugangsnachweis

Der Techniker gibt den öffentlichen Schlüssel an den Administrator des Kontos Golem Unternehmen, der ihn unter Techniker anlegt und ihm den Zugangsnachweis schickt, den das Portal ausstellt. Der Techniker speichert ihn mit:

Den Zugangsnachweis speichern
%LOCALAPPDATA%\Golem\golem-client.exe --guardian-cred %USERPROFILE%\Downloads\juan.cred

Der Zugangsnachweis läuft nach 30 Tagen ab. Er verlängert sich selbst, wenn golem_connect auf einen Guardian zugreift und weniger als 7 Tage übrig sind (oder er vor weniger als 7 Tagen abgelaufen ist), und von Hand mit --guardian-renew. Verlängert wird, solange der Techniker angelegt bleibt und die Unternehmenslizenz aktiv ist; mehr als 7 Tage nach Ablauf muss der Administrator ihn neu ausstellen.

Den Zugangsnachweis von Hand verlängern
%LOCALAPPDATA%\Golem\golem-client.exe --guardian-renew

3. Hineinkommen

Im Chat von Claude die acht Ziffern, die Ihr Unternehmen für diesen Server notiert hat:

Über das Portal hineinkommen
golem_connect 3050 7712

Der Client hinterlegt das Anklopfen im Portal und wartet auf die Antwort, die mit der nächsten Abfrage des Guardians kommt: höchstens eine Minute mit den Werkseinstellungen, plus einige Sekunden, wenn er einen Tunnel öffnet. Ab da ist es eine Golem-Sitzung wie jede andere. Bei einem Server mit IP im Modus direct lässt sich der Port ohne Umweg über das Portal anrufen:

Direktes Anklopfen bei einem Guardian im Modus direct
golem_connect guardian:https://srv01.clinica.local:8797

Es gibt eine Sitzung zur selben Zeit: Ist ein anderer Techniker drin, bekommt der zweite toque_ocupado, ohne zu erfahren, wer es ist. Da der Dienst keinen Desktop hat, funktionieren screenshot und list_monitors über den Guardian nicht.

Die Identität des Guardians

Die Antwort, die über das Portal kommt, ist vom Guardian signiert, und der Client des Technikers prüft sie so, wie SSH den Schlüssel eines Servers prüft. Beim ersten Zugriff über einen Slot merkt er sich die Identität dieses Guardians; danach verlangt er dieselbe, und ändert sie sich, kommt guardian_identidad_cambiada und er verbindet nicht. Hat Ihr Unternehmen die Identität im Inventar, kann der Techniker sie schon beim ersten Mal verlangen, indem er sie hinter die acht Ziffern schreibt:

Hineinkommen und die Identität des Guardians verlangen
golem_connect 3050 7712 B46C-BC08-56E3-9E3A

Dieselbe Form dient dazu, eine berechtigte Änderung anzunehmen, etwa wenn der Guardian ein neues Zertifikat erzeugen musste. Beim direkten Anklopfen ist das nicht nötig: Das TLS-Zertifikat wird mit dem Fingerabdruck abgeglichen, der in der verschlüsselten Antwort steckt.

Was der Kunde sieht

Der Nachweis dessen, was getan wird, bleibt auf seinem Server. golem-audit.log neben golem.exe vermerkt jedes Anklopfen, angenommen oder abgelehnt, mit dem Namen des Technikers aus seinem geprüften Zugangsnachweis, und jeden Aufruf der Sitzung. Es enthält nie Tokens oder Zugangsnachweise.

Wer den Server betreut, sieht es auch in der Ereignisanzeige, unter Windows-Protokolle, Anwendung, mit der Quelle GolemGuardian:

IdWannWas sie enthält
1000Guardian installiertISV, installierender Techniker, Modus und Identität
1001Guardian entfernt
1100Sitzung geöffnetTechniker, ISV, Zugangsweg (portal oder direct) und eine kurze Sitzungs-ID
1101Sitzung geschlossenDie Sitzungs-ID und der Grund
1200Anklopfen abgelehnt, als WarnungDer Code und der Techniker, falls lesbar

Solange niemand anklopft, ist die Tür zu: Im Modus tunnel nimmt der Dienst außerhalb des Rechners nichts an. Die Sitzung schließt sich nach 30 Minuten ohne Anfragen von selbst, der Tunnel schließt sich mit ihr, und das Token wird ungültig. Der Kunde kann den Guardian jederzeit mit golem guardian remove entfernen, und danach kommt niemand mehr hinein.

Was das Portal sieht und was nicht

Der Golem-Agent ruft niemanden an. Der Guardian ist die einzige Ausnahme, und sie ist begrenzt: Nur der Guardian-Dienst ruft an, nur die URL aus seinem Schloss und nur, um nach seinem Slot zu fragen. Fast immer ist die Antwort leer.

Das Portal vermittelt, ohne lesen zu können, was hindurchgeht. Es speichert den Slot, den Hash seines Geheimnisses und, für einige Minuten, verschlüsselte Anklopfzeichen und Antworten. Es kennt weder den Namen des Rechners noch seine IP und sieht keine Befehle, Dateien oder Sitzungen. Über Ihr Unternehmen weiß es, was es schon aus der Lizenz wusste, dazu die Liste der Techniker, die Sie unter Techniker anlegen.

Antwortet das Portal nicht, läuft der Dienst weiter und versucht es erneut, in wachsenden Abständen. Ein Slot, der 90 Tage lang nicht abgefragt wird, wird neu vergeben, etwa der eines Servers, der drei Monate ausgeschaltet war: status sagt es in Rot, und Abhilfe schaffen remove und install.

Einen eigenen Vermittler betreiben

Will Ihr Unternehmen beim Anklopfen nicht vom Portal irwinrodriguez.dev abhängen, kann es einen eigenen Vermittler betreiben. Der Vertrag (fünf Routen und was jede speichert) steht in GUARDIAN-RELAY.md, auf Spanisch und Englisch. Auf dem Server wird er bei der Installation mit --portal angegeben, auf dem Rechner des Technikers mit der Umgebungsvariablen GOLEM_PORTAL im Block env der .mcp.json.

Zugangsnachweise und ihre Verlängerung stellt immer das Portal irwinrodriguez.dev aus, auch wenn das Anklopfen über Ihren Vermittler läuft, weil sie zur Unternehmenslizenz gehören.

Wenn etwas nicht geht

Die häufigsten Codes und was zu tun ist:

CodeWas zu tun ist
guardian_sin_claveDieser Rechner hat keinen Schlüssel, oder er lässt sich mit diesem Windows-Konto nicht lesen. Mit --guardian-key erzeugen
guardian_sin_credencialEs gibt einen Schlüssel, aber keinen Zugangsnachweis. Mit --guardian-cred installieren
guardian_credencial_caducada--guardian-renew, oder ein neuer vom Administrator, wenn er vor mehr als 7 Tagen abgelaufen ist
guardian_credencial_de_otra_claveDer Zugangsnachweis gehört zu einem anderen Schlüssel. Einen für den eigenen anfordern
guardian_ranura_desconocidaDas Portal kennt diesen Slot nicht. Die acht Ziffern prüfen
guardian_ranura_ocupadaEin anderer Techniker hat diesen Server gerade angerufen. In einer Minute erneut versuchen
guardian_portal_sin_respuestaDas Portal antwortet nicht. Ist der Server in direct, braucht das direkte Anklopfen es nicht
guardian_sin_respuesta_del_guardianDer Guardian hat nicht innerhalb von 120 Sekunden geantwortet: Der Server ist aus, oder der Dienst ist angehalten oder hat keinen Slot. Jemand vor Ort muss golem guardian status ansehen
guardian_identidad_cambiadaDer Guardian dieses Slots signiert mit einer anderen Identität. Jemand soll golem guardian status auf dem Server prüfen; ist die Änderung berechtigt, mit der neuen Identität hinter den acht Ziffern hineingehen
guardian_cert_no_casaDirektes Anklopfen: Das Zertifikat ist nicht das des Guardians. Etwas steht dazwischen; nicht verbinden
toque_isv_no_casaDieser Guardian wurde mit der Lizenz eines anderen Unternehmens installiert
toque_fuera_de_plazoDie Uhren von Techniker und Server liegen mehr als zwei Minuten auseinander. Die Uhrzeit korrigieren
toque_ocupadoEin anderer Techniker hat die Sitzung dieses Servers. Erneut versuchen, wenn er sie schließt
guardian_renovar_bajaIhr Unternehmen hat Sie abgemeldet, und der Zugangsnachweis wird nicht mehr verlängert

Die Codes toque_* kommen innerhalb von guardian_toque_rechazado: Der Guardian setzt sie, wenn er das Anklopfen ablehnt.