[critical] Correction de networking/nftables.md
parent
246d2ce100
commit
04349892b6
|
@ -3,11 +3,11 @@
|
|||
## Introduction
|
||||
|
||||
`NFTables` est un outil permettant de de gérer une partie de la gestion des
|
||||
paquets dans une machine Linux. Cet outil supplante ses prédécesseurs xtables
|
||||
(iptables, ip6tables, arptables, ...) et son support ets inclus dans les noyaux
|
||||
Linux modernes. Lorsqu'un paquet traverse, sort de ou entre sur votre machine,
|
||||
il parcourt un certain chemin de prises de décisions afin de décider de son
|
||||
sort (jeté, accepté (= intouché), modifié, ...).
|
||||
paquets réseaux dans une machine Linux. Cet outil supplante ses prédécesseurs
|
||||
xtables (iptables, ip6tables, arptables, ...) et son support ets inclus dans les
|
||||
noyaux Linux modernes. Lorsqu'un paquet traverse, sort de ou entre sur votre
|
||||
machine, il parcourt un certain chemin de prises de décisions afin de décider de
|
||||
son sort (jeté, accepté (= intouché), modifié, ...).
|
||||
|
||||
## Structure de NFTables
|
||||
|
||||
|
@ -23,7 +23,8 @@ de décision du noyau.
|
|||
|
||||
Là encore, on peut souhaiter avoir des chaînes différentes pour les paquets IP,
|
||||
IPv6, arp, ... . Pour cette raison, les chaînes sont regroupées dans des tables,
|
||||
chacune ne concernant qu'un type de protocole de couche 3.
|
||||
chacune ne concernant un ou plusieurs type de protocole (généralement de couche
|
||||
3).
|
||||
|
||||
|
||||
La structure des règles NFTables ainsi obtenue devient :
|
||||
|
@ -55,7 +56,7 @@ La structure des règles NFTables ainsi obtenue devient :
|
|||
| | +----------------------------------+ | |
|
||||
| | | |
|
||||
| | ... | |
|
||||
| |----------------------------------------------------+ |
|
||||
| +----------------------------------------------------+ |
|
||||
| |
|
||||
| +----------------------------------------------------+ |
|
||||
| | Chaîne concernant le crochet du NAT en entrée | |
|
||||
|
@ -70,7 +71,7 @@ La structure des règles NFTables ainsi obtenue devient :
|
|||
| | +----------------------------------+ | |
|
||||
| | | |
|
||||
| | ... | |
|
||||
| |----------------------------------------------------+ |
|
||||
| +----------------------------------------------------+ |
|
||||
| |
|
||||
+------------------------------------------------------------+
|
||||
|
||||
|
@ -86,16 +87,16 @@ La structure des règles NFTables ainsi obtenue devient :
|
|||
|
||||
Comme le décrit le schéma précédent, les tables sont juxtaposées les unes les
|
||||
autres. Lorsqu'un paquet est traité, selon le protocole utilisé, aucune, une ou
|
||||
plusieurs tables seront utilisées pour charger les règles à appliquer. \`A
|
||||
plusieurs tables seront utilisées pour charger les règles à appliquer. À
|
||||
chaque étape de traitement du paquet, les chaînes correspondant au paquet seront
|
||||
alors appliquées.
|
||||
|
||||
Un paquet parcourt les règles d'une chaîne dans l'ordre de leur écriture.
|
||||
Si une action est indiquée dans le corps d'une règle, elle sera exécutée si
|
||||
toutes les conditions le précédant dans l'écriture de la règle sont vérifiées.
|
||||
toutes les conditions la précédant dans l'écriture de la règle sont vérifiées.
|
||||
|
||||
Le parcourt d'une chaîne s'arrête lorsqu'un verdict s'applique au paquet
|
||||
considéré. Un verdict est une cation particulière parmi peut être :
|
||||
considéré. Un verdict est une action particulière parmi peut être :
|
||||
* l'abandon du paquet
|
||||
|
||||
* l'abandon du paquet avec choix du message retourné à l'émetteur
|
||||
|
@ -114,7 +115,7 @@ Une table est caractérisée par :
|
|||
* Un nom
|
||||
|
||||
* Un type de paquet : principalement ip (pour l'IPv4), ip6 (pour l'IPv6) et inet
|
||||
* (pour l'IPv4 et IPv6).
|
||||
(pour l'IPv4 et IPv6).
|
||||
|
||||
|
||||
|
||||
|
@ -154,7 +155,7 @@ reject [with MSG], ...).
|
|||
|
||||
Une chaîne peut être créée par la commande `nft add chain <type de la table>
|
||||
<nom de la table> <nom de la chaîne> '{ type <type> hook <crochet> priority
|
||||
<priorité>; [policy <verdict par défaut>;] }', ou par le morceau de
|
||||
<priorité>; [policy <verdict par défaut>;] }'`, ou par le morceau de
|
||||
configuration textuelle suivant :
|
||||
|
||||
```
|
||||
|
@ -174,19 +175,19 @@ Une règle est caractérisée par :
|
|||
|
||||
Dans la définition d'une règle, il est possible d'indiquer :
|
||||
|
||||
* des conditions écrites `<type> <valeur>`, o' \`u le type est un champ du
|
||||
* des conditions écrites `<type> <valeur>`, où le type est un champ du
|
||||
paquet et la valeur est la valeur du champ, comme par exemple `ip protocol
|
||||
udp` (type : `ip protocol` représentant le champ du protocole de couche 4 dans
|
||||
un paquet IPv4, valeur `tcp`).
|
||||
|
||||
Les types peuvent être décrits par `nft describe <type>`.
|
||||
|
||||
* des actions, parmi lesquelles ``compter les paquets'' (`counter`), logger les
|
||||
* des actions, parmi lesquelles "compter les paquets" (`counter`), logger les
|
||||
paquets (`log prefix ...`).
|
||||
|
||||
|
||||
Pour ajouter une règle, il est possible d'utiliser `nft add rule <type de la
|
||||
table> <nom de la table> <nom de la chaîne> '<règle>''`, ou d'ajouter la règle
|
||||
table> <nom de la table> <nom de la chaîne> '<règle>'`, ou d'ajouter la règle
|
||||
sur une ligne dans la configuration textuelle.
|
||||
|
||||
|
||||
|
@ -196,7 +197,7 @@ sur une ligne dans la configuration textuelle.
|
|||
|
||||
* `nft -f <file>` lit la configuration d'un ficher et l'applique
|
||||
|
||||
* `systemctl reload nftables` a le même effet que `nft -f /etc/nftables.conf` di
|
||||
* `systemctl reload nftables` a le même effet que `nft -f /etc/nftables.conf` si
|
||||
le service existe.
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue