Firewall unter Linux einrichten
Back
Im ersten Teil unseres Firewall-Guides, dem kleinen Port-Atlas , habt ihr gelernt, welche Türen (Ports) an eurem Server überhaupt existieren und welche ihr öffnen oder schließen solltet. Ihr wisst jetzt: Port 22 ist euer SSH-Zugang, Port 80 und 443 sind für eure Webseite da und für euren Gameserver braucht ihr bestimmte UDP-Ports.
Aber wie setzt ihr das jetzt technisch in die Praxis um? Wie wird aus diesem Wissen eine aktive, schützende Barriere?
In diesem Deep Dive tauchen wir tief in die Welt der Linux-Firewalls ein. Ihr lernt die drei wichtigsten Werkzeuge kennen – iptables, nftables und UFW – und wie ihr damit eure Server nach dem Prinzip der minimalen Rechte absichert. Von der ersten Regel bis zum produktiven Setup ist alles dabei.
Los geht's!
🧱 Die Grundlage: Das Prinzip "Default Deny"
Bevor wir die ersten Befehle eingeben, die wichtigste Regel, die wir im Port-Atlas eingeführt haben und die für jede Firewall-Konfiguration gilt:
"Blockiere alles – erlaube nur, was wirklich nötig ist."
Das nennt man eine "Default Deny"-Politik. Eure Firewall ist wie eine Burg mit einem strengen Torwächter. Standardmäßig wird jeder hereingelassen? Von wegen! Standardmäßig wird jeder abgewiesen, der nicht auf einer exakten Gästeliste steht. Diese Gästeliste erstellt ihr mit euren Regeln.
🛠️ Die drei Werkzeuge im Überblick
Auf Linux-Systemen habt ihr hauptsächlich die Wahl zwischen diesen Firewall-Lösungen:
| Werkzeug | Beschreibung | Komplexität | Wann nehmen? |
|---|---|---|---|
| iptables | Der jahrzehntealte Klassiker. Ein mächtiges, aber komplexes Tool, um die Netfilter-Regeln im Kernel zu verwalten. | Hoch | Für tiefgreifende, komplexe Konfigurationen und Skripte. Wird zunehmend von nftables abgelöst. |
| nftables | Der moderne Nachfolger von iptables. Einfacher in der Syntax, schneller und flexibler. | Hoch | Der Standard für neue Projekte, die maximale Kontrolle ohne das alte iptables-Framework brauchen. |
| UFW (Uncomplicated Firewall) | Ein Frontend für iptables (und bald nftables). Macht die Firewall-Konfiguration extrem einfach. | Sehr gering | Absolut perfekt für Einsteiger und Admins, die schnell und sicher einen Server absichern wollen. |
Wir zeigen euch alle drei – ihr könnt selbst entscheiden, welcher Weg für euch der richtige ist.
🔰 Einsteiger-Lösung: Die Firewall mit UFW (Uncomplicated Firewall) einrichten
UFW ist der schnellste und einfachste Weg, euren Linux-Server abzusichern. Die Syntax ist simpel: ufw erlauben/ablehnen [Port] .
1. UFW installieren (falls nicht vorhanden)
Auf Ubuntu/Debian ist UFW oft schon vorinstalliert. Falls nicht:
bash
sudo apt update sudo apt install ufw -y
2. Die "Default Deny"-Politik festlegen
Als Erstes legen wir fest, dass standardmäßig alles eingehende blockiert wird:
bash
sudo ufw default deny incoming sudo ufw default allow outgoing
Ausgehender Verkehr wird erlaubt, damit euer Server z.B. Updates laden kann.
3. Die "Gästeliste" erstellen – Ports erlauben
Jetzt öffnen wir Schritt für Schritt nur die Türen, die wirklich nötig sind. Achtung: Bevor ihr SSH blockiert, stellt sicher, dass ihr es erlaubt habt, sonst schließt ihr euch selbst aus!
bash
# SSH (Port 22) UNBEDINGT zuerst erlauben! sudo ufw allow 22/tcp # Oder, falls ihr den SSH-Port geändert habt: # sudo ufw allow 2222/tcp # Für einen Webserver: sudo ufw allow 80/tcp # HTTP sudo ufw allow 443/tcp # HTTPS # Für einen Minecraft-Server: sudo ufw allow 25565/tcp sudo ufw allow 25565/udp # Für einen Valheim-Server (3 Ports): sudo ufw allow 2456:2458/udp
Ihr seht, wie ihr mit dem Port/Protokoll-Format genau die Regeln aus dem Port-Atlas umsetzt.
4. UFW aktivieren
Nachdem ihr alle Regeln angelegt habt, aktiviert ihr die Firewall:
bash
sudo ufw enable
Bestätigt mit y. Die Firewall ist jetzt aktiv und wird bei jedem Systemstart automatisch geladen.
5. Status prüfen
Mit diesem Befehl seht ihr alle aktiven Regeln und den Status:
bash
sudo ufw status verbose
Die Ausgabe sollte eure Regeln auflisten und anzeigen, dass der Status active ist.
6. Weitere nützliche UFW-Befehle
bash
# Regel löschen (z.B. Regelnummer 2 aus 'status numbered') sudo ufw status numbered sudo ufw delete 2 # Logging aktivieren (hilfreich für die Fehlersuche) sudo ufw logging on # UFW deaktivieren (nur im Notfall) sudo ufw disable
UFW ist ideal für 95% aller Servernutzung. Es ist simpel, gut dokumentiert und sicher.
👨💻 Fortgeschritten: iptables – Die klassische Kontrolle
Wenn ihr mehr Kontrolle braucht, führt kein Weg an iptables vorbei. Hier arbeitet ihr direkt mit den Kernel-Regeln. Ein kleiner Fehler kann euch aussperren, also seid vorsichtig!
Ein sicheres Grundgerüst mit iptables
Das folgende Skript setzt eine "Default Deny"-Politik für INPUT und erlaubt nur wichtige Dienste:
bash
#!/bin/bash # Sicheres iptables Grundgerüst # 1. Alle bestehenden Regeln löschen iptables -F iptables -X iptables -t nat -F iptables -t mangle -F # 2. Default-Policy: Alles blockieren iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # 3. Localhost (loopback) immer erlauben iptables -A INPUT -i lo -j ACCEPT # 4. Bestehende und verwandte Verbindungen erlauben (sonst brecht ihr eure SSH-Verbindung ab!) iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # 5. Wichtige Dienste erlauben (die Gästeliste!) iptables -A INPUT -p tcp --dport 22 -j ACCEPT # SSH iptables -A INPUT -p tcp --dport 80 -j ACCEPT # HTTP iptables -A INPUT -p tcp --dport 443 -j ACCEPT # HTTPS # Gameserver (Beispiel Minecraft) iptables -A INPUT -p tcp --dport 25565 -j ACCEPT iptables -A INPUT -p udp --dport 25565 -j ACCEPT # 6. Schutz vor einfachen Portscans (Rate Limiting) iptables -N port-scan iptables -A port-scan -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j RETURN iptables -A port-scan -j DROP iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -j port-scan # 7. Loggen von abgelehnten Paketen (optional, kann viele Logs erzeugen) iptables -A INPUT -j LOG --log-prefix "IPTABLES-DROP: " # Regeln speichern (je nach Distribution, z.B. mit 'iptables-save') iptables-save > /etc/iptables/rules.v4
Erklärung:
-
Policies (
-P) setzen den Standard aufDROPfür INPUT. -
Regeln (
-A) fügen gezielt Ausnahmen hinzu. -
conntrackist entscheidend, damit Antwortpakete eurer eigenen Verbindungen (wie SSH) wieder reindürfen. -
Portscan-Schutz ist ein einfaches Beispiel für fortgeschrittene Regeln.
🚀 Die Zukunft: nftables – Der moderne Nachfolger
nftables ist der offizielle Nachfolger von iptables und in allen modernen Linux-Distributionen (z.B. Debian 11+, Ubuntu 22.04+) Standard. Die Syntax ist klarer und leistungsfähiger.
Das gleiche Grundgerüst wie oben, aber in nftables-Syntax:
bash
#!/usr/sbin/nft -f
# Eine neue Tabelle anlegen
table inet filter {
# Eine Kette für eingehenden Verkehr
chain input {
type filter hook input priority 0; policy drop;
# Localhost erlauben
iif lo accept
# Bestehende Verbindungen erlauben
ct state established,related accept
# Wichtige Dienste erlauben
tcp dport {22, 80, 443} accept
tcp dport 25565 accept
udp dport 25565 accept
# ICMP (Ping) erlauben (optional, für Fehlersuche)
icmp type { echo-request, echo-reply } accept
# Abgelehnte Pakete loggen
log prefix "nftables DROP: " drop
}
chain forward {
type filter hook forward priority 0; policy drop;
}
chain output {
type filter hook output priority 0; policy accept;
}
}
Vorteile von nftables:
-
Klarere, lesbarere Syntax.
-
Man kann mehrere Ports in einer Regel angeben (
{22,80,443}). -
Bessere Performance.
Ihr könnt dieses Skript speichern und mit nft -f meine-regeln.nft laden.
📝 Von der Theorie zur Praxis: Eine Schritt-für-Schritt-Anleitung mit UFW
Kombinieren wir das Wissen aus dem Port-Atlas mit der praktischen Anwendung von UFW. Nehmen wir an, ihr richtet einen neuen Ubuntu-Server für einen Minecraft-Server und eine kleine Webseite ein.
-
SSH-Zugang prüfen: Ihr seid per SSH eingeloggt. Stellt sicher, dass ihr wisst, auf welchem Port euer SSH läuft (standardmäßig 22).
-
Default-Deny setzen:
bash
sudo ufw default deny incoming sudo ufw default allow outgoing
-
Unbedingt SSH erlauben (sonst seid ihr nach dem Aktivieren raus!):
bash
sudo ufw allow 22/tcp
-
Webserver-Ports erlauben (laut Port-Atlas):
bash
sudo ufw allow 80/tcp sudo ufw allow 443/tcp
-
Minecraft-Ports erlauben (laut Port-Atlas):
bash
sudo ufw allow 25565/tcp sudo ufw allow 25565/udp
-
Firewall aktivieren:
bash
sudo ufw enable
-
Konfiguration prüfen:
bash
sudo ufw status verbose
Die Ausgabe sollte ungefähr so aussehen:
text
Status: active Logging: on (low) Default: deny (incoming), allow (outgoing) New profiles: skip To Action From -- ------ ---- 22/tcp ALLOW IN Anywhere 80/tcp ALLOW IN Anywhere 443/tcp ALLOW IN Anywhere 25565/tcp ALLOW IN Anywhere 25565/udp ALLOW IN Anywhere
Fertig! Euer Server ist jetzt nach dem Prinzip der minimalen Rechte abgesichert. Nur die Türen, die ihr für eure Dienste braucht, sind offen – der Rest ist fest verschlossen.
🏁 Fazit: Firewalls sind eure Freunde
Eine Firewall ist kein Hexenwerk, sondern eine essenzielle Grundlage für jeden Server. Mit den richtigen Werkzeugen und dem Wissen aus dem Port-Atlas, der euch erklärt, welche Türen ihr öffnen müsst, könnt ihr euren Server in wenigen Minuten professionell absichern.
-
Für Einsteiger und Schnelligkeit: UFW ist euer bester Freund. Es ist einfach, sicher und perfekt für 99% aller Anwendungsfälle.
-
Für Kontroll-Freaks und komplexe Setups: iptables und nftables geben euch die ultimative Macht über euren Netzwerkverkehr. Beginnt mit einem simplen Grundgerüst und erweitert es nach Bedarf.
Denkt immer daran: Die beste Firewall ist die, die richtig konfiguriert ist. Testet eure Regeln, dokumentiert sie und haltet sie sauber. So wird euer Server zu einer gut gesicherten Burg, in der nur die willkommenen Gäste ein- und ausgehen.
Bei NexoraHost unterstützen wir euch natürlich gerne bei der Einrichtung. Ob ihr den einfachen Weg mit UFW geht oder eine komplexe nftables-Konfiguration plant – unser Support hilft euch, damit am Ende nur die richtigen Türen offen stehen.
👉 Zum Blog: Firewall-Regeln verstehen – Der kleine Port-Atlas (Hier erfahrt ihr, welche Ports ihr überhaupt öffnen müsst!)
Euer NexoraHost-Team ❤️
PS: Habt ihr Fragen oder hakt es bei einer Regel?
Dann schreibt uns einfach! Unser Support-Team hilft euch nicht nur bei der Wahl des richtigen Servers, sondern auch bei der optimalen Absicherung. Bei NexoraHost seid ihr nicht nur Kunde, sondern Teil der Familie – und eure Sicherheit ist auch unsere Sicherheit! 🔒
More blog articles
Du suchst nach einem neuen Server oder Webhosting und wirst von günstigen Lockangeboten überschüttet? Vorsicht – was auf den ersten Blick wie ein Schnäppchen aussieht, kann langfristig zu einer teuren Überraschung werden. Wir zeigen d...
Was ist eigentlich... Webspace? Einfach erklärt (nicht nur für Oma!) Hast du schon mal von Webspace gehört und gedacht: "Was soll das sein?" Keine Sorge, du bist nicht allein. Viele Leute wissen nicht, was das ist - dabei nutzen sie es jeden Tag....
Du hast bereits erste Erfahrungen mit Minecraft Servern gesammelt und möchtest jetzt deinen eigenen, professionellen Server aufsetzen? Egal ob du mit Mods, Plugins oder im klassischen Vanilla-Stil spielen willst – dieser Guide führt dich durch die wichtigsten...