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 auf DROP für INPUT.

  • Regeln (-A) fügen gezielt Ausnahmen hinzu.

  • conntrack ist 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.

  1. SSH-Zugang prüfen: Ihr seid per SSH eingeloggt. Stellt sicher, dass ihr wisst, auf welchem Port euer SSH läuft (standardmäßig 22).

  2. Default-Deny setzen:

    bash

    sudo ufw default deny incoming
    sudo ufw default allow outgoing
  3. Unbedingt SSH erlauben (sonst seid ihr nach dem Aktivieren raus!):

    bash

    sudo ufw allow 22/tcp
  4. Webserver-Ports erlauben (laut Port-Atlas):

    bash

    sudo ufw allow 80/tcp
    sudo ufw allow 443/tcp
  5. Minecraft-Ports erlauben (laut Port-Atlas):

    bash

    sudo ufw allow 25565/tcp
    sudo ufw allow 25565/udp
  6. Firewall aktivieren:

    bash

    sudo ufw enable
  7. 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...