NFTables Kurz gesagt:
- Es ist in Linux-Kerneln >= 3.13 verfügbar.
- Es wird mit einem neuen Befehlszeilenprogramm geliefert NFT deren Syntax sich von iptables unterscheidet.
- Es verfügt außerdem über eine Kompatibilitätsschicht, mit der Sie iptables-Befehle über das neue nftables-Kernel-Framework ausführen können.
- Es bietet eine generische Set-Infrastruktur, mit der Sie Karten und Verkettungen erstellen können. Mit diesen neuen Strukturen können Sie Ihren Regelsatz in einem mehrdimensionalen Baum anordnen drastisch Reduziert die Anzahl der Regeln, die überprüft werden müssen, bis die endgültige Aktion auf einem Paket erreicht ist.
Mittlerweile unter allen aktuellen Debian ähnlichen Linux Servern ist NFTABLES stand der Dinge.
—
Kurze Anleitung:
iptables und ufw löschen.
NFTABLES installieren.
Um nftables unter Ubuntu zu installieren und zu aktivieren, kannst Du die folgenden Befehle in der Konsole verwenden:
sudo apt install nftables
sudo systemctl enable nftables.service
Dadurch wird sichergestellt, dass der Dienst beim Booten startet und Regeln aus der Konfigurationsdatei nftables.conf lädt
Nach Installation Eingabe in Reihenfolge auf der Konsole:
nft flush ruleset (regelwerk leeren) nft -f /etc/nftables.conf (vorher eines der beiden Regelwerke unten abspeichern) und mit nft list ruleset das Regelwerk anzeigen lassen.
Das Regelwerk NFTABLES unten als sehr einfaches Beispiel als datei nftables.conf im Verzeichnis /etc abspeichern:
table inet basic-filter {
chain INPUT {
type filter hook input priority 0; policy drop;
iif lo accept
ct state { established, related } accept
icmp type echo-request accept
tcp dport { 22, 80, 443 } accept
udp dport { 53, 68, 137, 138, 514 } accept
tcp dport { 53, 139, 445, 50514 } accept
tcp dport { 20, 21, 990 } accept
tcp dport { 110, 143, 465, 587, 993, 995 } accept
tcp dport 1300-1310 accept
tcp dport 49152-65535 accept
udp dport 33434-33523 reject
}
chain FORWARD {
type filter hook forward priority 0; policy accept;
}
chain OUTPUT {
type filter hook output priority 0; policy accept;
}
}
Alernatives Regelwerk gleiche Funktion einzeln aufgegliedert:
table inet basic-filter {
chain INPUT {
type filter hook input priority 0; policy drop;
iif lo accept
ct state { established, related } accept
icmp type echo-request accept
udp dport 68 accept
tcp dport 49152-65535 accept
tcp dport 80 accept
tcp dport 443 accept
tcp dport 20 accept
tcp dport 21 accept
tcp dport 990 accept
tcp dport 22 accept
tcp dport 587 accept
tcp dport 25 accept
tcp dport 465 accept
tcp dport 110 accept
tcp dport 995 accept
tcp dport 143 accept
tcp dport 993 accept
tcp dport 106 accept
tcp dport 3306 accept
tcp dport 5432 accept
udp dport 137 accept
udp dport 138 accept
tcp dport 139 accept
tcp dport 445 accept
udp dport 53 accept
tcp dport 53 accept
tcp dport 1300-1310 accept
udp dport 33434-33523 reject
}
chain FORWARD {
type filter hook forward priority 0; policy accept;
}
chain OUTPUT {
type filter hook output priority 0; policy accept;
}
}