Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


fortgeschrittene:nftables

nftables beobachten

watch -d nft -a list ruleset

1)

nftables Regeln zurücksetzen/löschen

nft flush ruleset

erste nftables Regeln

iptables-ähnliche Tabellen und Chains anlegen

interaktiv

nft -ia
add table inet filter
add chain inet filter input { type filter hook input priority filter; }
add chain inet filter forward { type filter hook forward priority filter; }
add chain inet filter output { type filter hook output priority filter; }

2)

add table inet nat
add chain inet nat prerouting { type nat hook prerouting priority dstnat; }
add chain inet nat postrouting { type nat hook postrouting priority srcnat; } 

mit Konfigurationsdatei

nftables.conf
flush ruleset
table inet filter {
        chain input {
                type filter hook input priority filter;
        }
        chain forward {
                type filter hook forward priority filter;
        }
        chain output {
                type filter hook output priority filter;
        }
}
table inet nat {
        chain prerouting {
                type nat hook prerouting priority dstnat;
        }
        chain postrouting {
                type nat hook postrouting priority srcnat;
        }
}
nft -f nftables.conf

erste tcp-Ports schließen

nft -ia
insert rule inet filter input tcp dport { 80, 3128 } drop

Alternativ, mit named sets:

nft -ia
add set inet filter port_blacklist { type inet_service; }
add element inet filter port_blacklist { 80, 3128 }
replace rule inet filter input handle 7 tcp dport @port_blacklist drop

einzelne Regel löschen

nft -ia
delete rule inet filter input handle 7

nftables Regeln debuggen

counter nutzen

accept, drop oder reject jeweils counter voran stellen: counter accept, counter drop oder counter reject

Beispiel:

nft -ia
replace rule inet filter input handle 7 tcp dport { 80, 3128 } counter reject with tcp reset

alle counter beobachten:

watch -d nft -a list ruleset

gezielter nur die counter einer Chain beobachten:

watch -d nft -a list chain inet filter input

counter zurücksetzen

auf die harte Tour: alle aktuellen Regeln löschen und neu einlesen:

(echo 'flush ruleset'; nft -s list ruleset) | nft -f -

Pakete loggen

nft -ia
add rule inet filter input log prefix "input accept"

geloggte Pakete anzeigen:

dmesg -Tw

Lauf von Paketen nachverfolgen/tracen

Trace-Regel hinzufügen:

nft insert rule inet filter input iifname eth0 nftrace set 1

Pakete anzeigen:

nft monitor trace

aktuelle nftables Regeln speichern

nft -s list ruleset > /etc/nftables.conf

nftables Regeln aus Datei laden

nft -f /etc/nftables.conf

nft Syntax

action object family
create ruleset inet
add table(s) ip
delete chain(s) ip6
rename rule
list set
flush
insert
replace

3)

Doku

1)
oder, wenn nur die filter-Regel von Interesse sind:
watch -d nft -a list table inet filter
2)
Since Linux kernel 5.2, there is support for performing stateful NAT in inet family chains: http://wiki.nftables.org/wiki-nftables/index.php/Performing_Network_Address_Translation_(NAT)
3)
inspiriert von:
fortgeschrittene/nftables.txt · Zuletzt geändert: 2023/12/27 11:31 von ingo_wichmann