techlogia — KI- und Web-Dienstleister Berlin
Alle Kurse
Frei lesbar – ohne Anmeldung

UFW + fail2ban

Du baust dir eine erste, einfache Server-Firewall mit UFW (Default-Deny + Whitelist) und schützt SSH gegen Brute-Force-Versuche per fail2ban. 6 Aufgaben, ca. 55 Minuten.

Dauer: 55 Min.Niveau: EinsteigerAufgaben: 6

Firewall einschalten und fail2ban scharfstellen

Was ist eine Firewall — und was ist fail2ban?

Dieses Modul kombiniert zwei Schutzschichten für einen Linux-Server:

  • UFW (Uncomplicated Firewall) ist eine einfach bedienbare Firewall. Sie entscheidet anhand fester Regeln, welche Ports von außen erreichbar sind. Eine Firewall ist statisch: „Port erlaubt oder nicht".
  • fail2ban ist ein Intrusion-Prevention-System (IPS). Es liest laufend die Logdateien und sperrt automatisch IP-Adressen, die sich verdächtig verhalten (z. B. viele fehlgeschlagene SSH-Logins). fail2ban ist dynamisch: „reagiert auf Verhalten".

Beide ergänzen sich: Die Firewall macht die Grundabsicherung, fail2ban wehrt aktive Angreifer ab.

Das Default-Deny-Prinzip

Eine sichere Firewall blockiert standardmäßig alles und erlaubt dann gezielt nur das Nötige (Default-Deny + Whitelist). Das Gegenteil — alles erlauben und einzelnes sperren — ist unsicher.

Dein Ziel in dieser Lektion

Du richtest UFW mit Default-Deny ein, erlaubst SSH, aktivierst die Firewall, startest fail2ban, schützt den SSH-Dienst mit einem Jail und weist die Schutzwirkung mit einem kontrollierten Angriffstest nach.

⚠️ Reihenfolge ist wichtig: Erst SSH erlauben, dann die Firewall aktivieren — sonst sperrt man sich auf einem echten Server aus. Auf dieser Übungs-VM ist das ungefährlich.

Aufgaben

  1. 1. Default-Deny einschalten

    Begriff: Default-Policy. Die Default-Policy legt fest, was mit Verkehr passiert, für den keine Regel existiert. Sicher ist: eingehend (incoming) alles verwerfen, ausgehend (outgoing) erlauben. Ausgehend muss erlaubt bleiben, sonst kann der Server keine DNS-Anfragen oder Updates mehr machen.

    Setze die Default-Policy:

    sudo ufw default deny incoming
    sudo ufw default allow outgoing

    Kontrolle: sudo ufw status verbose zeigt deny (incoming) und allow (outgoing).

  2. 2. SSH-Port 22 erlauben

    Begriff: Port-Freigabe. Bevor du die Firewall scharf schaltest, musst du SSH (Port 22) ausdrücklich erlauben — sonst kappt die Firewall im nächsten Schritt deine eigene Verbindung.

    Erlaube TCP-Port 22:

    sudo ufw allow 22/tcp

    ⚠️ Vergisst du diesen Schritt und aktivierst trotzdem die Firewall, sperrst du dich auf einem echten Server für den Rest der Sitzung aus. Auf der Lab-VM hat der Prüfer einen eigenen Zugang — du nicht.

    Kontrolle: sudo ufw status listet eine Regel für 22/tcp.

  3. 3. UFW aktivieren

    Begriff: Firewall scharf schalten. Erst mit ufw enable werden Default-Policy und Regeln tatsächlich aktiv — vorher sind sie nur vorbereitet.

    Aktiviere die Firewall:

    sudo ufw --force enable

    --force überspringt die interaktive Rückfrage (nötig im Lab). Prüfe vorher mit sudo ufw status, dass Port 22 erlaubt ist.

    Kontrolle: sudo ufw status meldet Status: active.

  4. 4. fail2ban-Service starten

    Begriff: Dienst (Service). fail2ban läuft als Hintergrund-Dienst. Ein Dienst muss gestartet (läuft jetzt) und aktiviert (startet automatisch beim Booten) sein. enable --now macht beides in einem Schritt.

    Starte und aktiviere fail2ban:

    sudo systemctl enable --now fail2ban

    Kontrolle: systemctl is-active fail2ban meldet active.

  5. 5. sshd-Jail aktivieren

    Begriff: Jail. Ein Jail sagt fail2ban, welche Logdatei es überwachen und wann es sperren soll. Der [sshd]-Jail beobachtet die SSH-Logins: zu viele Fehlversuche von einer IP → diese IP wird zeitweise gesperrt.

    Lege /etc/fail2ban/jail.local an (sudo nano /etc/fail2ban/jail.local) mit:

    [sshd]
    enabled = true

    Danach fail2ban neu laden:

    sudo systemctl reload fail2ban

    ⚠️ Die Whitelist in /etc/fail2ban/jail.d/00-validator-whitelist.conf nicht verändern — sonst sperrst du den Plattform-Prüfer aus.

    Kontrolle: sudo fail2ban-client status sshd funktioniert (der Jail ist aktiv).

  6. 6. Brute-Force-Test ausführen

    Begriff: Verifizieren statt vertrauen. „Sieht fertig aus, ist es aber nicht" ist die schlimmste Falle in der IT-Sicherheit. Statt nur die Konfiguration anzusehen, testest du live, dass fail2ban wirklich sperrt.

    Führe den eingebauten, rein defensiven Brute-Force-Simulator aus (er greift nur localhost an — kein echtes Ziel) und prüfe dann den Jail-Status:

    sudo /usr/local/bin/lab-bruteforce-simulator
    sudo fail2ban-client status sshd

    In der Ausgabe muss Total banned mindestens 1 sein — fail2ban hat den simulierten Angreifer gesperrt.

    Kontrolle: fail2ban-client status sshd zeigt mindestens eine gebannte IP (Total banned: 1 oder mehr).

Jetzt selbst üben

Lesen ist gut – selbst machen ist besser. Starte diesen Kurs an einer echten Linux-VM, direkt im Browser. Ein kostenloses Konto genügt.

Kostenlos starten

Lab-Inhalte unter CC BY 4.0 – frei nutzbar mit Namensnennung (© TechLogia).

UFW + fail2ban