nftables: Firewall-Einstellungen – Digitaler Schutzschild Teil12
Vorwort
Ich nenne die Serie »digitaler Schutzschild«, weil alle Maßnahmen in der Summe dazu beitragen, die Privatsphäre und auch Sicherheit bestmöglich bzw. meinen Anforderungen entsprechend zu schützen. Die Beiträge werden eher kurz bzw. kompakt sein und gehen nicht zu sehr ins Detail. Das soll dem Informationsgehalt jedoch keinen Abbruch tun.
Digitaler Schutzschild
Seit Einführung von Debian Buster wird als Paketfilter auf nftables gesetzt – iptables wird also abgelöst. Die neue Syntax von nftables ist zunächst gewöhnungsbedürftig – allerdings einfacher zu lesen. Nachfolgend möchte ich mein nftables-Regelset vorstellen:
#################### # Purge/Flush # #################### flush ruleset ######################### # Incoming IPv4-Traffic # ######################### table ip filter { chain input { type filter hook input priority 0; policy drop; # Allow packets to established/related connections ct state established,related accept # Drop invalid connections ct state invalid drop # Allow loopback interface iifname lo accept # Allow ICMPv4: Ping requests | Error messages | Router selection messages ip protocol icmp icmp type { echo-request, echo-reply, destination-unreachable, time-exceeded, parameter-problem, router-solicitation, router-advertisement } accept # Reject other packets ip protocol tcp reject with tcp reset } ######################### # Forward IPv4-Traffic # ######################### chain forward { type filter hook forward priority 0; policy drop; } ######################### # Outgoing IPv4-Traffic # ######################### chain output { type filter hook output priority 0; policy accept; # Allow loopback interface oifname lo accept } } #################### # IPv6 # #################### table ip6 filter { chain input { type filter hook input priority 0; policy drop; } chain forward { type filter hook forward priority 0; policy drop; } chain output { type filter hook output priority 0; policy drop; } }
Das Regelset unterscheidet zwischen IPv4 und IPv6. Aus diversen Gründen habe ich auf meinem Rechner IPv6 komplett deaktiviert (nicht zur Nachahmung empfohlen) – und zusätzlich komplett innerhalb nftables blockiert. Wer IPv4 und IPv6 gleich behandeln möchte, der kann das Regelset wie folgt vereinfachen:
#################### # Purge/Flush # #################### flush ruleset #################### # Incoming Traffic # #################### table inet filter { chain input { type filter hook input priority 0; policy drop; # Allow packets to established/related connections ct state established,related accept # Drop invalid connections ct state invalid drop # Allow loopback interface iifname lo accept # Allow ICMPv4: Ping requests | Error messages | Router selection messages ip protocol icmp icmp type { echo-request, echo-reply, destination-unreachable, time-exceeded, parameter-problem, router-solicitation, router-advertisement } accept # Allow ICMPv6 traffic (https://tools.ietf.org/html/rfc4890#page-18) ip6 nexthdr icmpv6 icmpv6 type { destination-unreachable, packet-too-big, time-exceeded, echo-request, parameter-problem, echo-reply, nd-router-solicit, nd-router-advert, nd-neighbor-solicit, nd-neighbor-advert, ind-neighbor-solicit, ind-neighbor-advert } accept # Reject other packets ip protocol tcp reject with tcp reset ip6 nexthdr tcp reject with tcp reset } #################### # Forward Traffic # #################### chain forward { type filter hook forward priority 0; policy drop; } #################### # Outgoing Traffic # #################### chain output { type filter hook output priority 0; policy accept; # Allow loopback interface oifname lo accept } }
Anbei noch ein paar ausgewählte Befehle für den Praxiseinsatz.
Regelset aus Datei laden:
nft -f <Dateiname>
Aktives Regelset anzeigen lassen:
nft list ruleset
Einzelnen iptables-Befehl in ntftables-Syntax umwandeln:
iptables-translate -A OUTPUT -o lo -j ACCEPT ip6tables-translate -A OUTPUT -o lo -j ACCEPT
Regelset löschen / zurücksetzen:
nft flush ruleset
Eine schöne Befehlsübersicht findet ihr auch im nftables-Wiki.
- Browser-Nutzung unter Android – Digitaler Schutzschild Teil1
- Browser-Nutzung am Desktop – Digitaler Schutzschild Teil2
- Passwortverwaltung mit KeePass(XC|DX) – Digitaler Schutzschild Teil3
- Thunderbird: E-Mailing am Desktop – Digitaler Schutzschild Teil4
- Netzwerkaufbau im Heimnetz – Digitaler Schutzschild Teil5
- Messenger-Apps auf dem Smartphone – Digitaler Schutzschild Teil6
- Bargeldlos Bezahlen – Digitaler Schutzschild Teil7
- VirtualBox: Virtuelle Systeme – Digitaler Schutzschild Teil8
- System-Authentifizierung via Nitrokey – Digitaler Schutzschild Teil9
- Hintergrundaktivität von Android-Apps einschränken – Digitaler Schutzschild Teil10
- NetGuard: Datensendeverhalten von Android-Apps beeinflussen – Digitaler Schutzschild Teil11
- nftables: Firewall-Einstellungen – Digitaler Schutzschild Teil12
- Auswahl von Online-Shops, Dienstleistern und Versicherungen – Digitaler Schutzschild Teil13