Abschlussprojekt – Die Jedi-Prüfung
Episode V – Das Imperium schlägt zurück · Diesmal bist du allein · 16 Stunden · Zwei Arbeitstage · Kein Netz und kein doppelter Boden
Die Stunde der Wahrheit
Du hast navigiert. Du hast Dateien bearbeitet, Benutzer verwaltet, Rechte gesetzt, Prozesse kontrolliert, Software installiert und eine Firewall konfiguriert. Vier Phasen. Acht Module. Die Kraft fließt.
Jetzt beginnt die Jedi-Prüfung.
Im Tempel auf Coruscant musste jeder Padawan vor dem Rat beweisen, dass er kein Schüler mehr ist. Nicht durch Theorie. Nicht durch Wiederholung. Sondern durch eine echte Aufgabe in einer echten Situation – allein, unter Zeitdruck, mit Verantwortung für das Ergebnis.
Deine Aufgabe: Einen nackten RHEL 9-Server in einen produktionsbereiten, gehärteten und auditierten Webserver verwandeln. Das System läuft in einem regulierten Umfeld – Versicherungswesen, BaFin, DORA. Es muss nicht nur funktionieren. Es muss compliant sein.
„Die Prüfung zeigt dir nicht, was du kannst. Sie zeigt dir, was du bist.“
– Meister Windu, vor dem Jedi-Rat · und sinngemäß vor dem Abnahme-Gespräch
Die Spielregeln der Prüfung
Zeitrahmen und Rahmenbedingungen
| Eigenschaft | Wert |
|---|---|
| Zeitansatz | 16 Stunden (2 Arbeitstage) |
| Arbeitsweise | Selbstständig – Rückfragen nur nach Konsultation der Manpage |
| Hilfsmittel | Manpages, dieses Wiki, Overleaf-Dokument, freigegebene KI |
| Ergebnis | Lauffähiges System + Fachpräsentation |
| Abnahme | 15 Min. Präsentation + 15 Min. Fachgespräch mit dem Ausbilder |
Die Transferleistung – was du dir selbst beibringst
Padawan, aufgepasst: Folgende Themen wurden im Grundkurs bewusst nicht gelehrt. Sie sind Teil der Prüfung. Du musst sie dir selbst erarbeiten – durch Manpages, das Overleaf-Dokument oder mit KI-Unterstützung. Das ist keine Schwäche, sondern das Kernhandwerk des Systemadministrators: das eigenständige Erschließen neuer Themen.
- SELinux-Kontexte – jenseits des klassischen
rwx-Modells:semanage fcontext,restorecon - Systemd-Timer – als moderne Alternative zu Cronjobs:
.timer- und.service-Units - Archivierung und Textverarbeitung –
tarfür Backups,awkfür strukturiertes Parsing
KI-Nutzung – Jedi-Kodex der Compliance
<note warning> DORA · BaFin · DSGVO – diese Regeln sind nicht verhandelbar
Die Nutzung von KI-Assistenten für Recherche und Syntaxerklärungen ist ausdrücklich erwünscht. Der Einsatz unterliegt jedoch zwingend den folgenden Regeln:
- Keine Echtdaten in KI-Prompts: Keine echten IP-Adressen, internen Hostnamen, Passwörter, Hashes oder Benutzernamen. Nutze Platzhalter wie
<SERVER-IP>oderuser123. - Keine personenbezogenen Daten: Das Eintippen von Mitarbeiterdaten in externe KI-Systeme ist ein DSGVO-Verstoß – auch wenn es sich um Testdaten handelt.
- Kein blindes Copy-Paste: Du musst jede Code-Zeile im Fachgespräch erklären können. Wer das nicht kann, hat nicht gelernt – er hat kopiert. Das wird sichtbar.
KI ist dein Mentor für Syntax, nicht dein Ghostwriter. Meister Yoda hat auch nicht für Luke Skywalker trainiert. </note>
Die vier Prüfungsphasen
Phase 1 – Identity Management und Härtung (Tag 1)
Ziel: Sicherer Zugang · Prinzip der geringsten Rechte (Least Privilege)
Der Server darf nicht mehr über unsichere Protokolle oder schwache Authentifizierung erreichbar sein.
Deine Aufgaben:
- Generiere in deinem SSH-Client ein modernes ed25519-Schlüsselpaar und richte den zertifikatsbasierten Login ein.
- Deaktiviere den Root-Login und die passwortbasierte Authentifizierung in der SSH-Konfiguration.
- Lege einen System-Benutzer
dokuwikian, der keine Login-Shell besitzt (/sbin/nologin). Unter diesem Account läuft später die Applikation.
# Schlüsselgenerierung (clientseitig) ssh-keygen -t ed25519 -C "azubi-admin" # SSH-Härtung – relevante Parameter in /etc/ssh/sshd_config: PermitRootLogin no PasswordAuthentication no # Service-User ohne Login anlegen useradd --system --shell /sbin/nologin dokuwiki
<note tip> Warum ed25519? Nicht weil es der neue Hype ist – sondern weil es mathematisch nachweisbar sicherer und performanter als RSA-2048 ist, bei gleichzeitig kürzeren Schlüsseln. RSA-4096 ist regulatorisch noch akzeptabel, aber ed25519 ist der aktuelle Branchenstandard. Das wirst du im Fachgespräch begründen müssen. </note>
Phase 2 – Applikation und Security (Tag 1)
Ziel: Bereitstellung der Applikation unter DORA/BSI-Vorgaben
Der Webserver muss laufen, aber vom Betriebssystem isoliert bleiben.
Deine Aufgaben:
- Installiere
httpd(Apache) undphp-fpmaus den RHEL-Standard-Repositories (nur BaseOS/AppStream – keine externen Quellen). - Lade das aktuelle DokuWiki-Release herunter und entpacke es nach
/var/www/dokuwiki. - Dateiberechtigungen: Der Webserver (
dokuwiki-User) darf nur indata/undconf/schreiben. Alle anderen Dateien gehörenrootund sind nur lesbar. - Firewall: Port 80 in
firewalldfreigeben – permanent. - SELinux: SELinux bleibt im
Enforcing-Modus. Konfiguriere die Kontexte (httpd_sys_rw_content_t) so, dass Apache in die DokuWiki-Datenordner schreiben darf – persistent viasemanage, nicht temporär viachcon.
# Installation dnf install -y httpd php-fpm wget tar # Least Privilege Dateirechte chown -R root:dokuwiki /var/www/dokuwiki find /var/www/dokuwiki -type d -exec chmod 750 {} \; find /var/www/dokuwiki -type f -exec chmod 640 {} \; chown -R dokuwiki:dokuwiki /var/www/dokuwiki/{data,conf,lib/plugins} # Firewall firewall-cmd --permanent --add-service=http && firewall-cmd --reload # SELinux – persistent (überlebt restorecon und System-Relabeling) semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/dokuwiki/data(/.*)?" semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/dokuwiki/conf(/.*)?" restorecon -Rv /var/www/dokuwiki
<note warning>
chcon vs. semanage – das ist ein Prüfungsthema:
chcon setzt den SELinux-Kontext temporär. Nach einem restorecon oder System-Relabeling ist er weg. semanage fcontext schreibt die Regel dauerhaft in die Policy. Nur semanage ist die korrekte Produktionslösung.
</note>
Phase 3 – Audit und Automatisierung (Tag 2)
Ziel: Nachweisbarkeit und Disaster Recovery
Das System muss seine Konfigurationen sichern und unbefugte Accounts automatisch melden.
Deine Aufgaben:
- Audit-Skript
audit.sh: Lese/etc/passwdmitawkaus und prüfe, ob ein anderer Benutzer alsrootdie UID 0 besitzt. Alarm bei Fund. - Backup-Skript
backup.sh: Archiviere/var/www/dokuwikiund/etc/sshmittarund erstelle persha256sumeinen Integritäts-Hash. - Systemd-Timer (kein Cron!): Führe das Backup täglich um 02:00 Uhr aus. Zwei Dateien erforderlich:
.serviceund.timer.
# audit.sh – UID-0-Prüfung mit awk BAD=$(awk -F: '$3 == 0 && $1 != "root" {print $1}' /etc/passwd) [ -n "$BAD" ] && echo "ALARM: Illegale Root-Accounts: $BAD" && exit 1 echo "Audit OK." && exit 0 # Systemd-Timer – zwei Dateien in /etc/systemd/system/ # backup.service → Type=oneshot, ExecStart=/usr/local/bin/backup.sh # backup.timer → OnCalendar=*-*-* 02:00:00, Persistent=true # Aktivieren: systemctl daemon-reload systemctl enable --now backup.timer systemctl list-timers | grep backup
<note tip>
Warum Systemd-Timer statt Cron? Weil systemd-Timer im journalctl sichtbar sind, exakt steuerbar, in den Start-Abhängigkeitsgraph integriert und auf RHEL 9 der Standard sind. Cron funktioniert – aber wer in einer DORA-Umgebung Cronjobs einrichtet, wenn Systemd-Timer verfügbar sind, muss das sehr gut begründen können.
</note>
Phase 4 – Die Fachpräsentation
Ziel: Vorbereitung auf die IHK-Prüfung und Kundenkommunikation
Technische Umsetzung ist nur die halbe Miete. Du musst deine Entscheidungen rechtfertigen können.
15 Minuten Präsentation (als Folien oder als Seite in deinem neuen DokuWiki):
- Architektur: Wie sieht der Datenfluss vom SSH-Client bis zum PHP-Prozess auf dem Server aus?
- Security Design: Warum ed25519? Wie schützt uns SELinux in diesem Setup, wenn das Wiki kompromittiert wird?
- Troubleshooting: Was war dein größter Fehler – und wie hast du ihn anhand von
journalctloder Apache-Logs gefunden? - Live-Demo: Lauffähiges Wiki + manueller Start des Systemd-Timers
15 Minuten Fachgespräch – der Ausbilder stellt Rückfragen zu jedem Aspekt deiner Umsetzung. Typische Fragen:
- Erkläre den Unterschied zwischen
chconundsemanage fcontext. - Warum darf der Apache-Prozess nicht als
rootlaufen? - Was passiert, wenn jemand
PasswordAuthentication yeswieder aktiviert? - Wie erkennst du im Journal, dass der Backup-Timer nicht ausgeführt wurde?
Das Holocron zu diesem Projekt
Vollständiges Projektdokument – als LaTeX oder PDF
Das Dokument enthält: vollständige Aufgabenstellung, Transferleistungs-Hinweise, KI-Richtlinie sowie den Lösungsbogen mit Alternativen und Fallstricken (Abschnitt für Ausbilder).
Overleaf (Quelldatei + Live-Vorschau):
→ Overleaf: Linux Padawan Workshop – Abschlussprojekt
Du bist bereit, wenn …
Checkliste vor dem Start des Projekts – beantworte jede Frage ohne Nachschlagen:
- [ ] Ich weiß, was
useradd --system --shell /sbin/nologinbewirkt und warum es so gemacht wird. - [ ] Ich kann
chmod 640undchmod 750im Schlaf erklären. - [ ] Ich weiß, was
Enforcingbei SELinux bedeutet und warumsetenforce 0keine Option ist. - [ ] Ich kann
journalctl -u httpd -n 50ohne Nachdenken eintippen. - [ ] Ich verstehe den Unterschied zwischen
–permanentund ohne beifirewall-cmd. - [ ] Ich weiß, dass
dnffür Pakete zuständig ist und welche Repos erlaubt sind.
Wenn du alle Häkchen setzen kannst: Möge die Macht mit dir sein. Fang an.
Navigation
← Phase IV – Paketverwaltung und Netzwerk
↑ Übersicht – Der Weg zur Macht
„Ein Jedi-Ritter ist nicht jemand, der keine Fehler macht.
Es ist jemand, der seine Fehler im Logfile findet und daraus lernt.“
Möge journalctl -xe dir den Weg zeigen.
[azubi01@rhel9-kurs ~]$ _
