Zum Inhalt springen

Ralf Joos — IT-Systemadministrator, Freiburg

Über 25 Jahre Windows-Infrastruktur. Und dann kam ein Jahr, in dem ich neu gelernt habe, wie man baut.

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

Seit März 2026 arbeite ich mich in KI-gestützte Administration ein. Vier Projekte sind dabei entstanden. Sie stehen hier in der Reihenfolge, in der sie gebaut wurden — mit den Entscheidungen dahinter und mit dem, was jeweils schiefgegangen ist.

Projekte 2026

seit März 2026

Ein Berechtigungsmanagement für Active Directory

Ein neuer Mitarbeiter fängt an, und jemand tippt sein Konto von Hand ab. Das dauert Stunden bis Tage, es wird uneinheitlich — der eine schreibt m.mueller, der andere mueller_m — und es braucht ein Konto mit Vollzugriff auf das gesamte Verzeichnis. Der dritte Punkt ist der gefährliche: Wer diese Zugangsdaten erbeutet, dem gehört das Netz. Genau so laufen die Verschlüsselungsangriffe ab, von denen man in der Zeitung liest.

Was entstanden ist

Aus der reinen Kontenanlage wurde ein schlankes Berechtigungsmanagement mit sechs Bausteinen: Eintritt, Abteilungswechsel und Austritt decken den Lebenszyklus ab. Dazu kamen die 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. Der Austritt ist dabei sicherheitstechnisch der wichtigere Fall: Vergessene aktive Konten ehemaliger Mitarbeiter sind ein verbreitetes Problem.

Die beiden Entscheidungen, auf die es ankam

Der naheliegende Weg wäre gewesen, irgendwo die Zugangsdaten eines Administrators zu hinterlegen und ein Programm damit arbeiten zu lassen. Dieses Programm kann dann alles, was der Administrator kann. Stattdessen führt der Zugang zum Domain Controller genau einen Befehl aus und sonst nichts — technisch erzwungen, nicht bloß vereinbart. Beim Test habe ich nachgesehen, welche Befehle in dieser Sitzung überhaupt 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. Hier 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 dieses Konto nur für einen eng umrissenen Zweig des Verzeichnisses. Wer die Automatik übernimmt, bekommt die Rechte eines Sachbearbeiters, nicht die eines Hausmeisters mit Generalschlüssel.

Was der erste echte Testlauf zutage förderte

Sechs Fehler, die auf dem Papier unsichtbar waren — zwei davon in meinem eigenen, zuvor sorgfältig geschriebenen Konzept. Ein Beispiel: Ein Anmeldename darf höchstens 20 Zeichen lang sein. Der Testname traf diese Grenze exakt; als die Automatik zur Unterscheidung eine Ziffer anhängen wollte, waren es 21, und das System verweigerte die Anlage. Unentdeckt hätte das genau dann zugeschlagen, wenn zwei Mitarbeiter mit langem Namen gleich heißen — selten, unvorhersehbar, mitten im Tagesgeschäft.

Was ich gelernt habe: Ein durchdachtes Konzept ersetzt den ersten echten Durchlauf nicht. Aufgefallen sind beide Konzeptfehler übrigens nur, weil die Übersichtsseite, die ich vorher gebaut hatte, den tatsächlichen Zustand zeigte statt des geplanten.

seit Juli 2026

Ein Vokabeltrainer, der einfach weiterläuft

Angefangen als Werkzeug für mein tägliches Englisch, inzwischen im Dauerbetrieb: 177 Tage Lernstoff mit 589 Wörtern, erreichbar von unterwegs unter einer richtigen Adresse mit gültigem Zertifikat. Kein Baukasten und kein fremder Hoster — Namensauflösung, Zertifikat und Webserver laufen auf einer Maschine, die ich selbst betreibe.

Der lehrreiche Teil war nicht das Bauen, sondern der Betrieb. Der Lernstand liegt im Browser des Nutzers, nicht auf dem Server — das erspart eine Datenbank und jede Frage nach personenbezogenen Daten, verlagert aber die Verantwortung fürs Sichern. Also bekam die Anwendung eine Anleitung, die genau das erklärt.

Was ich gelernt habe: Bei einem gemeldeten Ausfall der Sprachausgabe habe ich zwei Runden im Code gesucht. Es lag nicht am Code — auf zwei anderen Geräten lief alles, nur eines mit einer Beta-Version des Betriebssystems versagte. Seitdem frage ich bei jedem gemeldeten Fehler zuerst, wo er nicht auftritt. Ein zweites Gerät trennt Code von Umgebung in zwei Minuten; die Suche im Code hätte Stunden gekostet und nichts gefunden.

August 2026

Der Server, an dem das ganze Haus hängt

Dieselbe Maschine beantwortet die Namensauflösung für alle Geräte im Netz — 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. Ein Werbefilter ist dabei nur die Zugabe; die eigentliche Rolle ist die eines zentralen Infrastrukturdienstes, und entsprechend vorsichtig ist er eingerichtet.

Sicherheitsupdates: automatisch, aber nicht überall

Das realistische Risiko für einen Server, der aus dem Internet erreichbar ist, 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 bleiben bewusst Handarbeit, denn 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 nur nach Entscheidung, 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 werden die Serverprotokolle direkt ausgewertet. Das bedeutet: keine Cookies, kein Einwilligungsbanner, keine Änderung an der Seite — und es 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 außerdem einen eigenen Bestand, weil die Protokolle nach zwei Wochen gelöscht werden; sonst gäbe es nie mehr als zwei Wochen Historie.

Was ich gelernt habe: Eine Statusmeldung ist kein Funktionsnachweis. Nach einer Migration meldete der Filterdienst brav „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 — und die Sicherung bewiesen

Eine Datensicherung, die nie zurückgespielt wurde, ist keine Datensicherung, sondern eine Hoffnung. Diese hier wurde zweimal vollständig wiederhergestellt — beim zweiten Mal nicht von mir, sondern nach meiner Anleitung, und mit 1.295 echten Fotos statt eines Testdatensatzes: 1.340 Dateien, kein einziger Fehler.

Dass jemand anderes die Rückspielung ausgeführt hat, war der eigentliche Test. Er stolperte sofort über eine Meldung, die ich für selbstverständlich gehalten und deshalb nirgends erwähnt hatte. Wer die Lösung schon kennt, findet die Lücken in seiner eigenen Anleitung nicht.

Was ich gelernt habe: Die Aufbewahrungsregel lautete „alles älter als 30 Tage löschen“. 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 wenigen hundert Megabyte war das unsichtbar. Aufbewahrung nach Anzahl statt nach Alter macht den belegten Platz dagegen 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.

Sechs Sätze, die mich dieses Jahr Zeit gekostet haben

Aus den Projekten oben sind ein paar Regeln übriggeblieben, die ich vorher nicht so klar hatte. Sie gelten unabhängig vom System.

Eine Statusmeldung ist kein Funktionsnachweis.

„Dienst aktiv“, „Konfiguration geladen“, „Test bestanden“ — das ist die Selbstauskunft des Dienstes, nicht sein Ergebnis. Gemessen wird am Ergebnis.

Ein Negativtest ohne passenden Positivtest beweist nichts.

Wenn nichts durchkommt, kann das an der richtigen Absicherung liegen — oder daran, dass gerade alles blockiert ist. Beide Hälften gehören unter dieselben Bedingungen geprüft.

Bei einem Fehler zuerst fragen, wo er nicht auftritt.

Das trennt Code von Umgebung in Minuten. Die Suche in der falschen Hälfte kostet Stunden und findet nichts.

Regeln für Platz und Aufbewahrung gegen echte Datenmengen prüfen.

Auf einem leeren System sieht jede Regel richtig aus. Sichtbar wird der Fehler erst, wenn echte Daten da sind — und dann ist es der falsche Moment.

Eine Anleitung ist erst geprüft, wenn sie jemand ausgeführt hat, der die Antworten nicht kennt.

Wer die Lösung im Kopf hat, liest über die Lücke hinweg. Der erste fremde Durchlauf findet sie in Minuten.

Bei einer knappen Ressource zuerst fragen, ob die Grenze selbst verschiebbar ist.

Ich hatte eine Aufräumstrategie für eine volle Platte gebaut, bevor auffiel, dass sich die Platte schlicht vergrößern ließ. Aufräumen wäre nur ein Aufschub gewesen.

Wie ich dabei arbeite

Alles hier ist mit KI-Unterstützung entstanden, überwiegend mit Claude. Das ist kein Zaubertrick — es verschiebt nur, wo die Arbeit liegt. Code entsteht in Minuten; die Zeit geht in die Frage, ob er das Richtige tut. Genau deshalb steht auf dieser Seite bei jedem Projekt, was schiefging: Erzeugter Code sieht immer plausibel aus, und Plausibilität ist kein Qualitätsmerkmal.

Interessanter als das Gebaute sind daher die Entscheidungen, die ich nicht an die Maschine abgegeben habe:

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
  • Bash
  • SQL
  • PHP

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