Was du machst
Ein Webserver verrät oft mehr, als nötig ist: seine genaue Version, die Dateien in einem Ordner, Dateien, die niemand veröffentlichen wollte. Härten heißt, seine Konfiguration so zu ändern, dass er weniger sagt und zeigt. Du siehst dir eine kleine Website an, führst eine Prüfung aus, die auflistet, was falsch ist, behebst eine Sache im laufenden Server und führst die Prüfung noch einmal aus. Deine Kopie hat keinen Weg ins Internet, die einzige Seite, die du anfasst, ist also deine eigene.
Bevor du anfängst
Notiz
Drücke oben in der Leiste dieser Lektion auf Lab starten und warte, bis dort steht, dass es läuft. Die Website ist der Dienst namens web, und das Terminal erreicht ihn unter diesem Namen. Jede Schaltfläche Ausführen tippt ihren Befehl in das Terminal deines Labs, einen nach dem anderen in derselben Sitzung. Willst du zuschauen oder eigene Befehle tippen, drücke in der Leiste auf Terminal öffnen (neuer Tab).
1. Sieh, was der Server sagt
curl -I fragt nur nach den Headern. Sieh dir die Zeile an, die mit Server: beginnt. Sie verrät allen, die die Seite besuchen, und auch Angreifenden die genaue Version von nginx: nginx/1.27.5.
curl -I http://webHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
2. Sieh, was er zeigt
Dieser Ordner hat keine eigene Startseite, deshalb listet der Server auf, was darin liegt. Die Antwort ist eine Seite mit der Überschrift Index of /files/ und zwei Dateien, prices.csv und suppliers.txt. Nichts hier hat darum gebeten, eine Liste zu zeigen.
curl http://web/files/Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
3. Führe die Prüfung aus
docker kann in diesem Terminal den Dienst des Labs ansehen, betreten und neu starten, und hier führt es einen Befehl darin aus. lab-check stellt dem laufenden Server neun Fragen und gibt für jede PASS oder FAIL aus. Am Anfang steht überall FAIL, und die letzte Zeile ist Some checks fail.
docker exec web lab-checkHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
4. Behebe eine Sache
Die Konfiguration ist die Datei /etc/nginx/conf.d/default.conf im Container. Dort steht server_tokens on;, und das schreibt die Version in den Header. Dieser Befehl ändert on in off. sed ist ein Editor, der von der Kommandozeile aus eine Änderung macht. Für größere Änderungen öffnest du die Datei mit docker exec -it web sh und bearbeitest sie mit vi.
docker exec web sed -i 's/server_tokens on/server_tokens off/' /etc/nginx/conf.d/default.confHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
5. Lade sie neu
nginx liest seine Konfiguration nur einmal, deshalb sagst du ihm, dass er sie neu lesen soll. reload tut das, ohne die Seite anzuhalten. Es gibt einen Hinweis aus, signal process started, der kein Fehler ist.
docker exec web nginx -s reloadHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
6. Sieh noch einmal nach
Die Zeile Server: zeigt jetzt nur noch nginx, ohne Nummer.
curl -I http://webHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
7. Führe die Prüfung noch einmal aus
Die erste Zeile lautet jetzt PASS the Server header shows no version number, und die anderen acht zeigen noch FAIL: Jede Reparatur schaltet nur ihre eigene Zeile um. Die Ordnerliste, die fehlenden Sicherheits-Header, der Ordner .git, die Sicherungsdatei und der offene Admin-Bereich sind deine Aufgabe, auf dieselbe Weise, bis die letzte Zeile All checks pass. lautet.
docker exec web lab-checkHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
8. Sieh, was erhalten bleibt
Drücke in der Lab-Leiste auf Lab beenden und dann wieder auf Lab starten und führe die Prüfung noch einmal aus: Deine Reparatur ist noch da. Der Konfigurationsordner ist ein benanntes Volume, und die Plattform speichert Volumes. Eine Änderung an einer anderen Stelle im Container wäre weg.
Für Lehrkräfte
Tipp
Diese Lektion ist ein kleines Beispiel für eine Lektion, die in einem Lab bearbeitet wird: Die Schritte und die Schaltflächen „Ausführen“ sind die Lektion, und das Lab ist die eigene Kopie jeder lernenden Person. Nichts darin bewertet sich selbst. Die Lernenden geben die Ausgabe von curl -I vor und nach der Reparatur ab, dazu die letzte Ausgabe von lab-check, und Sie bewerten die Belege. Kopieren Sie die Lektion in Ihr eigenes Modul und ändern Sie sie, oder bauen Sie mit dem Menü Lab im Lektionseditor eine neue.