Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


fortgeschrittene:nftables

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
fortgeschrittene:nftables [2022/09/14 14:04]
ingo_wichmann
fortgeschrittene:nftables [2023/12/27 11:31] (aktuell)
ingo_wichmann [interaktiv]
Zeile 1: Zeile 1:
 ====== nftables beobachten ====== ====== nftables beobachten ======
   watch -d nft -a list ruleset   watch -d nft -a list ruleset
 +(( oder, wenn nur die filter-Regel von Interesse sind: 
 +  watch -d nft -a list table inet filter 
 +))
 ====== nftables Regeln zurücksetzen/​löschen ====== ====== nftables Regeln zurücksetzen/​löschen ======
   nft flush ruleset   nft flush ruleset
-===== counter zurücksetzen ===== +
-auf die harte Tour: alle aktuellen Regeln löschen und neu einlesen: +
-  (echo 'flush ruleset';​ nft -s list ruleset) | nft -f -+
 ====== erste nftables Regeln ===== ====== erste nftables Regeln =====
 ===== iptables-ähnliche Tabellen und Chains anlegen ===== ===== iptables-ähnliche Tabellen und Chains anlegen =====
 ==== interaktiv ==== ==== interaktiv ====
-(( TODO: kann ich das inet weglassen? Oder kriege ich dann ip?)) 
   nft -ia   nft -ia
   add table inet filter   add table inet filter
Zeile 17: Zeile 16:
   add chain inet filter output { type filter hook output priority filter; }   add chain inet filter output { type filter hook output priority filter; }
 (( 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) )) (( 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) ))
-  add table ip nat +  add table inet nat 
-  add chain ip nat prerouting { type nat hook prerouting priority dstnat; } +  add chain inet nat prerouting { type nat hook prerouting priority dstnat; } 
-  add chain ip nat postrouting { type nat hook postrouting priority srcnat; } +  add chain inet nat postrouting { type nat hook postrouting priority srcnat; } 
  
 ==== mit Konfigurationsdatei ==== ==== mit Konfigurationsdatei ====
-Erste Zeile ''​flush ruleset''​ beachten, sonst werden die Regeln hinzugefügt. ​ 
 <file txt nftables.conf>​ <file txt nftables.conf>​
 flush ruleset flush ruleset
Zeile 49: Zeile 47:
 ===== erste tcp-Ports schließen ===== ===== erste tcp-Ports schließen =====
   nft -ia   nft -ia
-  insert rule inet filter input tcp dport { 80, 3128 } reject with tcp reset+  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 ====== ====== nftables Regeln debuggen ======
 ===== counter nutzen ===== ===== counter nutzen =====
-''​accept'',​ ''​drop''​ oder ''​reject''​ jeweils ''​counter''​ voran stellen: ''​counter accept'',​ ''​counter drop''​ oder ''​counter reject'' ​und Regeln wie oben beschrieben mit ''​watch -d nft -a list ruleset''​ beobachten. ​+''​accept'',​ ''​drop''​ oder ''​reject''​ jeweils ''​counter''​ voran stellen: ''​counter accept'',​ ''​counter drop''​ oder ''​counter reject'' ​
  
 Beispiel: Beispiel:
   nft -ia   nft -ia
   replace rule inet filter input handle 7 tcp dport { 80, 3128 } counter reject with tcp reset   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 ===== ===== Lauf von Paketen nachverfolgen/​tracen =====
Zeile 67: Zeile 89:
  
 ====== aktuelle nftables Regeln speichern ====== ====== aktuelle nftables Regeln speichern ======
-  nft -s flush ruleset > /​etc/​nftables.conf+  nft -s list ruleset > /​etc/​nftables.conf
  
 ====== nftables Regeln aus Datei laden ====== ====== nftables Regeln aus Datei laden ======
Zeile 78: Zeile 100:
 | delete ​ | chain(s) | ip6     | | delete ​ | chain(s) | ip6     |
 | rename ​ | rule     | | rename ​ | rule     |
-| list    | +| list    ​| set      ​|
 | flush   | | flush   |
 | insert ​ | | insert ​ |
fortgeschrittene/nftables.1663164293.txt.gz · Zuletzt geändert: 2022/09/14 14:04 von ingo_wichmann