Outils pour utilisateurs

Outils du site


netadmin:nftables:000_start

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
Prochaine révision
Révision précédente
netadmin:nftables:000_start [2024/06/07 08:22] – [Les règles] yoannnetadmin:nftables:000_start [2024/12/03 09:15] (Version actuelle) – Corrections yoann
Ligne 1: Ligne 1:
-{{tag>netadmin sécurité linux firewall pare-feu netfilter}}+{{tag>netadmin sécurité linux firewall pare-feu netfilter nft nftables}}
  
 :TODO_DOCUPDATE: :TODO_DOCUPDATE:
Ligne 74: Ligne 74:
  
 # La famille peut être précisée en préfixe # La famille peut être précisée en préfixe
-nft list ip aTableName +nft list table ip aTableName 
-nft list ip6 aTableName +nft list table ip6 aTableName 
-nft list inet aTableName +nft list table inet aTableName 
-nft list arp aTableName +nft list table arp aTableName 
-nft list bridge aTableName +nft list table bridge aTableName 
-nft list netdev aTableName+nft list table netdev aTableName
 </code> </code>
  
Ligne 115: Ligne 115:
 ===== Les chaînes ===== ===== Les chaînes =====
  
-Les chaînes contiennent les séquences de règles. On distingue les **chaînes de base** et les **chaines normales** (regular):+Les chaînes contiennent les séquences de règles. On distingue les **chaînes de base** et les **chaînes normales** (regular):
   * Un **chaîne de base** est un point d'entrée pour les paquets en provenance de la pile réseau. L'association au point d'entrée se fait via un système de hook);   * Un **chaîne de base** est un point d'entrée pour les paquets en provenance de la pile réseau. L'association au point d'entrée se fait via un système de hook);
   * Une **chaîne normale** peut être utilisée comme cible par un saut (jump) elle permet notamment de regrouper et d'organiser un sous ensemble de règles.   * Une **chaîne normale** peut être utilisée comme cible par un saut (jump) elle permet notamment de regrouper et d'organiser un sous ensemble de règles.
Ligne 121: Ligne 121:
 <code> <code>
 add chain aTableName inbound { type filter hook input priority 0; comment "Filtrage du trafic entrant"; } add chain aTableName inbound { type filter hook input priority 0; comment "Filtrage du trafic entrant"; }
 +</code>
 +
 +===== Lister les règles d'une chaine =====
 +
 +Pour lister les règles contenues dans une chaine :
 +<code>
 +nft list chain aTablename aChain
 </code> </code>
  
Ligne 167: Ligne 174:
 delete rule aTable aChain handle 5 delete rule aTable aChain handle 5
 </code> </code>
- 
  
  
Ligne 179: Ligne 185:
  
 Source : [[https://serverfault.com/questions/985158/what-is-the-difference-between-iifname-and-iif-in-nftables|Différence entre iifname et iif (serverfault.com)]] Source : [[https://serverfault.com/questions/985158/what-is-the-difference-between-iifname-and-iif-in-nftables|Différence entre iifname et iif (serverfault.com)]]
 +
 +
 +==== Les états ====
 +
 +Une petite précision sur les états des **connexions TCP** disponibles via ct (conntrack),  il en existe 5 :
 +
 +  * **NEW** : Il s'agit des premiers paquets d'une connexion (Exemple : premier paquet TCP SYN d'une connexion TCP).
 +  * **ESTABLISHED** : Echange de paquet dans les deux sens, la connexion est dite "établie".
 +  * **RELATED** : Connexion qui se réfère d'une connexion ESTABLISHED et créé par elle (Exemple, une connexion FTP-DATA après une authentification correcte via le protocole FTP).
 +  * **INVALID** : Paquet sans état et ne pouvant être rattaché à une connexion déjà connue, à dropper.
 +  * **UNTRACKED** : Paquet ne faisant pas partie d'une connexion connue.
 +
 +
 +==== Les sets (ensembles) ====
 +
 +Voir la note [[netadmin/nftables/gestion_des_ensembles|Gestion des ensembles avec nftables]].
 +
 ===== Compteurs ===== ===== Compteurs =====
  
Ligne 186: Ligne 209:
 icmp type echo-request icmp type echo-request
 </code> </code>
 +
 +
  
 ===== Journalisation ===== ===== Journalisation =====
Ligne 222: Ligne 247:
 La suppression d'une limite nommée n'est possible que lorsqu' elle n'est plus utilisée. Dans le cas contraire on obtient une erreur du type ''Error: Could not process rule: Device or resource busy''. La suppression d'une limite nommée n'est possible que lorsqu' elle n'est plus utilisée. Dans le cas contraire on obtient une erreur du type ''Error: Could not process rule: Device or resource busy''.
 </note> </note>
 +
 +===== Activer le service nftables ======
 +
 +Sur les distributions récentes basées sur systemd, le service existe mais il n'est pas activé par défaut :
 +
 +<code bash>
 +systemctl status nftables.service 
 +○ nftables.service - nftables
 +     Loaded: loaded (/lib/systemd/system/nftables.service; disabled; preset: enabled)
 +     Active: inactive (dead)
 +       Docs: man:nft(8)
 +             http://wiki.nftables.org
 +</code>
 +
 +Activer le service ''nftables.service'' :
 +
 +<code bash>
 +systemctl enable --now nftables.service
 +</code>
 +
 +Le ruleset ''/etc/nftables.conf'' utilisé par défaut par le service est vide, il faudra  définir vos règles. 
 +
  
 ===== Exemple ===== ===== Exemple =====
Ligne 257: Ligne 304:
   * https://wiki.nftables.org/wiki-nftables/index.php/Rejecting_traffic   * https://wiki.nftables.org/wiki-nftables/index.php/Rejecting_traffic
   * https://www.linuxembedded.fr/2022/06/introduction-a-nftables   * https://www.linuxembedded.fr/2022/06/introduction-a-nftables
-  * https://blog.debugo.fr/nftables-serie-tutos/+  * [[https://blog.debugo.fr/nftables-serie-tutos/|tutoriel netfilter nftables (debugo.fr)]]
   * https://wiki.csnu.org/index.php/Nftables   * https://wiki.csnu.org/index.php/Nftables
   * https://www.youtube.com/watch?v=EGKhIljDPCw   * https://www.youtube.com/watch?v=EGKhIljDPCw
   * [[https://wiki.nftables.org/wiki-nftables/index.php/Logging_traffic|Journalisation du trafic (nftables.org)]]   * [[https://wiki.nftables.org/wiki-nftables/index.php/Logging_traffic|Journalisation du trafic (nftables.org)]]
 +  * [[https://wiki.archlinux.org/title/Nftables|guide d'utilisation de nftables (archlinux.org)]]
 +  * [[https://thermalcircle.de/doku.php?id=blog:linux:connection_tracking_1_modules_and_hooks|Fonctionnement de conntrack]]
netadmin/nftables/000_start.1717748571.txt.gz · Dernière modification : 2024/06/07 08:22 de yoann