Zum Inhalt springen

Ralf Joos — IT-Systemadministrator, Freiburg

Über 25 Jahre Windows-Infrastruktur. Seit März 2026 baue ich meine eigenen Werkzeuge.

Davon 13 Jahre hauptverantwortlich für das Active Directory einer Körperschaft des öffentlichen Rechts. Dazu Gruppenrichtlinien, Zertifikatsdienste, Citrix, Virtualisierung und Netzwerk.

Seit März 2026 arbeite ich mich in KI-gestützte Administration ein. Dabei sind acht Projekte entstanden. Sie stehen hier in der Reihenfolge, in der ich sie gebaut habe. Bei den größeren steht dabei, was schiefging.

Projekte 2026

seit März 2026

Ein Berechtigungsmanagement für Active Directory

Ein neuer Mitarbeiter fängt an, und jemand legt sein Konto von Hand an. Das dauert Stunden bis Tage und wird uneinheitlich: der eine schreibt m.mueller, der andere mueller_m. Vor allem braucht es dafür ein Konto mit Vollzugriff auf das ganze Verzeichnis. Wer diese Zugangsdaten erbeutet, dem gehört das Netz. So laufen die Verschlüsselungsangriffe ab, von denen man in der Zeitung liest.

Was entstanden ist

Aus der reinen Kontenanlage wurde ein Berechtigungsmanagement mit sechs Bausteinen. Eintritt, Abteilungswechsel und Austritt decken den Lebenszyklus ab. Dazu kamen drei Teile, die man erst später vermisst: eine Übersicht, wer worauf Zugriff hat, eine Rezertifizierung, mit der Berechtigungen regelmäßig bestätigt werden müssen, und ein durchgehendes Protokoll. Sicherheitstechnisch ist der Austritt der wichtigere Fall. Vergessene aktive Konten ehemaliger Mitarbeiter sind ein verbreitetes Problem.

Zwei Entscheidungen, auf die es ankam

Der naheliegende Weg wäre gewesen, die Zugangsdaten eines Administrators irgendwo zu hinterlegen und ein Programm damit arbeiten zu lassen. Dieses Programm kann dann alles, was der Administrator kann. Bei mir führt der Zugang zum Domain Controller genau einen Befehl aus und sonst nichts. Das ist technisch erzwungen und nicht bloß vereinbart. Beim Test habe ich nachgesehen, welche Befehle in dieser Sitzung sichtbar sind: neun. Der eine Provisionierungsbefehl und acht Standardfunktionen, die das System zum Betrieb braucht.

Der zweite klassische Fehler ist ein Dienstkonto mit festem Passwort in einer Konfigurationsdatei. Solche Passwörter werden nie geändert und stehen irgendwann in einer Dokumentation. Bei mir erzeugt das System das Passwort selbst, wechselt es alle 30 Tage und gibt es nur an namentlich freigegebene Server heraus. Kein Mensch kennt es. Es lässt sich also weder weitergeben noch aus einer Datei stehlen. Berechtigt ist das Konto außerdem nur für einen eng begrenzten Zweig des Verzeichnisses.

So läuft die Benutzerverwaltung: Ein Dienst ohne Admin-Rechte spricht über einen eingeschränkten JEA-Endpunkt, der als gruppenverwaltetes Dienstkonto läuft und nur drei Funktionen zulässt. Diese wirken nur in der OU Mitarbeiter, das übrige Active Directory bleibt gesperrt.
Der Dienst darf nur drei Befehle und nur in einem Zweig des Verzeichnisses — und läuft unter einem Dienstkonto, dessen Passwort niemand kennt.

Was der erste echte Testlauf gefunden hat

Sechs Fehler, die auf dem Papier unsichtbar waren. Zwei davon steckten in meinem eigenen Konzept. Ein Beispiel: Ein Anmeldename darf höchstens 20 Zeichen lang sein. Der Testname traf diese Grenze genau. Als die Automatik zur Unterscheidung eine Ziffer anhängen wollte, waren es 21, und das System verweigerte die Anlage. Unentdeckt wäre das erst aufgefallen, wenn zwei Mitarbeiter mit langem Namen gleich heißen. Also selten und mitten im Tagesgeschäft.

Beide Konzeptfehler sind mir nur aufgefallen, weil die Übersichtsseite den tatsächlichen Zustand im Verzeichnis anzeigt und nicht den geplanten. Ich baue diese Ansicht seitdem früh und nicht am Ende.

seit Juli 2026

Ein Vokabeltrainer im Dauerbetrieb

Angefangen hat das als Werkzeug für mein tägliches Englisch. Inzwischen läuft es dauerhaft: 177 Tage Lernstoff, 589 Wörter, von unterwegs erreichbar, eigene Adresse, gültiges Zertifikat. Namensauflösung, Zertifikat und Webserver laufen auf einer Maschine, die ich selbst betreibe.

Eine umgedrehte Lernkarte: das englische Wort mit Aussprache, die Übersetzung, ein Beispielsatz und zwei Knöpfe zum Bewerten
Die Rückseite einer Lernkarte: Aussprache, Übersetzung, ein Satz aus dem Lernstoff.

Den Lernstand halte ich im Browser statt auf dem Server. Damit brauche ich keine Datenbank und keine personenbezogenen Daten. Sichern muss der Nutzer dann selbst, deshalb steht das in der Anleitung.

Einmal meldete jemand, die Sprachausgabe gehe nicht. Ich habe zwei Runden im Code gesucht und nichts gefunden. Es lag am Gerät: eines mit einer Beta-Version des Betriebssystems, zwei andere liefen normal. Heute frage ich bei einem gemeldeten Fehler zuerst, wo er nicht auftritt. Mit einem zweiten Gerät ist das in zwei Minuten geklärt.

seit August 2026

Ein CCNA-Fragentrainer mit Erklärungen

Ich bereite mich selbst auf den CCNA vor. Bei den vorhandenen Fragensammlungen hat mir immer dasselbe gefehlt: Sie sagen nur, welcher Buchstabe richtig ist. Damit lernt man, welcher Buchstabe zu welcher Frage gehört, und steht in der Prüfung vor derselben Sache in anderer Verpackung. Also habe ich einen eigenen gebaut. Inzwischen sind es 143 Fragen über alle 29 Prüfungsthemen des Blueprints 200-301 v2.0, zweisprachig.

Der CCNA-Trainer nach einer beantworteten Frage: die richtige Antwort grün, die gewählte falsche rot, darunter der Anfang der Begründung
Nach jeder Antwort steht da, warum sie richtig ist und warum die anderen nicht.

Zu jeder Frage steht, warum die richtige Antwort richtig ist und warum die anderen drei es nicht sind. Dazu ein Rezept, um den Fall im Labor selbst nachzubauen. Die Fragen sind selbst geschrieben, entlang der veröffentlichten Prüfungsthemen. Jeden Befehl habe ich vorher gegen die offiziellen Cisco-Referenzen geprüft. Wo eine Ausgabe noch nicht an einem laufenden Gerät nachgestellt wurde, steht das offen dabei.

Läuft auf derselben Maschine wie der Vokabeltrainer, unter eigener Adresse mit eigenem Zertifikat. Es gibt keine Anmeldung und keine Statistik. Der Lernstand bleibt im Browser, und die Schrift kommt vom eigenen Server statt von Google. Damit brauche ich kein Einwilligungsbanner.

Der Fragenkatalog wuchs über Wochen von 103 auf 143 Fragen. Der Server stand die ganze Zeit bei 103, ohne dass es jemand merkte. Jeder Commit war grün, das Übertragungsskript meldete jedes Mal „Fertig“. Nachgesehen hatte niemand. Das Skript zählt seitdem nach dem Übertragen die Fragen am Server nach und meldet erst dann „Fertig“, wenn die Zahl mit dem lokalen Stand übereinstimmt.

August 2026

Der Server, der das Netz im Haus versorgt

Dieselbe Maschine beantwortet die Namensauflösung für alle Geräte im Netz. Das sind gut 65.000 Anfragen am Tag von rund 30 Geräten, etwa 14 Prozent davon gefiltert. Fällt sie aus, hat niemand mehr Internet, auch wenn die Leitung steht. Der Werbefilter ist dabei nur die Zugabe. Wichtiger ist, dass hier ein zentraler Infrastrukturdienst läuft, und entsprechend vorsichtig ist er eingerichtet.

Sicherheitsupdates: automatisch, aber nicht überall

Das realistische Risiko für einen Server am Internet ist nicht der Scanner, der WordPress-Pfade abklopft. Es ist eine ungepatchte Lücke in einer der Komponenten, während genau danach automatisiert gesucht wird. Deshalb kommen die Sicherheitsupdates der Distribution automatisch. Kernel und Firmware mache ich weiter von Hand. Von dort kommen auch Funktionsänderungen, und ein Kernel, der im Hintergrund wechselt und beim nächsten Start nicht hochkommt, wäre auf dem Gerät mit dem zentralen DNS ein schlechter Tausch. Neu gestartet wird nach Entscheidung und nicht nach Zeitplan.

Auswertung ohne Einwilligungsbanner

Für die Zugriffsstatistik habe ich mich gegen die üblichen Werkzeuge entschieden, die per JavaScript im Browser messen. Stattdessen werte ich die Serverprotokolle direkt aus. Das kommt ohne Cookies und ohne Einwilligungsbanner aus, ändert nichts an der Seite und zählt auch die Besucher, die JavaScript blockieren. Das sind hier die meisten, denn der Großteil der Zugriffe stammt von automatischen Scannern. Die Auswertung führt einen eigenen Bestand, weil die Protokolle nach zwei Wochen gelöscht werden. Sonst gäbe es nie mehr als zwei Wochen Historie.

Nach einer Migration meldete der Filterdienst „aktiv“ und filterte trotzdem nichts. Er hatte seine Datenbank in der falschen Reihenfolge geöffnet. Sichtbar wurde das nur, weil ich dieselbe Abfrage zusätzlich gegen die alte, noch laufende Maschine gestellt habe. Seitdem lasse ich bei Migrationen den Vorgänger stehen, bis der Nachfolger gegen ihn geprüft ist.

August 2026

Nextcloud selbst betrieben, Sicherung zweimal zurückgespielt

Eine Datensicherung, die nie zurückgespielt wurde, taugt wenig. Diese hier habe ich zweimal vollständig wiederhergestellt. Beim zweiten Mal nicht ich selbst, sondern jemand anderes nach meiner Anleitung, und mit 1.295 echten Fotos statt eines Testdatensatzes: 1.340 Dateien, kein einziger Fehler.

Dass es jemand anderes gemacht hat, war der eigentliche Test. Er stolperte sofort über eine Meldung, die ich für selbstverständlich gehalten und deshalb nirgends erwähnt hatte. In meiner eigenen Anleitung hätte ich diese Lücke nie gefunden.

Die Aufbewahrungsregel lautete „alles älter als 30 Tage löschen“. Das klingt vernünftig, löscht aber vor Tag 31 überhaupt nichts. Bei der tatsächlichen Größe eines Laufs wäre die Platte nach gut einer Woche voll gewesen, ohne dass je aufgeräumt wird. Im Test mit ein paar hundert Megabyte war das unsichtbar. Aufbewahrung nach Anzahl statt nach Alter macht den belegten Platz rechenbar. Dazu gehört eine Platzprüfung vor dem ersten Schreibvorgang. Eine Sicherung, die mitten im Schreiben an einer vollen Platte scheitert, hinterlässt ein halbes Archiv, das im Verzeichnis aussieht wie ein gültiges.

September 2026

Eine Sprechtafel, die man mit dem Gesicht bedient

Ein Freund kann nicht mehr sprechen. Für ihn habe ich eine Sprechtafel gebaut, die er nur mit dem Gesicht bedient. Auf dem Bildschirm stehen große Felder mit Themen und Sätzen. Hebt er die Augenbrauen, springt die Markierung ein Feld weiter. Schließt er die Augen, geht es zurück. Öffnet er den Mund, ist das Feld ausgewählt, und das Tablet spricht den Satz laut aus.

Die Sprechtafel: sechs große Felder, das erste gelb umrandet, unten die drei Signale mit ihrer Wirkung und ein kleines Kamerabild
Die Oberfläche mit Beispielinhalt. Die echten Sätze bleiben privat.

Die Tafel läuft im Browser auf dem Tablet. Das Kamerabild bleibt auf dem Gerät und wird nirgends hingeschickt.

Oktober 2026

Eine Lichtsteuerung für die Wohnung

Damit schalte ich die Lampen in der Wohnung vom Rechner aus: ganze Räume an und aus, Helligkeit, Farbe und gespeicherte Lichtstimmungen. Die Oberfläche hat eine KI gebaut. Ich habe sie auf meinem eigenen Server eingerichtet. Dort läuft sie ständig, und jeder Rechner im Haus öffnet sie im Browser, ohne dass vorher etwas gestartet werden muss.

Die Hue-Steuerung: Räume als Karten mit Schalter, Helligkeitsregler und Szenenauswahl
Die Räume mit Schalter, Helligkeit und Szenen.

Oktober 2026

Ein KI-Assistent, der lokal auf dem eigenen Rechner läuft

Die KI-Werkzeuge, mit denen ich arbeite, schicken ihre Daten in die Cloud. Für vieles ist das in Ordnung, für sensible Daten nicht. Also habe ich mir einen Assistenten gebaut, der ganz auf meiner eigenen Hardware läuft: ein offenes Sprachmodell (Qwen) und darüber ein selbst geschriebener Client, über den ich mit ihm arbeite. Nichts davon verlässt den Rechner.

Was entstanden ist

Zwei Teile. Zuerst habe ich das Modell lokal zum Laufen gebracht und auf die Grafikkarte abgestimmt, bis das Tempo für den täglichen Gebrauch reichte. Darauf sitzt die „Werkbank“, eine Oberfläche in Python: Sie führt das Gespräch mit dem Modell, lässt es Dateien lesen und schreiben, Befehle ausführen und sich über Sitzungen hinweg Dinge merken. Für verschiedene Aufgaben habe ich Rollen angelegt, etwa einen Webdesigner und einen Linux-Administrator, die jeweils nur das dürfen, was sie brauchen.

Die Entscheidung, auf die es ankam

Ein Assistent, der selbst Befehle ausführt, ist nützlich und gefährlich zugleich. Bevor ich ihm das erlaubt habe, habe ich ihn eingegrenzt: Er schreibt nur in seinem eigenen Arbeitsordner, und bestimmte Dateien kann er gar nicht erst lesen. Beim Einrichten fiel mir auf, dass er sonst an einen Schlüssel gekommen wäre, der ihm vollen Zugriff auf einen anderen Rechner im Haus gegeben hätte. Das habe ich geschlossen, bevor es darauf ankam. Jede Änderung legt er außerdem vorher vor und lässt sich mit einem Befehl wieder zurücknehmen.

Dieselbe Programmieraufgabe habe ich einmal über ein fertiges, universelles Werkzeug an das Modell gegeben und einmal über die Werkbank. Die Werkbank war rund dreimal schneller, weil sie dem Modell nur schickt, was es für den nächsten Schritt wirklich braucht.

Ob die erzeugten Oberflächen flüssig liefen, wollte ich zuerst mit einem schnellen Abzug im Hintergrund prüfen. Der zeigte aber noch das Standbild und meldete alles als ruckelig, obwohl es das nicht war. Bewegung sehe ich mir seitdem nur noch im echten Fenster an und nicht in einem Schnelltest, der die Frage gar nicht beantworten kann.

Wie ich dabei arbeite

Alles hier ist mit KI-Unterstützung entstanden, überwiegend mit Claude. Das nimmt einem die Arbeit nicht ab, es verschiebt sie. Code entsteht in Minuten, die Zeit geht in die Frage, ob er das Richtige tut. Deshalb steht bei den größeren Projekten oben, was schiefging. Erzeugter Code sieht immer plausibel aus, und plausibel heißt nicht richtig.

Vier Entscheidungen habe ich dabei nicht an die Maschine abgegeben:

Womit ich arbeite

Windows-Infrastruktur

  • Active Directory
  • Gruppenrichtlinien
  • DNS, DHCP
  • Zertifikatsdienste (PKI)
  • WSUS, WDS
  • Windows Server 2008–2019

Virtualisierung und Clients

  • VMware
  • Citrix XenApp / XenDesktop
  • Windows 10/11
  • M365
  • Microsoft Intune

Automatisierung

  • PowerShell
  • JEA
  • Python
  • Bash
  • SQL
  • PHP

KI

  • Claude, Claude Code
  • Lokale Sprachmodelle
  • Selbst gebaute KI-Agenten
  • MCP

Rechteverwaltung und Netzwerk

  • tenfold Access Management
  • VLANs, WLAN
  • HP-Procurve-Switches

Linux und Web

  • Debian
  • nginx, Apache
  • Docker
  • MySQL, PostgreSQL
  • Postfix

Beruflicher Werdegang

seit 03/2026
Berufliche Neuorientierung & WeiterbildungKI-gestützte Administration und Automatisierung, die Projekte oben
2024 – 2026
IT-SystemadministratorRHEINTACHO Messtechnik GmbH, Freiburg — gesamte Infrastruktur, Benutzer- und Rechteverwaltung, M365
2024
Fachliche Leitung Backoffice-ITInxmail GmbH, Freiburg — Priorisierung und Planung im Team, Helpdesk-Betrieb
2011 – 2024
IT-SystemadministratorKassenzahnärztliche Vereinigung Baden-Württemberg — hauptverantwortlich für die Active-Directory-Infrastruktur, Citrix-Umgebung, Netzwerk, Schulungen
2009 – 2011
SelbstständigIT-Dienstleistungen und Webentwicklung
2000 – 2008
IT-SystemadministratorLexware GmbH & Co. KG, Freiburg — Internetdienste unter Linux, Intra- und Internetserver

Zertifizierungen