Zurück zur Startseite

nftables-Leitfaden: Firewall in Debian einrichten

Leitfaden zur praktischen Nutzung von nftables in Debian für Serverschutz und Netzwerksegmentierung. Beschreibt Bedrohungsmodellen, Trennungsschemata, Regelbeispiele und Testumgebungen. Enthält OneButtonFirewall für schnelle Bereitstellung.

nftables: von lokaler FW bis Netzwerksegmentierung
Advertisement 728x90

Praktischer nftables-Leitfaden: Netzwerksicherheit auf Debian

nftables auf Debian bietet robuste Traffic-Filterung für Server oder Workstations. Ziel? Unerwünschte eingehende Verbindungen blockieren und ausgehenden Traffic kontrollieren. Vorgehen: Bedrohungen modellieren, Zugriffssteuerungen definieren und Filterregeln erstellen.

Legen Sie mit einer Debian-11.4-Netinstall-VM-Vorlage los: Minimalaufbau ohne Ballast, dann SSH, Midnight Commander und conntrack via apt install mc ssh conntrack hinzufügen. Nutzen Sie eine Virtualisierungsplattform mit Netzwerkkontrolle wie QEMU-KVM oder VirtualBox.

Bedrohungsmodellierung und Abwehrstrategien

Identifizieren Sie Ihre Top-Bedrohungen:

Google AdInline article slot
  • T1: Dienst-Exploits — eingehenden Traffic nach Ports/IPs blockieren.
  • T2: DoS-Angriffe — Pakete rate-limitieren, Loopback-Quellen (127.0.0.0/8 außer von lo) droppen.
  • T3: Brute-Force-Angriffe — fehlgeschlagene Logins tracken und IPs sperren.
  • T4: Bösartige ausgehende Verbindungen — nach IPs, Ports, Protokollen filtern.
  • T5: Unerlaubte Ports — neue eingehende Verbindungen verbieten.

Zugriffssteuerungsschemata, von basisch bis gehärtet:

  • Minimal (Workstations): Alle eingehenden blockieren außer established; alle ausgehenden erlauben.
  • Standard (Server): SSH (22), HTTP/HTTPS (80/443), ICMP erlauben; conntrack begrenzen.
  • Gehärtet: IP-Whitelists, Rate-Limits auf Ports, Blacklists für DoS.

Einrichtung gehärteter Server-Schutz

Lab-Aufbau: Debian-Server im 192.168.1.0/24-Netz, eth0-Schnittstelle.

Mission: nftables mit gehärteter Sicherheit deployen.

Google AdInline article slot

Vorbereitungsschritte:

apt update && apt install nftables
systemctl enable nftables

Regeln in /etc/nftables.conf:

nft add table inet filter
nft add chain inet filter input { type filter hook input priority 0; policy drop; }
nft add chain inet filter output { type filter hook output priority 0; policy accept; }
nft add chain inet filter forward { type filter hook forward priority 0; policy drop; }

# Established/related
nft add rule inet filter input ct state established,related accept

# Loopback
nft add rule inet filter input iifname "lo" accept

# ICMP
nft add rule inet filter input ip protocol icmp icmp type { echo-request, echo-reply } accept

# SSH Rate-Limit
nft add rule inet filter input tcp dport 22 ct state new limit rate 5/minute accept
nft add rule inet filter input tcp dport 22 ct state new drop

# Loopback-Quellen droppen
nft add rule inet filter input ip saddr 127.0.0.0/8 iifname != "lo" drop

nft add rule inet filter input ct state invalid drop
nft add rule inet filter input accept

Anwenden mit: nft -f /etc/nftables.conf. Überprüfen: nft list ruleset, conntrack -L.

Google AdInline article slot

Firewall testen

Lab: Client (192.168.1.10), Server (192.168.1.20).

Mission: Ports prüfen, DoS-Resistenz, ausgehende Flows testen.

Schritte:

  • nmap -p 22,80,443 192.168.1.20 — nur SSH offen.
  • hping3 --flood -S 192.168.1.20 -p 22 — Rate-Limit greift.
  • tcpdump -i eth0 um Drops zu beobachten.

Netzwerksegmentierung mit Routing

IP-Forwarding aktivieren: sysctl net.ipv4.ip_forward=1.

Lab: Router (eth0: LAN1 192.168.10.0/24, eth1: LAN2 192.168.20.0/24).

Mission: Benutzer- und Serverbereiche isolieren.

Regeln:

nft add table inet filter
nft add chain inet filter forward { type filter hook forward priority 0; policy drop; }

# Benutzer zu Server: nur wichtige Ports
nft add rule inet filter forward iifname "eth0" oifname "eth1" tcp dport {22,80,443} ct state new accept
nft add rule inet filter forward iifname "eth0" oifname "eth1" ct state established,related accept

# Rückweg
nft add rule inet filter forward iifname "eth1" oifname "eth0" ct state established,related accept

# Server zu Internet
nft add rule inet filter forward iifname "eth1" oifname "eth2" accept

Layer-2-Segmentierung (Switch-Firewall)

Keine IP-Subnets nötig: VLANs oder MAC-basierte Filterung nutzen.

Bridge-Regeln:

nft add table bridge filter
nft add chain bridge filter forward { type filter hook forward priority 0; }

# Zwischen MAC-Gruppen blockieren
nft add rule bridge filter forward ether saddr 00:11:22:33:44:00 ether daddr 00:55:66:77:88:99 drop

OneButtonFirewall: Schneller Segment-Schutz

Projekt für schnelle Einführung: Skript generiert Regeln aus Vorlagen.

Lab: OBF-Gerät zwischen Segmenten.

Funktionsweise: Skript parst Konfig (JSON/YAML), wendet nftables an.

Vorteile: Null-Konfig, Auto-Updates. Nachteile: Weniger flexibel.

Anwendungsfälle: Home-Offices, kleine Unternehmen ohne Security-Experten.

Wichtige Erkenntnisse:

  • Bedrohungen immer zuerst modellieren.
  • Standardmäßig Drop-Policy mit expliziten Accepts.
  • Rate-Limits und conntrack testen.
  • Sicherheit mit Benutzerfreundlichkeit balancieren.
  • nftables-Logs überwachen (nft log rule).

— Editorial Team

Advertisement 728x90

Weiterlesen