Sicherheitgilt für Debian 12/13, Ubuntu 24.04, Pi OS
Wie richte ich unter Linux eine Firewall ein, ohne mich auszusperren?
Ältere Anleitungen bauen die Firewall mit langen iptables-Regeln. Das ist fehleranfällig, und ein
falscher Befehl sperrt die eigene SSH-Verbindung aus. Wie schützt man einen Server oder Raspberry Pi heute
einfach und sicher?
Lösung
Kurz: Mit ufw, der einfachen Oberfläche für die Linux-Firewall. Grundregel: eingehend alles sperren, ausgehend alles erlauben. Vor dem Einschalten SSH freigeben, dann sudo ufw enable. Weitere Dienste öffnet man einzeln, gern nur fürs Heimnetz.
Installieren und Grundregeln
sudo apt install ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
SSH freigeben, dann einschalten
sudo ufw allow OpenSSH
sudo ufw enable
Die Reihenfolge ist entscheidend. Wer enable vor der SSH-Regel ausführt, sperrt sich bei einem
entfernten Rechner selbst aus. Läuft SSH auf einem anderen Port, statt OpenSSH zum Beispiel
2222/tcp freigeben.
Weitere Dienste öffnen
Nur fürs Heimnetz, hier Samba:
sudo ufw allow from 192.168.178.0/24 to any app Samba
Für alle, hier ein Webserver:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Welche Anwendungsnamen ufw kennt, zeigt sudo ufw app list.
Regeln anzeigen und löschen
sudo ufw status numbered
sudo ufw delete 3
Die erste Zeile listet alle Regeln mit Nummer, die zweite löscht Regel Nummer 3.
Nachträge
Was ist mit iptables und nftables?
ufw schreibt die Regeln nicht selbst in den Kernel, sondern nutzt die Linux-Firewall darunter. Aktuelle Systeme verwenden dafür nftables, das iptables abgelöst hat. Eigene iptables-Regeln aus alten Anleitungen sollte man nicht parallel zu ufw setzen, sonst weiß niemand mehr, welche Regel gilt.
Docker-Ports sind trotz ufw offen
Docker trägt für veröffentlichte Ports eigene Regeln ein, die vor denen von ufw greifen. Ein mit
-p 8080:80 gestarteter Container ist dann trotz ufw erreichbar. Abhilfe: Ports nur an
127.0.0.1 binden, also -p 127.0.0.1:8080:80, und von außen über einen
Reverse-Proxy zugreifen.
Reicht eine Firewall gegen SSH-Angriffe?
Solange SSH offen sein muss, lässt die Firewall Angreifer an den Port. Gegen Passwortraten hilft zusätzlich fail2ban, wer es genau wissen will, sieht die fehlgeschlagenen Anmeldungen im Journal.