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.











