Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Einen Webserver absichern (Härtung)

Nach dieser Lektion: Ich kann sagen, was ein Webserver verbergen und was er ablehnen sollte.

Lektion, 55 Min.4 BefehleWebserver-Härtungslab: eine schwache nginx-Konfiguration reparieren und mit curl prüfen

Die Bäckerei-Seite verrät zu viel

Die Website einer Bäckerei läuft gut. Aber sie nennt jedem Besucher die genaue Version der Software dahinter. Sie listet jede Datei in einem Ordner mit Preislisten auf. Sie liefert sogar eine alte Sicherung einer Einstellungsdatei aus.

Niemand hat sie angegriffen. Man hat ihr nur nie gesagt, dass sie weniger verraten soll.

Die eine Regel

Warnung

Dieses Lab ist ein Webserver, der absichtlich schwach ist. Arbeiten Sie nur an Ihrer eigenen, privaten Kopie und nichts sonst. Sie hat keine Verbindung ins Internet. Einen Server abzutasten, der Ihnen nicht gehört, ist eine Straftat. Das gilt auch dann, wenn Sie nur Header lesen.

Am Ende dieser Lektion

Notiz

Ich kann sagen, was ein Webserver verbergen und was er ablehnen sollte.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
HärtenEinstellungen ändern, damit ein System weniger verrät und weniger erlaubt; auf Englisch Hardening
Headereine Zeile am Anfang einer Antwort, die dem Browser sagt, wie er sie behandeln sollServer: nginx
Verzeichnislisteeine Seite, die jede Datei eines Ordners auflistet
TLSdas Verfahren, das den Verkehr zwischen Browser und Seite verschlüsselt
Zertifikateine signierte Datei, die beweist, dass eine Seite die ist, die sie vorgibt
HSTSein Header, der Browsern sagt, nur noch die sichere Adresse zu nutzen

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Ein Server sollte weniger sagen

Jedes überflüssige Wort eines Servers hilft einem Angreifer. Eine Versionsnummer verrät, welche bekannten Lücken er probieren soll. Eine Ordnerliste zeigt Dateien, die niemand veröffentlichen wollte.

Härten entfernt, was nicht nötig ist: die Version im Server-Header, Ordnerlisten, Sicherungs- und Einstellungsdateien und jeden Admin-Bereich, der allen offensteht.

Der Server in Ihrem Lab

Ihr Lab betreibt eine kleine Bäckerei-Seite auf nginx. Starten Sie sie und führen Sie dann diese vier Befehle aus. Sie lesen nur. Der erste zeigt die Statuszeile. Der zweite zeigt den Server-Header. Der dritte zählt einen Sicherheits-Header. Der vierte liest eine Ordnerseite.

Die Statuszeile

Befehl
curl -s -I http://web | head -n 1

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Der Server-Header

Befehl
curl -s -I http://web | grep -i "^server"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Wie viele X-Frame-Options-Header?

Befehl
curl -s -I http://web | grep -ci "x-frame-options"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die Überschrift einer Ordnerseite

Befehl
curl -s http://web/files/ | grep -o "Index of [a-z/]*"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Beispiel: die vier Ausgaben lesen

RunAusgabeWas es bedeutet
StatuszeileHTTP/1.1 200 OKDie Seite antwortet
Server-HeaderServer: nginx/1.27.5Sie nennt allen ihre genaue Version
X-Frame-Options0Dieser Schutz-Header wird gar nicht gesendet
OrdnerseiteIndex of /files/, zweimalDer Server listet einen Ordner auf, statt abzulehnen

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Sicherheits-Header sagen dem Browser, wie er sich verhält

Einige Header kosten nichts und schließen ganze Problemklassen. X-Content-Type-Options: nosniff hindert den Browser daran, den Typ einer Datei zu erraten. X-Frame-Options hindert andere Seiten daran, Ihre Seite einzubetten.

Content-Security-Policy begrenzt, welche Skripte laufen dürfen. Referrer-Policy begrenzt, welche Adresse an andere Seiten weitergegeben wird.

Ein häufiger Fehler

Warnung

Viele glauben, die Versionsnummer zu verbergen mache einen Server sicher. Sie verbirgt nur einen Hinweis. Ein alter Server mit bekannter Lücke bleibt schwach. Verbergen Sie den Hinweis, halten Sie aber auch die Software aktuell und entfernen Sie, was sie nicht braucht.

Der Verkehr gehört mit aktuellem TLS verschlüsselt

TLS hat Versionen. SSL 3 sowie TLS 1.0 und 1.1 sind alt und gelten nicht mehr als sicher. Erlauben Sie nur TLS 1.2 und 1.3.

Eine gute Einrichtung hat außerdem ein vertrauenswürdiges Zertifikat, das nicht abgelaufen ist. Sie leitet die einfache Adresse auf die sichere um. Sie sendet HSTS, damit Browser sich merken, die sichere Adresse zu nutzen.

So wenig wie möglich offen lassen

Liefern Sie nur die Dateien aus, die die Seite braucht. Halten Sie Sicherungen, Ordner der Versionsverwaltung und Einstellungsdateien aus dem Web-Ordner heraus. Stellen Sie den Admin-Bereich hinter eine Anmeldung oder eine Netzgrenze.

Alles, was Sie entfernen, ist eine Sache weniger, die Sie schützen müssen.

Über dieses Lab und seinen Quellcode: Webserver-Härtungslab: eine schwache nginx-Konfiguration reparieren und mit curl prüfen

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.