# Firewalls mit iptables und ufw

Firewalls mit iptables und ufw – Server-Administration und Linux-Wissen von NexoraHost.

Eine Firewall schützt deinen Server vor unerwünschten Zugriffen. Diese Anleitung erklärt die beiden wichtigsten Firewall-Tools unter Linux: ufw (einfach) und iptables (fortgeschritten). Beide sind auf den meisten Systemen vorinstalliert.

**Hinweis:** Ausführliche Anleitungen zu Sicherheit und Netzwerk findest du in der linken Navigation.

## ufw vs. iptables – Was ist der Unterschied?

    
        Merkmal
        ufw
        iptables
    

    
        Schwierigkeit
        Einfach – Befehle sind selbsterklärend
        Komplex – benötigt genaue Syntax
    

    
        Empfohlen für
        Einsteiger und Standard-Setups
        Fortgeschrittene und komplexe Regeln
    

    
        Konfiguration
        Wird in iptables-Regeln übersetzt
        Direkte Kernel-Regeln
    

    
        Standard auf
        Ubuntu, Debian (nachinstallierbar)
        Allen Linux-Systemen
    

Für 95% der Anwendungsfälle ist ufw vollkommen ausreichend. iptables brauchst du nur für sehr spezielle Setups.

## ufw – Die einfache Firewall

### Grundlegende Befehle

`# Status anzeigen
sudo ufw status verbose

# Status mit nummerierten Regeln
sudo ufw status numbered

# Aktivieren / Deaktivieren
sudo ufw enable
sudo ufw disable

# Komplett zurücksetzen
sudo ufw reset`

### Standardrichtlinien festlegen

`# Alles Eingehende blockieren (empfohlen)
sudo ufw default deny incoming

# Alles Ausgehende erlauben
sudo ufw default allow outgoing`

### Ports öffnen

`# Einzelner Port mit Protokoll
sudo ufw allow 22/tcp
sudo ufw allow 443/tcp
sudo ufw allow 53/udp

# Ohne Protokoll (TCP und UDP)
sudo ufw allow 30120

# Port-Bereich
sudo ufw allow 27000:27100/tcp

# Von bestimmter IP
sudo ufw allow from 192.168.1.100 to any port 22

# Von bestimmter IP mit Protokoll
sudo ufw allow from 192.168.1.0/24 to any port 3306 proto tcp`

### Ports schließen

`# Nach Port-Nummer
sudo ufw deny 3306/tcp

# Mit Nummer aus "ufw status numbered"
sudo ufw delete 3

# Komplette Regel löschen
sudo ufw delete allow 80/tcp`

### ufw für bestimmte Dienste

`# Apache/Nginx erlauben
sudo ufw allow 'Apache Full'
sudo ufw allow 'Nginx Full'

# SSH erlauben
sudo ufw allow 'OpenSSH'

# Verfügbare Profile anzeigen
sudo ufw app list`

## iptables – Die mächtige Firewall

### Grundlegende Befehle

`# Alle aktuellen Regeln anzeigen
sudo iptables -L -v -n

# Mit Zeilennummern
sudo iptables -L -v -n --line-numbers

# Alle Regeln löschen (Vorsicht!)
sudo iptables -F`

### Standardrichtlinien setzen

`# Eingehenden Traffic blockieren
sudo iptables -P INPUT DROP

# Ausgehenden Traffic erlauben
sudo iptables -P OUTPUT ACCEPT

# Forward-Traffic blockieren (als Server nicht benötigt)
sudo iptables -P FORWARD DROP`

### Ports öffnen

`# SSH erlauben (Wichtig: als erstes!)
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# HTTP und HTTPS
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# Von bestimmter IP
sudo iptables -A INPUT -p tcp -s 192.168.1.100 --dport 3306 -j ACCEPT

# Bestehende Verbindungen erlauben
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Loopback erlauben (interne Kommunikation)
sudo iptables -A INPUT -i lo -j ACCEPT`

### Ports schließen / Regeln löschen

`# Nach Zeilennummer
sudo iptables -D INPUT 3

# Nach Regel-Inhalt
sudo iptables -D INPUT -p tcp --dport 80 -j ACCEPT`

### Regeln speichern (über Neustart hinaus)

`# iptables-persistent installieren
sudo apt install iptables-persistent -y

# Regeln speichern
sudo netfilter-persistent save

# Regeln wiederherstellen
sudo netfilter-persistent reload`

## Wichtige Ports auf einen Blick

    
        Port
        Dienst
        Protokoll
    

    
        22
        SSH
        TCP
    

    
        80
        HTTP (Webserver)
        TCP
    

    
        443
        HTTPS (Webserver SSL)
        TCP
    

    
        3306
        MySQL/MariaDB
        TCP
    

    
        21
        FTP
        TCP
    

    
        25565
        Minecraft
        TCP
    

    
        30120
        FiveM
        TCP + UDP
    

    
        27015
        CS2, ARK Query
        TCP + UDP
    

    
        7777-7778
        ARK Game
        UDP
    

    
        9987
        Teamspeak 3 Voice
        UDP
    

## Typische Sicherheits-Setups

### Minimaler Webserver (ufw)

`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`

### Gameserver mit Webinterface (ufw)

`sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 30120        # FiveM
sudo ufw allow 25565/tcp    # Minecraft
sudo ufw allow 9987/udp     # Teamspeak
sudo ufw allow 80/tcp       # Webinterface
sudo ufw enable`

## Häufige Probleme

**Nach Firewall-Aktivierung kein SSH mehr:**

    - Vor dem Aktivieren immer SSH erlauben: `sudo ufw allow 22/tcp`
- Falls ausgesperrt: Im Kundenpanel die VNC-Konsole nutzen um die Firewall zu deaktivieren

**Regeln greifen nicht in der erwarteten Reihenfolge:**

    - iptables verarbeitet Regeln von oben nach unten. Die erste passende Regel wird angewendet
- Spezifische Regeln vor allgemeine Regeln setzen

**ufw ist installiert aber inaktiv:**

    - Prüfen mit `sudo ufw status`
- Falls "inactive": `sudo ufw enable`

*Ausführliche Anleitungen zu Netzwerk und erweiterten Firewall-Regeln findest du in den Artikeln der linken Navigation.*
