Firewalls unter Linux: Schutz, Konfiguration und Best Practices
Ich halte Firewalls unter Linux nicht für ein Nice-to-have. Ich sehe sie als Pflicht. Wenn ein Dienst nicht erreichbar sein soll, dann darf er auch nicht offen im Netz stehen. So einfach ist das.
In diesem Artikel zeige ich dir, wie ich Firewalls unter Linux für Schutz, Konfiguration und Best Practices einsetze. Kein Gerede, kein Theorie-Nebel. Nur das, was funktioniert.
Warum Firewalls unter Linux wichtig sind
Eine Firewall ist deine erste Schranke zwischen dem System und dem Rest der Welt. Sie entscheidet, welcher Traffic rein darf und welcher nicht. Das reduziert Angriffsfläche, begrenzt Schaden und gibt dir Kontrolle.
Ohne Firewall ist oft mehr offen, als dir lieb ist. Besonders auf Servern. Ein versehentlich gestarteter Dienst, ein vergessener Port, eine Test-App im Netz: Genau da entstehen Probleme.
- Schutz vor unerwünschtem Zugriff
- Kontrolle über offene Ports
- Weniger Angriffsfläche
- Saubere Trennung zwischen intern und extern
Firewalls unter Linux: Welche Optionen ich nutze
Unter Linux gibt es mehrere Wege. Die drei wichtigsten sind:
1. iptables
Der Klassiker. Sehr mächtig, sehr bekannt, aber nicht immer der angenehmste Einstieg. Viele Systeme setzen intern noch darauf. Wenn du tief rein willst, ist das wichtig.
Mehr dazu findest du in der offiziellen Dokumentation des Netfilter-Projekts.
2. nftables
Das ist heute meine erste Wahl, wenn ich modern und sauber arbeiten will. nftables ist die Nachfolge von iptables und bringt eine klarere Syntax, bessere Übersicht und weniger Chaos bei komplexen Regeln.
Die offizielle Seite von nftables ist hier: nftables Wiki.
3. ufw
Wenn ich schnell und unkompliziert eine Firewall auf Ubuntu oder Debian aufsetzen will, nehme ich oft ufw. Das ist eine einfache Frontend-Lösung für iptables/nftables und spart Zeit.
Mehr Infos gibt es in der Ubuntu-Dokumentation: Ubuntu UFW Guide.
Wie ich Firewalls unter Linux konfiguriere
Meine Grundregel ist simpel: default deny. Alles blocken, was nicht ausdrücklich erlaubt ist. Das ist sicherer als alles zu erlauben und dann zu hoffen, dass nichts schiefgeht.
Die Logik ist immer gleich:
- Input blocken, außer das Nötige
- Output kontrollieren, wenn du hohe Sicherheit brauchst
- Forward nur bei Bedarf, zum Beispiel für Routing oder Container-Setups
Mein Standard-Setup
Wenn ich eine neue Maschine absichere, gehe ich in dieser Reihenfolge vor:
- Ich prüfe alle laufenden Dienste mit
ss -tulpen. - Ich entscheide, welche Ports wirklich offen sein müssen.
- Ich setze die Default-Policy auf Blockieren.
- Ich erlaube nur notwendige Verbindungen.
- Ich teste von außen, ob alles so funktioniert wie geplant.
Beispiel mit ufw
So simpel kann eine sichere Basis aussehen:
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
Das ist kein perfektes Setup für jeden Fall. Aber es ist ein guter Start. Und ein guter Start schlägt ein unsicheres Bauchgefühl.
Beispiel mit nftables
Ein minimalistisches Grundgerüst sieht etwa so aus:
table inet filter {
chain input {
type filter hook input priority 0;
policy drop;
ct state established,related accept
iif "lo" accept
tcp dport 22 accept
tcp dport 80 accept
tcp dport 443 accept
}
}
Die Idee ist klar: Nur das, was du explizit erlaubst, kommt durch.
Best Practices für Firewalls unter Linux
Hier wird es praktisch. Das sind die Regeln, die ich fast immer anwende:
- Arbeite mit Whitelisting statt Blacklisting.
- Öffne nur benötigte Ports. Jeder offene Port ist ein Risiko.
- Dokumentiere jede Regel. Sonst verlierst du später den Überblick.
- Teste nach jeder Änderung. Eine falsche Regel kann dich aussperren.
- Nutze Logs, um verdächtigen Traffic zu erkennen.
- Halte Regeln klein und sauber. Weniger ist meist besser.
- Schütze SSH hart. Kein offener Zugang ohne Grund.
Komplexe Tipps, die wirklich etwas bringen
- Beschränke SSH auf bestimmte IPs, wenn du feste Admin-Zugänge hast.
- Rate-Limiting einsetzen, um Brute-Force-Versuche zu bremsen.
- IPv6 nicht vergessen. Viele sichern nur IPv4 und lassen IPv6 offen.
- Container-Ports bewusst prüfen, besonders bei Docker und Kubernetes.
- Nur temporäre Regeln nutzen, wenn du etwas kurz testen willst.
Typische Fehler bei Firewalls unter Linux
Ich sehe immer wieder dieselben Fehler. Die meisten sind leicht vermeidbar.
Fehler 1: Firewall später einrichten
Viele installieren erst alles, machen dann irgendwas offen und denken später an die Absicherung. Schlechter Plan. Ich setze die Firewall früh auf.
Fehler 2: Alles blockieren ohne Ausnahmen
Das klingt sicher, ist aber oft Selbstsabotage. Wenn du die benötigten Ausnahmen nicht sauber setzt, sperrst du Dienste oder dich selbst aus.
Fehler 3: Regeln nicht prüfen
Nur weil eine Regel gesetzt ist, heißt das nicht, dass sie korrekt wirkt. Ich teste immer extern mit Tools wie nmap.
Fehler 4: IPv6 ignorieren
Wenn IPv6 aktiv ist, muss es genauso sauber gefiltert werden wie IPv4. Sonst hast du ein Loch im System und merkst es nicht.
Wie ich Firewalls unter Linux mit anderen Sicherheitsmaßnahmen kombiniere
Eine Firewall ist stark. Aber sie ist nicht alles. Ich kombiniere sie immer mit anderen Maßnahmen:
- SSH-Keys statt Passwortlogin
- Regelmäßige Updates
- Fail2ban für zusätzliche Bruteforce-Abwehr
- Least Privilege für Benutzer und Dienste
- Saubere Dienstkonfiguration, damit unnötige Ports gar nicht erst offen sind
Wenn du willst, dass dein System stabil bleibt, musst du mehrere Schichten bauen. Firewall allein ist gut. Firewall plus gute Härtung ist besser.
Wann ich welche Firewall-Lösung nehme
Ich halte es gern einfach:
- ufw für schnelle, klare Setups auf Ubuntu/Debian
- nftables für moderne, saubere und flexible Regelwerke
- iptables wenn ich auf Legacy-Systemen arbeite oder alte Setups verstehen muss
Wenn du Anfänger bist, starte mit ufw. Wenn du mehr Kontrolle willst, lerne nftables. Wenn du Altlasten verwalten musst, kommst du an iptables nicht vorbei.
Fazit zu Firewalls unter Linux
Ich mache es kurz: Firewalls unter Linux sind eine der effektivsten Maßnahmen für Schutz, Konfiguration und Best Practices. Wenn du nur eine Sache richtig machst, dann diese: standardmäßig blocken, nur Nötiges erlauben, sauber testen.
Das spart Zeit, reduziert Risiken und macht dein System deutlich robuster. Nicht kompliziert. Nur konsequent.
Firewalls unter Linux sind kein Extra. Sie sind die Basis für echten Schutz, saubere Konfiguration und robuste Best Practices.