projekt-offen:software:dokuwiki
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung | |||
| projekt-offen:software:dokuwiki [11-11-2026 16:53] – Externe Bearbeitung 127.0.0.1 | projekt-offen:software:dokuwiki [11-11-2026 17:07] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
|---|---|---|---|
| Zeile 141: | Zeile 141: | ||
| ---- | ---- | ||
| - | ==== Webserver/htaccess/ | + | ==== Webserver-Schutz mit .htaccess ==== |
| - | [[https://wiki.selfhtml.org/ | + | < |
| - | ==== Webserver/htaccess | + | <WRAP round info> |
| + | **Worum geht es?** Ein Webserver | ||
| + | </ | ||
| - | [[https:// | + | {{ : |
| + | <WRAP center 90%>// | ||
| + | |||
| + | **📌 Auf einen Blick** | ||
| + | |||
| + | ^ Was ^ Wie ^ | ||
| + | | Datei | '' | ||
| + | | Wer liest sie? | der Webserver **Apache** (bei den meisten Webhostern Standard) | | ||
| + | | Wichtigste Aufgaben | Ordner sperren · Passwortschutz · auf HTTPS umleiten · Sicherheits-Header | | ||
| + | | Passwortdatei | '' | ||
| + | | Achtung | gilt nicht für andere Webserver wie nginx – dort steht dasselbe in der Server-Konfiguration | | ||
| + | |||
| + | ---- | ||
| + | |||
| + | **🚪 1. Was ist eine .htaccess? | ||
| + | |||
| + | Der Name bedeutet //hypertext access//, also „Zugriff auf Webseiten“. Der Punkt am Anfang macht die Datei unter Linux **versteckt** – im FTP-Programm muss man manchmal erst „versteckte Dateien anzeigen“ einschalten. | ||
| + | |||
| + | So arbeitet der Webserver: | ||
| + | |||
| + | - Ein Besucher ruft z. B. '' | ||
| + | - Apache sucht in '' | ||
| + | - Findet er dort ein Verbot, antwortet er mit **403 Verboten**, statt die Datei herauszugeben. | ||
| + | |||
| + | <WRAP round tip> | ||
| + | **Merksatz: | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | **⛔ 2. Ordner komplett sperren – so schützt sich DokuWiki** | ||
| + | |||
| + | DokuWiki speichert alles in Dateien (siehe Beitrag „DokuWiki (Erklärung)“). Diese Dateien dürfen **nie direkt** aus dem Internet abrufbar sein. Sonst könnte jemand die Rohtexte geschlossener Seiten oder die Benutzerliste mit Passwort-Hashes einfach herunterladen. Deshalb liefert DokuWiki in jedem Systemordner diese '' | ||
| + | |||
| + | <code apache> | ||
| + | ## Kein Zugriff aus dem Internet auf diesen Ordner | ||
| + | ## (liegt in data/, conf/, inc/, bin/ und vendor/) | ||
| + | |||
| + | < | ||
| + | # Apache 2.4 und neuer: "Allen wird der Zugriff verweigert" | ||
| + | Require all denied | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | # Ältere Apache-Versionen (2.2) verstehen nur die alte Schreibweise: | ||
| + | # erst erlauben prüfen, dann verbieten – und verboten ist " | ||
| + | Order allow, | ||
| + | Deny from all | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | **Warum zwei Blöcke?** ''< | ||
| + | |||
| + | ^ Ordner ^ Was darin liegt ^ Was passieren würde ohne Sperre ^ | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | |||
| + | ---- | ||
| + | |||
| + | **🔑 3. Ein Ordner mit Passwort – .htaccess + .htpasswd** | ||
| + | |||
| + | Für Ordner **außerhalb** des Wikis (z. B. eine kleine Umfrage oder Unterlagen für einen Kurs) kann man ein Passwort verlangen. Der Browser zeigt dann ein Anmeldefenster. Man braucht zwei Dateien: | ||
| + | |||
| + | <code apache> | ||
| + | ## .htaccess im zu schützenden Ordner | ||
| + | |||
| + | # Art der Anmeldung: " | ||
| + | AuthType Basic | ||
| + | |||
| + | # Text, der im Anmeldefenster steht | ||
| + | AuthName "Nur fuer Kursteilnehmer" | ||
| + | |||
| + | # Wo die Passwortdatei liegt – IMMER der volle Pfad auf dem Server, | ||
| + | # und am besten AUSSERHALB des öffentlichen Webordners | ||
| + | AuthUserFile / | ||
| + | |||
| + | # Wer darf rein? " | ||
| + | Require valid-user | ||
| + | </ | ||
| + | |||
| + | Die '' | ||
| + | |||
| + | <code bash> | ||
| + | # Neue Passwortdatei anlegen (-c) mit dem sicheren bcrypt-Verfahren (-B) | ||
| + | # Das Programm fragt das Passwort ab – es steht so nicht im Befehlsverlauf. | ||
| + | htpasswd -c -B / | ||
| + | |||
| + | # Weiteren Benutzer hinzufügen: | ||
| + | htpasswd -B / | ||
| + | </ | ||
| + | |||
| + | Erwartete Ausgabe: '' | ||
| + | |||
| + | <WRAP round important> | ||
| + | **Drei Regeln für den Passwortschutz: | ||
| + | - **Nur mit HTTPS.** „Basic“ schickt das Passwort bei jeder Anfrage mit – ohne Verschlüsselung könnte es mitgelesen werden. | ||
| + | - **Die .htpasswd gehört nicht in den Webordner.** Wenn das nicht geht, muss sie selbst gesperrt sein. Die Regel dafür steht in Abschnitt 4. | ||
| + | - **Bei Webhostern** gibt es dafür meist einen Menüpunkt wie „Verzeichnisschutz“ im Kundenmenü. Er legt beide Dateien richtig an – das ist der einfachste und sicherste Weg. | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | **🔒 4. HTTPS erzwingen, Systemdateien verstecken, Header setzen** | ||
| + | |||
| + | Eine '' | ||
| + | |||
| + | <code apache> | ||
| + | ## Keine Verzeichnislisten: | ||
| + | Options -Indexes | ||
| + | |||
| + | ## .htaccess, .htpasswd, README, VERSION und COPYING nicht herausgeben | ||
| + | ## (VERSION verrät z. B. die genaue Programmversion – nützlich für Angreifer) | ||
| + | <Files ~ " | ||
| + | Require all denied | ||
| + | </ | ||
| + | |||
| + | ## Wer http:// aufruft, wird dauerhaft (301) auf https:// umgeleitet | ||
| + | RewriteEngine on | ||
| + | RewriteCond %{HTTPS} off | ||
| + | RewriteRule ^ https:// | ||
| + | |||
| + | ## Browser anweisen, diese Seite ein Jahr lang NUR noch per HTTPS zu öffnen (HSTS) | ||
| + | < | ||
| + | Header always set Strict-Transport-Security " | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <WRAP round tip> | ||
| + | **Vorsicht beim Ausprobieren: | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | **🧪 5. Selbst prüfen – funktioniert der Schutz?** | ||
| + | |||
| + | Man muss nicht raten. Mit dem Befehl '' | ||
| + | |||
| + | <code bash> | ||
| + | # -s = still, -o NUL = Inhalt wegwerfen (Linux/ | ||
| + | # -w = nur den HTTP-Statuscode ausgeben | ||
| + | curl -s -o NUL -w " | ||
| + | curl -s -o NUL -w " | ||
| + | curl -s -o NUL -w " | ||
| + | </ | ||
| + | |||
| + | ^ Antwort ^ Bedeutung ^ Gut oder schlecht? ^ | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | |||
| + | ---- | ||
| + | |||
| + | **🛡️ 6. So ist das EURoBa-Wiki geschützt** | ||
| + | |||
| + | Stand der Prüfung: 11.11.2026, von außen mit '' | ||
| + | |||
| + | ^ Schutz ^ Stand ^ Wie ^ | ||
| + | | Systemordner '' | ||
| + | | Umleitung http → https | ✅ aktiv | '' | ||
| + | | Verzeichnislisten | ✅ aus | Ordner ohne Startdatei zeigen keinen Inhalt | | ||
| + | | Sicherheits-Header | ✅ gesetzt | DokuWiki sendet z. B. '' | ||
| + | | Wer darf welche Wiki-Seite lesen? | ✅ geregelt | nicht per '' | ||
| + | |||
| + | <WRAP round tip> | ||
| + | **Merksatz: | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | **⚠️ 7. Typische Fehler** | ||
| + | |||
| + | ^ Fehler ^ Folge ^ Besser ^ | ||
| + | | '' | ||
| + | | Passwortschutz ohne HTTPS | Passwort kann mitgelesen werden | immer HTTPS | | ||
| + | | '' | ||
| + | | '' | ||
| + | | Alte Installationsdateien und Archive im Webordner | verraten Versionen und Aufbau | nach der Installation löschen | | ||
| + | | Tippfehler | „500 Internal Server Error“ | vorher sichern, einzeln testen | | ||
| + | |||
| + | ---- | ||
| + | |||
| + | **🎓 8. Ideen für den Unterricht** | ||
| + | |||
| + | * **Türsteher-Test: | ||
| + | * **Passwort-Ordner: | ||
| + | * **Mitlesen im Klartext:** In einem Testnetz mit Wireshark zeigen, wie ein Basic-Passwort über http:// sichtbar wird – und über https:// nicht mehr. | ||
| + | * **Detektivarbeit: | ||
| + | |||
| + | ---- | ||
| + | |||
| + | **📚 Weiterlesen** | ||
| + | |||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | </ | ||
| ---- | ---- | ||
