Good to Know Database

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?

Von 3 Min. Lesezeit

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.

Quellen