Host Firewall Design: nftables mit Sets, Logging und Rate Limits

Ein effektives Host-Firewall-Design ist für die Absicherung von Linux-Servern unerlässlich. Moderne Systeme setzen zunehmend auf nftables als Nachfolger von iptables, da es eine flexiblere Syntax, Sets, State-Tracking und bessere Performance bietet. In diesem Tutorial lernen Sie, wie Sie nftables mit IP-Sets, Logging und Rate-Limits sicher konfigurieren, um Angriffe zu erkennen, zu begrenzen und gleichzeitig legitimen Traffic zu erlauben.

Grundlagen von nftables

nftables arbeitet mit Tables, Chains und Rules. Eine Table ist eine Sammlung von Chains, die wiederum Regeln enthalten, um Traffic zu filtern oder zu manipulieren. Es unterstützt IPv4, IPv6, ARP und Bridge-Traffic.

Struktur einer nftables-Konfiguration

  • Table: Sammlung von Chains, z. B. inet filter
  • Chain: Sammlung von Regeln mit spezifischem Hook, z. B. input, output, forward
  • Rule: Einzelregel, z. B. accept tcp dport 22

Installation und Basis-Setup

Unter aktuellen Distributionen ist nftables meist vorinstalliert. Ansonsten erfolgt die Installation über den Paketmanager.

# Debian/Ubuntu
apt update && apt install nftables

# RHEL/CentOS
yum install nftables

Firewall aktivieren

systemctl enable nftables
systemctl start nftables
systemctl status nftables

Ein einfaches Filter-Setup

Als Basis empfiehlt sich ein Default-Deny Ansatz, bei dem alle eingehenden Verbindungen abgelehnt werden, außer spezifisch erlaubte Services.

# Basis-Tabelle und Chains anlegen
nft add table inet filter
nft add chain inet filter input { type filter hook input priority 0 ; policy drop ;}
nft add chain inet filter forward { type filter hook forward priority 0 ; policy drop ;}
nft add chain inet filter output { type filter hook output priority 0 ; policy accept ;}

Typische Allow-Regeln

# SSH erlauben
nft add rule inet filter input tcp dport 22 ct state new,established accept
nft add rule inet filter input tcp sport 22 ct state established accept

HTTP/HTTPS erlauben

nft add rule inet filter input tcp dport {80,443} ct state new,established accept
nft add rule inet filter input tcp sport {80,443} ct state established accept

Lokalen Traffic erlauben

nft add rule inet filter input iif lo accept

Sets nutzen für dynamische Regeln

IP-Sets ermöglichen das Sammeln von mehreren IPs in einer Struktur, die effizient in Regeln referenziert werden können.

# Set für erlaubte Admin-IP-Adressen
nft add set inet filter admin_ips { type ipv4; flags interval; }

# IPs hinzufügen
nft add element inet filter admin_ips { 192.168.1.100, 192.168.1.101 }

# Regel für SSH nur von Admin-IP
nft add rule inet filter input ip saddr @admin_ips tcp dport 22 accept

Logging einrichten

Logs sind entscheidend, um verdächtigen Traffic zu erkennen. nftables unterstützt direktes Logging pro Regel.

# Logging für abgelehnte Pakete
nft add rule inet filter input counter log prefix "DROP: " drop

Logrotation konfigurieren

Um zu verhindern, dass Logs das System füllen, sollten Sie rsyslog oder logrotate verwenden.

# Beispiel logrotate
/var/log/nftables.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
}

Rate-Limits für Schutz vor Brute-Force

Rate-Limits verhindern Überlastung durch wiederholte Verbindungsversuche, z. B. bei SSH.

# SSH Rate-Limit: max 4 Verbindungen pro Minute pro IP
nft add rule inet filter input tcp dport 22 ct state new limit rate 4/minute accept

Praktische Tipps für Rate-Limits

  • Verbindungslimits für verschiedene Dienste separat definieren
  • Sets nutzen, um geblockte IPs temporär zu speichern
  • Alerting einrichten, wenn Limits häufig erreicht werden

Persistente Konfiguration und Testing

Änderungen sollten persistent gespeichert und vor dem Go-Live getestet werden.

# Konfiguration speichern
nft list ruleset > /etc/nftables.conf

# Testen
nft -c -f /etc/nftables.conf

# Automatisch beim Booten laden
systemctl enable nftables

Best Practices für Produktionssysteme

  • Default-Deny für Input- und Forward-Chains
  • Output-Policy auf Accept, nur bei Bedarf einschränken
  • Sets für Admins, Monitoring-IPs und temporäre Sperren
  • Regelmäßiges Review der Logs und Alerts
  • Rate-Limits für sensitive Dienste implementieren
  • Redundante Management-Verbindungen über VPN oder dediziertes Netzwerk
  • Dokumentation der Firewallregeln für Audit und Compliance

Mit einem klar strukturierten nftables-Setup, inklusive Sets, Logging und Rate-Limits, lassen sich Linux-Server effizient absichern. Die Kombination aus Default-Deny-Policy, gezielten Allow-Regeln und dynamischer IP-Verwaltung sorgt für maximale Sicherheit bei minimalem Administrationsaufwand. Regelmäßige Überprüfung und Monitoring garantieren, dass die Firewall auch unter Last und Angriffen zuverlässig arbeitet.

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Related Articles