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.exein seinem endgültigen Ordner, zum BeispielC:\Golem\: Der Dienst startet diese Datei unter diesem Pfad. Im Modustunneldanebencloudflared.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.
golem guardian install --credential C:\Golem\juan.credSo läuft er im Modus tunnel, fragt das Portal alle 60 Sekunden, mit allen Tools und 30 Minuten Leerlaufzeit. Die Optionen:
| Option | Was sie tut | Standard |
|---|---|---|
--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|direct | tunnel 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 ankommt | 8797 |
--portal <url> | Welches Portal der Guardian anruft. Ändert sich nur, wenn Sie einen eigenen Vermittler betreiben | https://irwinrodriguez.dev/api |
--poll-seconds <n> | Wie viele Sekunden zwischen zwei Anfragen beim Portal, ob jemand angeklopft hat. Von 10 bis 3600 | 60 |
--public-host <Name oder IP> | Nur in direct: der Name oder die IP, über die Ihre Techniker diesen Rechner erreichen, ohne Schema, Port oder Pfad | der Rechnername |
--allow a,b | Wie bei serve: nur die passenden Tools | alle |
--read-only | Wie bei serve: nur die Tools, die hinsehen | |
--idle-minutes <n> | Minuten ohne Anfragen, bevor die Sitzung schließt. Von 1 bis 1440 | 30 |
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.
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:
| Datei | Was sie ist |
|---|---|
golem.guardian.json | Das 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.json | Das 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.json | Was der Dienst über das Portal weiß (ob es antwortet, und seit wann nicht), damit status es anzeigen kann |
golem-audit.log | Das ü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.
golem guardian status
golem guardian removeZum Aktualisieren von golem.exe den Dienst anhalten, die neue Datei darüberkopieren und ihn wieder starten. Slot und Identität ändern sich nicht.
sc stop GolemGuardian
copy /y golem.exe C:\Golem\golem.exe
sc start GolemGuardianWie 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:
%LOCALAPPDATA%\Golem\golem-client.exe --guardian-keyDas 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:
%LOCALAPPDATA%\Golem\golem-client.exe --guardian-cred %USERPROFILE%\Downloads\juan.credDer 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.
%LOCALAPPDATA%\Golem\golem-client.exe --guardian-renew3. Hineinkommen
Im Chat von Claude die acht Ziffern, die Ihr Unternehmen für diesen Server notiert hat:
golem_connect 3050 7712Der 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:
golem_connect guardian:https://srv01.clinica.local:8797Es 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:
golem_connect 3050 7712 B46C-BC08-56E3-9E3ADieselbe 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:
| Id | Wann | Was sie enthält |
|---|---|---|
| 1000 | Guardian installiert | ISV, installierender Techniker, Modus und Identität |
| 1001 | Guardian entfernt | |
| 1100 | Sitzung geöffnet | Techniker, ISV, Zugangsweg (portal oder direct) und eine kurze Sitzungs-ID |
| 1101 | Sitzung geschlossen | Die Sitzungs-ID und der Grund |
| 1200 | Anklopfen abgelehnt, als Warnung | Der 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:
| Code | Was zu tun ist |
|---|---|
guardian_sin_clave | Dieser Rechner hat keinen Schlüssel, oder er lässt sich mit diesem Windows-Konto nicht lesen. Mit --guardian-key erzeugen |
guardian_sin_credencial | Es 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_clave | Der Zugangsnachweis gehört zu einem anderen Schlüssel. Einen für den eigenen anfordern |
guardian_ranura_desconocida | Das Portal kennt diesen Slot nicht. Die acht Ziffern prüfen |
guardian_ranura_ocupada | Ein anderer Techniker hat diesen Server gerade angerufen. In einer Minute erneut versuchen |
guardian_portal_sin_respuesta | Das Portal antwortet nicht. Ist der Server in direct, braucht das direkte Anklopfen es nicht |
guardian_sin_respuesta_del_guardian | Der 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_cambiada | Der 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_casa | Direktes Anklopfen: Das Zertifikat ist nicht das des Guardians. Etwas steht dazwischen; nicht verbinden |
toque_isv_no_casa | Dieser Guardian wurde mit der Lizenz eines anderen Unternehmens installiert |
toque_fuera_de_plazo | Die Uhren von Techniker und Server liegen mehr als zwei Minuten auseinander. Die Uhrzeit korrigieren |
toque_ocupado | Ein anderer Techniker hat die Sitzung dieses Servers. Erneut versuchen, wenn er sie schließt |
guardian_renovar_baja | Ihr 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.