Outils pour utilisateurs

Outils du site


Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
150-cpl-nftables:60-manipulations_simples [le 20/06/2025 à 14:46] – supprimée - modification externe (Date inconnue) 127.0.0.1150-cpl-nftables:60-manipulations_simples [le 20/06/2025 à 14:46] (Version actuelle) – ↷ Page déplacée de 135nftables:60-manipulations_simples à 150-cpl-nftables:60-manipulations_simples prof
Ligne 1: Ligne 1:
 +====== Manipulations de base ======
 +La manière de gérer le filtrage avec l'outil ''nft'' étant tout-à-fait nouvelle, on va commencer par quelques manipulations simples.
  
 +Nous partons sur une base telle qu'elle a été définie en page précédente. Elle a été construite en traduisant des règles ''iptables'' mais il faut abandonner cette méthode.
 +
 +Nous savons déjà qu'il n'existe plus qu'un seul outil ''nft'' pour gérer aussi bien IPv4 qu' IPv6, ARP ou encore ehternet. Voyons ce qu'il est nécessaire de savoir pour commencer.
 +===== Identifier les tables existantes =====
 +<html><pre class="code">
 +<b>nft list tables</b>
 +table ip nat
 +table ip filter
 +</pre></html>
 +Au passage, notons si c'était passé inaperçu, que les noms des tables peuvent contenir des espaces.
 +===== Identifier le contenu d'une table =====
 +<html><pre class="code">
 +<b>nft  list table ip filter</b>
 +table ip filter {
 + chain INPUT {
 + type filter hook input priority 0; policy accept;
 + iifname "lo" counter packets 0 bytes 0 accept
 + iifname "enp7s0" counter packets 0 bytes 0 accept
 + }
 +
 + chain FORWARD {
 + type filter hook forward priority 0; policy accept;
 + ip daddr { 208.67.220.123, 208.67.222.123 } <span class="hly">counter packets 10 bytes 840</span> drop
 + iifname "enp7s0" oifname "enp1s0" ct state established,related,new <span class="hly">counter packets 7 bytes 511</span> accept
 + iifname "enp1s0" oifname "enp7s0" ct state established,related <span class="hly">counter packets 7 bytes 1490</span> accept
 + }
 +
 + chain OUTPUT {
 + type filter hook output priority 0; policy accept;
 + oifname "lo" counter packets 0 bytes 0 accept
 + oifname "enp7s0" counter packets 0 bytes 0 accept
 + }
 +}
 +</pre></html>
 +En plus de lister les chaînes et les règles dans ces chaînes; nous voyons aussi l'état des compteurs.
 +==== Les compteurs... ====
 +Contrairement aux compteurs de ''ipchains'' qui existent par défaut, ils deviennent facultatifs dans ''nftables'' mais ici, nos règles étant des traductions de règles ''iptables'', les compteurs ont été définis.
 +===== Modifier une règle dans une chaîne =====
 +Il faut d'abord savoir que chaque chaîne, chaque règle dans ''nftables'' dispose d'un "handler" et que ce "handler" nous ne l'avons jamais vu...
 +
 +Pour le trouver:
 +<html><pre class="code">
 +<b>nft <span class="bhly">-a</span> list table ip filter</b>
 +table ip filter { # handle 9
 + chain INPUT {<span class="hly"> # handle 1</span>
 + type filter hook input priority 0; policy accept;
 + iifname "lo" counter packets 0 bytes 0 accept<span class="hly"> # handle 5</span>
 + iifname "enp7s0" counter packets 0 bytes 0 accept<span class="hly"> # handle 6</span>
 + }
 +
 + chain FORWARD {<span class="hly"> # handle 2</span>
 + type filter hook forward priority 0; policy accept;
 + ip daddr { 208.67.220.123, 208.67.222.123 } counter packets 10 bytes 840 drop<span class="hly"> # handle 7</span>
 + iifname "enp7s0" oifname "enp1s0" ct state established,related,new counter packets 9 bytes 663 accept<span class="hly"> # handle 8</span>
 + iifname "enp1s0" oifname "enp7s0" ct state established,related counter packets 9 bytes 1642 accept<span class="hly"> # handle 9</span>
 + }
 +
 + chain OUTPUT {<span class="hly"> # handle 3</span>
 + type filter hook output priority 0; policy accept;
 + oifname "lo" counter packets 0 bytes 0 accept<span class="hly"> # handle 10</span>
 + oifname "enp7s0" counter packets 0 bytes 0 accept<span class="hly"> # handle 11</span>
 + }
 +}
 +</pre></html>
 +le modificateur ''-a'' (ou plus clairement ''-''''-handle'') permet de le découvrir ces "handles", autant le savoir...
 +
 +Pour modifier par exemple le "handle 9" dont nous n'avons pas besoin du compteur:
 +<html><pre class="code">
 +<b>nft <span class="hly">replace</span> rule ip filter FORWARD <span class="hly">handle 9</span> iifname "enp1s0" oifname "enp7s0" ct state established,related accept</b>
 +</pre></html>
 +Syntaxe assez lourde, mais faudra faire avec. On va faire la même chose avec le ''handle 8'' et au final, nous obtenons:
 +<html><pre class="code">
 +<b>nft list table ip filter</b>
 +table ip filter {
 + chain INPUT { # handle 1
 + type filter hook input priority 0; policy accept;
 + iifname "lo" counter packets 0 bytes 0 accept
 + iifname "enp7s0" counter packets 0 bytes 0 accept
 + }
 +
 + chain FORWARD {
 + type filter hook forward priority 0; policy accept;
 + ip daddr { 208.67.220.123, 208.67.222.123 } counter packets 10 bytes 840 drop
 + <span class="hly">iifname "enp7s0" oifname "enp1s0" ct state established,related,new accept</span>
 + <span class="hly">iifname "enp1s0" oifname "enp7s0" ct state established,related accept</span>
 + }
 +
 + chain OUTPUT {
 + type filter hook output priority 0; policy accept;
 + oifname "lo" counter packets 0 bytes 0 accept
 + oifname "enp7s0" counter packets 0 bytes 0 accept
 + }
 +}
 +</pre></html>
 +Les compteurs ont disparu sans pour autant modifier les règles de filtrage.
Manipulations de base: Dernière modification le: 01/01/1970 à 00:00 par