Zum Inhalt springen

Aufgabe 08 - Angriffsfläche bestimmen und schließen

Zu Zen-Modus wechseln

Aufgabe 08 - Angriffsfläche bestimmen und schließen

Abschnitt betitelt „Aufgabe 08 - Angriffsfläche bestimmen und schließen“

Sie bestimmen, was an Ihrem Server von außen erreichbar ist, schließen alles, was nicht offen sein muss, und belegen die Veränderung mit einer Gegenüberstellung von Ausgangs- und Endzustand (siehe Kapitel Server aufsetzen und härten). Zu jeder offenen Tür beantworten Sie zwei Fragen: Welcher Dienst steht dahinter, und muss er wirklich aus dem Internet erreichbar sein?

  • Kapitel Server aufsetzen und härten, Abschnitte Was von außen erreichbar ist bis Automatisierte Angriffe dämpfen.
  • Ihren Server aus den Aufgaben 04 bis 07, mindestens 24 Stunden in Betrieb.
  • Einen zweiten Rechner außerhalb des Servers, um die Erreichbarkeit von außen zu prüfen. Ein Handy im Mobilfunknetz genügt.
  • Sie bestimmen die Angriffsfläche eines Servers und begründen jeden offenen Port.
  • Sie richten eine Firewall mit Standardverbot ein und aktivieren automatische Sicherheitsupdates.
  • Sie beurteilen die Wirkung und die Grenzen einer Härtungsmaßnahme, statt sie nur zu nennen.
  • Reproduktion: offene Ports ermitteln und die Firewallregeln nach Vorlage setzen (Teil A).
  • Reorganisation und Transfer: die Wirkung von außen prüfen und belegen (Teil B).
  • Reflexion, Problemlösung und Urteilsbildung: Maßnahmen nach ihrer Wirkung bewerten und Grenzen benennen (Teil C).

Die Übung ist auf etwa zwei Stunden ausgelegt.

  1. Rufen Sie ss -tulpn auf und sichern Sie die vollständige Ausgabe in einer Datei. Sie ist das „Vorher” Ihres Nachweises und lässt sich nach Teil B nicht mehr herstellen.

  2. Legen Sie daraus eine Tabelle mit fünf Spalten an: Port, Adresse, Dienst, aus dem Internet nötig?, Begründung. Füllen Sie jede Zeile aus. In der Begründungsspalte steht ein ganzer Satz, nicht „ja” oder „nein”.

  3. Sehen Sie sich die Adressspalte genau an. Unterscheiden Sie Dienste, die an 0.0.0.0 oder [::] lauschen, von solchen an 127.0.0.1. Erklären Sie in drei bis vier Sätzen, was der Unterschied für die Erreichbarkeit aus dem Internet bedeutet, und warum er wichtiger ist als die Portnummer.

  4. Prüfen Sie die Erreichbarkeit von Ihrem zweiten Rechner aus, zum Beispiel mit nc -zv <ip> <port> für jeden Port aus Ihrer Tabelle. Notieren Sie, welche Ports von dort antworten.

  5. Erklären Sie in zwei Sätzen, warum eine Prüfung auf dem Server selbst diese Frage nicht beantworten kann.

  1. Richten Sie ufw mit Standardverbot für eingehenden Verkehr ein und erlauben Sie SSH sowie die Ports 80 und 443. Notieren Sie jeden abgesetzten Befehl.

  2. Achten Sie auf die Reihenfolge: Die SSH-Regel steht vor dem ufw enable. Erklären Sie in zwei Sätzen, was bei umgekehrter Reihenfolge passiert und wie Sie dann wieder auf den Server kämen.

  3. Rufen Sie sudo ufw status verbose auf und wiederholen Sie danach die Erreichbarkeitsprüfung vom zweiten Rechner. Stellen Sie das Ergebnis dem aus Teil A Punkt 4 gegenüber.

  4. Nehmen Sie sich die Zeilen Ihrer Tabelle vor, die Sie in Teil A mit „nein” beantwortet haben. Binden Sie diese Dienste zusätzlich an 127.0.0.1, statt sich allein auf die Firewall zu verlassen. Begründen Sie in drei Sätzen, warum zwei Ebenen hier besser sind als eine.

  5. Installieren Sie unattended-upgrades und richten Sie es so ein, dass Sicherheitsupdates automatisch eingespielt werden und die Maschine dafür zu einer festen Uhrzeit neu startet. Notieren Sie die beiden geänderten Einstellungen aus /etc/apt/apt.conf.d/50unattended-upgrades.

  6. Begründen Sie den automatischen Neustart in zwei bis drei Sätzen. Gehen Sie dabei auf Kernel-Updates ein und darauf, was ein Server ansammelt, der aus Vorsicht nie neu startet.

  7. Installieren Sie fail2ban und aktivieren Sie es. Lesen Sie nach 24 Stunden sudo fail2ban-client status sshd und notieren Sie die Zahl der gesperrten Adressen.

  1. Erzeugen Sie den Endzustand: ss -tulpn erneut, dazu sudo ufw status verbose und die Prüfung vom zweiten Rechner.

  2. Stellen Sie Ausgangs- und Endzustand in docs/haertung.md nebeneinander. Diese beiden Ausgaben sind der kürzeste Beleg dafür, dass sich etwas geändert hat.

  3. Schreiben Sie zu Firewall und automatischen Updates je einen Eintrag nach dem Muster des Kapitels, mit Überschrift, Datum, Vorher, Maßnahme, Nachher und Gegenprobe.

  4. Kopieren Sie die geänderten Dateien aus /etc ins Repository und committen Sie sie. Dazu gehören die Firewallregeln, 50unattended-upgrades und die Konfiguration von fail2ban.

  5. Beurteilen Sie fail2ban in fünf bis sechs Sätzen anhand Ihrer eigenen Zahl aus Teil B Punkt 7. Beantworten Sie dabei zwei Fragen: Wogegen hilft es messbar, und warum richtet es gegen jemanden, der es gezielt auf Ihren Server abgesehen hat, wenig aus?

  6. Im nächsten Kapitel kommen Container hinzu. Erklären Sie in fünf bis sechs Sätzen, warum ein mit ports: "5432:5432" veröffentlichter Datenbankport aus dem Internet erreichbar ist, obwohl ufw ihn verbietet und ufw status weiterhin „deny” anzeigt. Nennen Sie danach die beiden Gegenmaßnahmen aus dem Kapitel.

  7. Prüfen Sie, ob Ihr Anbieter eine Cloud-Firewall außerhalb der Maschine anbietet. Richten Sie sie ein, falls verfügbar, und erklären Sie in drei bis vier Sätzen, warum Docker diese Ebene nicht aushebeln kann.

  8. Schreiben Sie eine Härtungsbilanz von etwa 15 Zeilen. Sie listet jede Maßnahme dieses Kapitels mit einer Einschätzung ihrer Wirkung als hoch, mittel oder gering. Maßnahmen, die Sie bewusst nicht umgesetzt haben, stehen mit Begründung ebenfalls darin.

  9. Legen Sie einen Snapshot des gehärteten Zustands an und notieren Sie ihn in docs/betrieb.md. Er ist der Ausgangspunkt für das nächste Kapitel.

  1. Was zeigt ss -tulpn, und warum ist jede Zeile davon eine Entscheidung?
  2. Worin unterscheidet sich ein Dienst an 0.0.0.0 von einem an 127.0.0.1?
  3. Warum dreht eine Firewall die Grundeinstellung um, und wie heißt das Prinzip dahinter?
  4. Warum muss die SSH-Regel vor dem ufw enable stehen?
  5. Warum prüft man die Erreichbarkeit von einem zweiten Rechner aus und nicht vom Server selbst?
  6. Wogegen hilft fail2ban, und wogegen hilft es nicht?
  7. Warum ist eine veraltete Softwareversion einer der häufigsten Einbruchswege, und was tut unattended-upgrades dagegen?

In docs/haertung.md stehen die Gegenüberstellung der offenen Ports vor und nach dieser Übung, die Einträge zu Firewall und automatischen Updates mit Nachweis sowie die Härtungsbilanz. Die geänderten Dateien aus /etc sind committet. Snapshot und Eingriffe stehen in docs/betrieb.md. Die Porttabelle, die Erreichbarkeitsprüfungen und die Antworten aus Teil C stehen in protokoll.md.