Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| edv:padawan:projekt_webserver [12 51 2026 14 : 51] – angelegt André Reichert-Creutz | edv:padawan:projekt_webserver [13 29 2026 13 : 29] (aktuell) – [Das Projektdokument] André Reichert-Creutz | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== | + | ====== |
| <WRAP center round box 90%> | <WRAP center round box 90%> | ||
| - | //Episode V – Das Imperium schlägt zurück · Diesmal bist du allein · 16 Stunden · Zwei Arbeitstage · Kein Netz und kein doppelter Boden// | + | //Dies ist kein Tutorial. Es gibt keine Schritt-für-Schritt-Anleitung.\\ |
| + | Du bekommst einen nackten Server | ||
| </ | </ | ||
| ---- | ---- | ||
| - | ===== Die Stunde der Wahrheit | + | ===== Der Auftrag |
| - | Du hast navigiert. Du hast Dateien bearbeitet, Benutzer verwaltet, Rechte gesetzt, Prozesse kontrolliert, | + | Die IT-Infrastruktur benötigt ein internes Dokumentationssystem. Die Wahl ist auf **DokuWiki** gefallen – leichtgewichtig, datenbanklos, bewährt. Deine Aufgabe: einen leeren RHEL 9-Server in einen produktionsbereiten, gehärteten |
| - | Jetzt beginnt die **Jedi-Prüfung.** | + | Das System läuft in einem regulierten Umfeld. Es muss nicht nur funktionieren – es muss **sicher, nachvollziehbar und wartbar** sein. Das sind die drei Anforderungen, |
| - | 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. | + | Zeitansatz: **16 Stunden** über zwei Arbeitstage. |
| - | + | ||
| - | Deine Aufgabe: Einen nackten RHEL 9-Server in einen produktionsbereiten, | + | |
| - | + | ||
| - | > //"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 | + | ===== Transferleistung – was du dir selbst erarbeitest |
| <WRAP round important 90%> | <WRAP round important 90%> | ||
| - | **Zeitrahmen und Rahmenbedingungen** | + | Die folgenden Themen wurden im Grundkurs bewusst nicht behandelt. Sie sind Teil dieses Projekts. Du musst sie dir durch Manpages, das Projektdokument oder mit Hilfe einer freigegebenen KI selbst erschließen – das gehört zum Beruf. |
| - | ^ Eigenschaft ^ Wert ^ | + | * **SELinux-Kontexte: |
| - | | Zeitansatz | 16 Stunden (2 Arbeitstage) | | + | * **Systemd-Timer: |
| - | | Arbeitsweise | Selbstständig | + | * **Textverarbeitung und Archivierung: |
| - | | Hilfsmittel | Manpages, dieses Wiki, Overleaf-Dokument, | + | |
| - | | Ergebnis | Lauffähiges System + Fachpräsentation | | + | |
| - | | Abnahme | 15 Min. Präsentation + 15 Min. Fachgespräch | + | |
| </ | </ | ||
| ---- | ---- | ||
| - | ===== Die Transferleistung – was du dir selbst beibringst | + | ===== Hinweis zur KI-Nutzung |
| - | <WRAP round tip 90%> | + | <WRAP round warning |
| - | **Padawan, aufgepasst: | + | ⚠ **DORA · BaFin · DSGVO – nicht verhandelbar** |
| - | * **SELinux-Kontexte** – jenseits des klassischen '' | + | KI-Assistenten |
| - | * **Systemd-Timer** – als moderne Alternative zu Cronjobs: '' | + | |
| - | * **Archivierung und Textverarbeitung** – '' | + | |
| - | </ | + | |
| - | + | ||
| - | ---- | + | |
| - | + | ||
| - | ===== 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 | + | |
| - | + | ||
| - | * **Keine Echtdaten in KI-Prompts: | + | |
| - | * **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: | + | |
| - | + | ||
| - | KI ist dein **Mentor für Syntax**, nicht dein Ghostwriter. Meister Yoda hat auch nicht für Luke Skywalker trainiert. | + | |
| - | </ | + | |
| - | + | ||
| - | ---- | + | |
| - | + | ||
| - | ===== Die vier Prüfungsphasen ===== | + | |
| - | + | ||
| - | ==== Phase 1 – Identity Management und Härtung (Tag 1) ==== | + | |
| - | <WRAP round box 90%> | + | * **Keine Echtdaten** in KI-Prompts: keine echten IP-Adressen, |
| - | **Ziel: Sicherer Zugang · Prinzip der geringsten Rechte (Least Privilege)** | + | * **Keine personenbezogenen Daten** – auch keine Testdaten, die auf echten Personen basieren. |
| + | * **Kein blindes Copy-Paste** – jede Zeile im Fachgespräch erklären können. | ||
| - | Der Server darf nicht mehr über unsichere Protokolle oder schwache Authentifizierung erreichbar sein. | + | KI ist ein Hilfsmittel zum Verstehen, kein Ersatz für das Denken. |
| </ | </ | ||
| - | |||
| - | **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** '' | ||
| - | |||
| - | <code bash> | ||
| - | # Schlüsselgenerierung (clientseitig) | ||
| - | ssh-keygen -t ed25519 -C " | ||
| - | |||
| - | # SSH-Härtung – relevante Parameter in / | ||
| - | PermitRootLogin no | ||
| - | PasswordAuthentication no | ||
| - | |||
| - | # Service-User ohne Login anlegen | ||
| - | useradd --system --shell / | ||
| - | </ | ||
| - | |||
| - | <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. | ||
| - | </ | ||
| ---- | ---- | ||
| - | ==== Phase 2 – Applikation und Security (Tag 1) ==== | + | ===== Projektphasen ===== |
| - | <WRAP round box 90%> | + | Das Projekt gliedert sich in vier aufeinander aufbauende Phasen: |
| - | **Ziel: Bereitstellung der Applikation unter DORA/ | + | |
| - | Der Webserver muss laufen, aber vom Betriebssystem isoliert bleiben. | + | ^ Phase ^ Titel ^ Schwerpunkt ^ |
| - | </ | + | | **1** | Identity Management & Härtung | SSH-Schlüssel, Root-Login sperren, Service-User anlegen | |
| + | | **2** | Applikation & Security | Apache, PHP-FPM, DokuWiki deployen, Dateirechte, | ||
| + | | **3** | Audit & Automatisierung | Audit-Skript, | ||
| + | | **4** | Fachpräsentation | 15 Min. Vortrag + 15 Min. Fachgespräch mit dem Ausbilder | | ||
| - | **Deine Aufgaben: | + | Phase 4 ist keine Zugabe |
| - | + | ||
| - | - Installiere '' | + | |
| - | - Lade das aktuelle DokuWiki-Release herunter und entpacke es nach ''/ | + | |
| - | - **Dateiberechtigungen: | + | |
| - | - **Firewall: | + | |
| - | - **SELinux: | + | |
| - | + | ||
| - | <code bash> | + | |
| - | # Installation | + | |
| - | dnf install -y httpd php-fpm wget tar | + | |
| - | + | ||
| - | # Least Privilege Dateirechte | + | |
| - | chown -R root: | + | |
| - | find / | + | |
| - | find / | + | |
| - | chown -R dokuwiki: | + | |
| - | + | ||
| - | # 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 "/ | + | |
| - | semanage fcontext -a -t httpd_sys_rw_content_t "/ | + | |
| - | restorecon -Rv / | + | |
| - | </ | + | |
| - | + | ||
| - | <note warning> | + | |
| - | **'' | + | |
| - | '' | + | |
| - | </ | + | |
| - | + | ||
| - | ---- | + | |
| - | + | ||
| - | ==== Phase 3 – Audit und Automatisierung (Tag 2) ==== | + | |
| - | + | ||
| - | <WRAP round box 90%> | + | |
| - | **Ziel: Nachweisbarkeit und Disaster Recovery** | + | |
| - | + | ||
| - | Das System muss seine Konfigurationen sichern und unbefugte Accounts automatisch melden. | + | |
| - | </ | + | |
| - | + | ||
| - | **Deine Aufgaben: | + | |
| - | + | ||
| - | - **Audit-Skript** '' | + | |
| - | - **Backup-Skript** '' | + | |
| - | - **Systemd-Timer** (kein Cron!): Führe das Backup täglich um 02:00 Uhr aus. Zwei Dateien erforderlich: | + | |
| - | + | ||
| - | <code bash> | + | |
| - | # audit.sh – UID-0-Prüfung mit awk | + | |
| - | BAD=$(awk -F: '$3 == 0 && $1 != " | + | |
| - | [ -n " | + | |
| - | echo "Audit OK." && exit 0 | + | |
| - | + | ||
| - | # Systemd-Timer – zwei Dateien in / | + | |
| - | # backup.service → Type=oneshot, | + | |
| - | # backup.timer | + | |
| - | + | ||
| - | # 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 '' | + | |
| - | </ | + | |
| - | + | ||
| - | ---- | + | |
| - | + | ||
| - | ==== Phase 4 – Die Fachpräsentation ==== | + | |
| - | + | ||
| - | <WRAP round box 90%> | + | |
| - | **Ziel: Vorbereitung auf die IHK-Prüfung und Kundenkommunikation** | + | |
| - | + | ||
| - | Technische Umsetzung | + | |
| - | </ | + | |
| - | + | ||
| - | **15 Minuten Präsentation** (als Folien oder als Seite in deinem neuen DokuWiki): | + | |
| - | + | ||
| - | - **Architektur: | + | |
| - | - **Security Design:** Warum ed25519? Wie schützt uns SELinux in diesem Setup, wenn das Wiki kompromittiert wird? | + | |
| - | - **Troubleshooting: | + | |
| - | - **Live-Demo: | + | |
| - | + | ||
| - | **15 Minuten Fachgespräch** – der Ausbilder stellt Rückfragen zu jedem Aspekt deiner Umsetzung. Typische Fragen: | + | |
| - | + | ||
| - | * Erkläre den Unterschied zwischen '' | + | |
| - | * Warum darf der Apache-Prozess | + | |
| - | * Was passiert, wenn jemand '' | + | |
| - | * Wie erkennst du im Journal, dass der Backup-Timer | + | |
| ---- | ---- | ||
| - | ===== Das Holocron zu diesem Projekt | + | ===== Das Projektdokument |
| <WRAP round important 90%> | <WRAP round important 90%> | ||
| - | **Vollständiges Projektdokument | + | **Vollständige Aufgabenstellung, |
| - | Das Dokument enthält: vollständige Aufgabenstellung, Transferleistungs-Hinweise, | + | Das Dokument enthält |
| + | Lösungshinweise | ||
| //Overleaf (Quelldatei + Live-Vorschau):// | //Overleaf (Quelldatei + Live-Vorschau):// | ||
| - | [[https:// | + | [[https:// |
| - | </ | + | |
| - | + | ||
| - | ---- | + | |
| - | + | ||
| - | ===== Du bist bereit, wenn … ===== | + | |
| - | + | ||
| - | <WRAP round tip 90%> | + | |
| - | Checkliste vor dem Start des Projekts – beantworte jede Frage ohne Nachschlagen: | + | |
| - | + | ||
| - | * [ ] Ich weiß, was '' | + | |
| - | * [ ] Ich kann '' | + | |
| - | * [ ] Ich weiß, was '' | + | |
| - | * [ ] Ich kann '' | + | |
| - | * [ ] Ich verstehe den Unterschied zwischen '' | + | |
| - | * [ ] Ich weiß, dass '' | + | |
| - | + | ||
| - | Wenn du alle Häkchen setzen kannst: **Möge die Macht mit dir sein.** Fang an. | + | |
| </ | </ | ||
| Zeile 239: | Zeile 82: | ||
| <WRAP center round box 85%> | <WRAP center round box 85%> | ||
| - | //"Ein Jedi-Ritter ist nicht jemand, der keine Fehler macht.//\\ | + | //"Dokumentiere, was du tust. Nicht für den Ausbilder – für dich in sechs Monaten."//\\ |
| - | //Es ist jemand, der seine Fehler im Logfile findet und daraus lernt."//\\ | + | |
| - | \\ | + | |
| - | //Möge '' | + | |
| \\ | \\ | ||
| '' | '' | ||
| </ | </ | ||
