Nftables : remplacant de Iptables

NOTE fĂ©vrier 2022 : CE "LIVRE" EST TOUJOURS EN COURS DE REALISATION. 
Le noyau utilise Nftables mais, par manque de temps, j'utilise toujours l'interface iptables + ipset, pour le moment cela fonctionne encore trĂšs bien. 
En plus je n'ai pas encore bien compris la philosophie sous tendue par Nftables et j'ai du mal Ă  concevoir un pare-feu Ă  la fois simple, complet et facile Ă  maintenir. 
Nouveauté Mai 2016 : utilisation notation CIDR et intervalles dans un "set nommé", voir l'article spécifique.

"NFTABLES" :

C'est le remplaçant prĂ©vu des commande IPTABLES et IPSET utilisĂ©es par tous les parefeux sour Linux. 
Le dĂ©veloppement ne semble pas hyper actif ni rĂ©actif et de nombreuses commandes ne sont pas encore, Ă  mon goĂ»t, complĂštes, notamment au niveau des "sets" (remplaçants de Ipset) ou suffisament souples. 
Tout est prĂȘt au niveau du noyau Linux depuis dĂ©jĂ  quelques versions (3.16 en principe) mais je pense que pour des tests (NFTABLES ne semble pas encore prĂȘt pour mise en exploitation) il vaut mieux utiliser une version trĂšs rĂ©cente du noyau. 
Ici j'utiliserai une 3.19-rc6, la derniĂšre disponible au moment de ces tests. 
Il faut utiliser un moyau compilé avec tous les modules spécifiques à NFTABLES, malheureusement dans "make menuconfig" les sifférentes options sont un peu dispersées. Il faut aussi se rappeler que NFTABLES concernera IpV6 aussi bien que IpV4, donc configurer le tout.

Il faut avoir configurĂ© dans le noyau (>= 3.16, ici 3.19) les extensions pour "nftables": 
   <M> Netfilter nf_tables support 
   <M>   Netfilter nf_tables mixed IPv4/IPv6 tables support 
   <M>   Netfilter nf_tables IPv6 exthdr module 
   <M>   Netfilter nf_tables meta module 
   <M>   Netfilter nf_tables conntrack module 
   <M>   Netfilter nf_tables rbtree set module 
   <M>   Netfilter nf_tables hash set module 
   <M>   Netfilter nf_tables counter module 
   <M>   Netfilter nf_tables log module 
   <M>   Netfilter nf_tables limit module 
   <M>   Netfilter nf_tables masquerade support 
   <M>   Netfilter nf_tables redirect support 
   <M>   Netfilter nf_tables nat module 
   <M>   Netfilter nf_tables queue module 
   <M>   Netfilter nf_tables reject support 
Ajouter Ethernet bridge nf_tables support 
--- Ethernet Bridge nf_tables support    
  <M>   Netfilter nf_table bridge meta support 
  <M>   Netfilter nf_tables bridge reject support

Il est conseillĂ© de charger tous les modules nĂ©cessaires au dĂ©marrage en constituant une liste des modules dans un fichier dĂ©diĂ© (ici nftables.conf) dans /etc/modules-load.d pour une Debian "Testing" ou dans le fichier /etc/modules pour une Debian "stable". 
Les modules se situent dans /lib/modules/$(uname -r)/kernel/net/netfilter et commencent presque tous par "nft"  sauf les deux plus importants "nf_tables_inet" et "nf_tables". 
Liste des modules chargĂ©s : 
nf_tables 
nf_tables_inet 
nft_chain_nat_ipv6 
nft_chain_nat_ipv4 
nft_chain_route_ipv6 
nft_chain_route_ipv4 
nft_counter 
nft_ct 
nft_exthdr 
nft_hash 
nft_limit 
nft_log 
nft_masq 
nft_meta 
nft_nat 
nft_queue 
nft_rbtree 
nft_redir 
nft_reject_inet 
nft_reject 
nft_reject_ipv4 
nft_reject_ipv6 
On sera ainsi parĂ©s pour toutes les Ă©ventualitĂ©s.  
 

Quelques rĂ©fĂ©rences : 
http://wiki.gentoo.org/wiki/Nftables 
http://wiki.nftables.org/wiki-nftables/index.php/Main_Page