Aucune "table" n'est définie par défaut comme avec "iptables", c'est à vous de les définir !
Rappel :
Plus de différence entre IPV4 et IPV6, tout peut être traité dans le même flot, si on utilise des tables "inet", par défaut c'est "ip" (IPV4) qui est choisi, on peut aussi utiliser "ip6" pour du spécifique IPV6.
Commandes disponibles :
list
ruleset
tables [famille]
table [famille] <nom>
chain [famille] <table> <nom>
add
table [famille] <nom>
chaine [famille] <table> <nom> [paramètres de la chaîne]
rule [famille] <table> <chaine> <paramètres de la règle>
element [famille] <table> <set> { 1..n elements }
table [famille] <nom> (raccourci pour "add table`)
insert
rule [famille] <table> <chaine> <paramètres de la règle>
delete
table [famille] <nom>
chain [famille] <table> <nom>
rule [famille] <table> <numero handle>
set [famille] <table> <set> : il ne doit plus être référencé
element [famille] <table> <set> { 1..N elements a enlever }
flush
table [famille] <nom>
chain [famille] <table> <nom>
Remarques :
La famille "ip" (ipv4) est prise par défaut.
Attention à la syntaxe de "list" "list tables" et "list table ENTREE".
Liste des familles de "tables" et l'outil iptables correspondant
ip iptables
ip6 ip6tables
inet iptables and ip6tables
arp arptables
bridge ebtables
Liste des "hooks" existants, tiens tiens ! Les noms me rappellent quelque chose :
INPUT paquet entrant dans le système local
OUTPUT paquet sortant du système local
FORWARD paquet traversant
PREROUTING paquet entrant
POSTROUTING paquet sortant
Liste des "types" de tables existants, là aussi les noms semblent familiers :
filter Valeur par défaut
nat
route (mangle), ne semble utilisable qu'avec le hook "output".
Ordres supportés par la commande "table"
add
delete
list
flush
Ordres supportés par la commande "chain" :
add
create
delete
list
flush
rename
Ordres supportés par la commande "rule" :
add ajoute une règle en fin de chaîne
insert ajoute une règle en début de chaîne
delete détruit une règle, utilisé avec un "handle" cf "nft -a list ...."
Ordres supportés par la commande "ruleset" :
flush efface tout
list liste tout
Destination des paquets
accept
reject
drop
snat
dnat
log
counter
return
jump <chaine>
goto <chaine>
Quelques "mots clefs" pour les règles :
oif interface sortie suivi d'un numéro
iif interface entree suivi d'un numéro
oifname nom de l'interface de sortie
iifname nom de l'interface d'entree
type suivi d'un type ICMP par exemple "echo-request"
protocol tcp, udp ...
daddr adresse destination
saddr adresse source
dport port de destination
sport port source
ct connexion tracking + state ( NEW, ESTABLISHED, RELATED, INVALID)
C'est un bon début.