Zum Hauptinhalt springen
Zurück zur Kategorie

Firewall-Konfiguration: iptables und ufw Leitfaden

Linux-Server-Firewall mit iptables und ufw konfigurieren: SSH/HTTP/HTTPS-Regeln erstellen, Regeln dauerhaft speichern und die Firewall-Konfiguration testen.

Lesezeit: 12 min Serververwaltung
firewalliptablesufwsicherheitportlinuxserver

Inhaltsverzeichnis

Firewall-Konfiguration: iptables und ufw Leitfaden

Eine Firewall kontrolliert den ein- und ausgehenden Netzwerkverkehr auf Ihrem Server. Linux bietet zwei beliebte Tools: das leistungsstarke Low-Level-Tool iptables und das benutzerfreundliche ufw (Uncomplicated Firewall). Dieser Leitfaden behandelt beide.

REXE-Server verfügen über eine netzwerkseitige Path Panel Firewall. Eine serverseitige Firewall bietet eine zusätzliche Sicherheitsebene. Die Verwendung beider zusammen wird empfohlen.

iptables Grundlagen

iptables ist das Befehlszeilentool zur Verwaltung des netfilter-Frameworks des Linux-Kernels. Es übernimmt Paketfilterung, NAT und Port-Weiterleitung.

Aktuelle Regeln anzeigen

hljs bash
# Alle Regeln auflisten
sudo iptables -L -n -v

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

# NAT-Tabelle anzeigen
sudo iptables -t nat -L -n -v

Grundlegende iptables-Konzepte

KonzeptBeschreibung
ChainRegelkette: INPUT, OUTPUT, FORWARD
TableRegeltabelle: filter, nat, mangle
TargetRegelaktion: ACCEPT, DROP, REJECT
MatchÜbereinstimmungskriterium: Port, Protokoll, IP

Grundlegende Regeln erstellen

hljs bash
# Loopback-Interface erlauben
sudo iptables -A INPUT -i lo -j ACCEPT

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

# SSH erlauben (Port 22)
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# HTTP erlauben (Port 80)
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# HTTPS erlauben (Port 443)
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# Gesamten anderen eingehenden Verkehr blockieren
sudo iptables -A INPUT -j DROP

Erlauben Sie immer SSH, bevor Sie eine DROP-Regel hinzufügen. Andernfalls sperren Sie sich vom Server aus.

Regeln löschen

hljs bash
# Nach Regelnummer löschen
sudo iptables -D INPUT 3

# Nach Regelinhalt löschen
sudo iptables -D INPUT -p tcp --dport 80 -j ACCEPT

# Alle Regeln leeren
sudo iptables -F

Bestimmte IPs erlauben / blockieren

hljs bash
# Bestimmte IP für SSH erlauben
sudo iptables -A INPUT -s 192.168.1.100 -p tcp --dport 22 -j ACCEPT

# Bestimmte IP blockieren
sudo iptables -A INPUT -s 10.0.0.5 -j DROP

# IP-Bereich blockieren
sudo iptables -A INPUT -s 192.168.1.0/24 -j DROP

iptables-Regeln dauerhaft speichern

iptables-Regeln gehen beim Neustart standardmäßig verloren. So machen Sie sie dauerhaft:

Debian/Ubuntu

hljs bash
# iptables-persistent installieren
sudo apt install iptables-persistent -y

# Aktuelle Regeln speichern
sudo netfilter-persistent save

# Regeln neu laden
sudo netfilter-persistent reload

RHEL/CentOS/AlmaLinux

hljs bash
# iptables-services installieren
sudo yum install iptables-services -y

# Dienst aktivieren und starten
sudo systemctl enable iptables
sudo systemctl start iptables

# Regeln speichern
sudo service iptables save

Firewall-Verwaltung mit ufw

ufw vereinfacht die iptables-Komplexität durch einfache Befehle. Es ist auf Ubuntu und Debian vorinstalliert.

ufw installieren und aktivieren

hljs bash
# ufw installieren
sudo apt install ufw -y

# Status prüfen
sudo ufw status verbose

# Standardrichtlinien festlegen
sudo ufw default deny incoming
sudo ufw default allow outgoing

Erlauben Sie immer SSH, bevor Sie ufw aktivieren, um sich nicht auszusperren!

Grundlegende ufw-Regeln

hljs bash
# SSH erlauben
sudo ufw allow ssh
# oder nach Port:
sudo ufw allow 22/tcp

# HTTP und HTTPS erlauben
sudo ufw allow http
sudo ufw allow https

# Benutzerdefinierten Port öffnen
sudo ufw allow 8080/tcp

# ufw aktivieren
sudo ufw enable

ufw-Regeln verwalten

hljs bash
# Regeln mit Nummern auflisten
sudo ufw status numbered

# Regel nach Nummer löschen
sudo ufw delete 3

# Regel nach Inhalt löschen
sudo ufw delete allow 8080/tcp

# Von bestimmter IP erlauben
sudo ufw allow from 192.168.1.100

# Bestimmte IP blockieren
sudo ufw deny from 10.0.0.5

# ufw deaktivieren
sudo ufw disable

# Alle Regeln zurücksetzen
sudo ufw reset

Firewall testen

Port-Scan mit nmap

hljs bash
# Bestimmte Ports von einem anderen Rechner scannen
nmap -sT -p 22,80,443 SERVER_IP

# Alle Ports scannen
nmap -sT SERVER_IP

Lauschende Ports mit ss prüfen

hljs bash
# Lauschende TCP-Ports auflisten
sudo ss -tlnp

# Alle Verbindungen auflisten
sudo ss -tunap

Verbindungstest

hljs bash
# Bestimmten Port testen
telnet SERVER_IP 80

# Mit nc testen
nc -zv SERVER_IP 443

# HTTP-Test mit curl
curl -I http://SERVER_IP

Sicherheitsempfehlungen

Wenden Sie das Prinzip der minimalen Rechte an: Öffnen Sie nur Ports, die tatsächlich benötigt werden.

  1. SSH-Port ändern: Verwenden Sie einen nicht standardmäßigen Port statt 22
  2. Rate Limiting anwenden: Schutz vor Brute-Force-Angriffen
  3. Fail2Ban installieren: Fehlgeschlagene Anmeldeversuche automatisch blockieren
  4. Regelmäßig prüfen: Regeln mit iptables -L oder ufw status überprüfen
  5. Regeln sichern: Regeln in eine Datei speichern
hljs bash
# iptables-Regeln in Datei speichern
sudo iptables-save > /etc/iptables/rules.v4

# Aus Datei wiederherstellen
sudo iptables-restore < /etc/iptables/rules.v4

Fazit

iptables bietet Leistung und Flexibilität, während ufw Geschwindigkeit und Einfachheit bietet. Anfänger sollten mit ufw beginnen; für erweiterte Konfigurationen empfiehlt sich iptables. Beide Tools funktionieren zusammen mit der Path Panel Firewall von REXE. Überprüfen Sie Ihre Firewall-Regeln regelmäßig und schließen Sie nicht mehr benötigte Ports.