Rechercher

2.10. Débogage des règles nftables

download PDF

Le cadre nftables offre différentes options aux administrateurs pour déboguer les règles et déterminer si les paquets y correspondent.

2.10.1. Création d'une règle avec un compteur

Pour savoir si une règle est respectée, vous pouvez utiliser un compteur.

Conditions préalables

  • La chaîne à laquelle vous souhaitez ajouter la règle existe.

Procédure

  1. Ajoutez une nouvelle règle avec le paramètre counter à la chaîne. L'exemple suivant ajoute une règle avec un compteur qui autorise le trafic TCP sur le port 22 et compte les paquets et le trafic qui correspondent à cette règle :

    # nft add rule inet example_table example_chain tcp dport 22 counter accept
  2. Pour afficher les valeurs du compteur :

    # nft list ruleset
    table inet example_table {
      chain example_chain {
        type filter hook input priority filter; policy accept;
        tcp dport ssh counter packets 6872 bytes 105448565 accept
      }
    }

2.10.2. Ajouter un compteur à une règle existante

Pour savoir si une règle est respectée, vous pouvez utiliser un compteur.

Conditions préalables

  • La règle à laquelle vous souhaitez ajouter le compteur existe.

Procédure

  1. Affiche les règles de la chaîne, y compris leurs poignées :

    # nft --handle list chain inet example_table example_chain
    table inet example_table {
      chain example_chain { # handle 1
        type filter hook input priority filter; policy accept;
        tcp dport ssh accept # handle 4
      }
    }
  2. Ajoutez le compteur en remplaçant la règle par le paramètre counter. L'exemple suivant remplace la règle affichée à l'étape précédente et ajoute un compteur :

    # nft replace rule inet example_table example_chain handle 4 tcp dport 22 counter accept
  3. Pour afficher les valeurs du compteur :

    # nft list ruleset
    table inet example_table {
      chain example_chain {
        type filter hook input priority filter; policy accept;
        tcp dport ssh counter packets 6872 bytes 105448565 accept
      }
    }

2.10.3. Surveillance des paquets correspondant à une règle existante

La fonction de traçage de nftables, combinée à la commande nft monitor, permet aux administrateurs d'afficher les paquets qui correspondent à une règle. Vous pouvez activer le traçage pour une règle et l'utiliser pour surveiller les paquets qui correspondent à cette règle.

Conditions préalables

  • La règle à laquelle vous souhaitez ajouter le compteur existe.

Procédure

  1. Affiche les règles de la chaîne, y compris leurs poignées :

    # nft --handle list chain inet example_table example_chain
    table inet example_table {
      chain example_chain { # handle 1
        type filter hook input priority filter; policy accept;
        tcp dport ssh accept # handle 4
      }
    }
  2. Ajoutez la fonction de traçage en remplaçant la règle par les paramètres meta nftrace set 1. L'exemple suivant remplace la règle affichée à l'étape précédente et active le traçage :

    # nft replace rule inet example_table example_chain handle 4 tcp dport 22 meta nftrace set 1 accept
  3. Utilisez la commande nft monitor pour afficher le suivi. L'exemple suivant filtre la sortie de la commande pour n'afficher que les entrées contenant inet example_table example_chain:

    # nft monitor | grep "inet example_table example_chain"
    trace id 3c5eb15e inet example_table example_chain packet: iif "enp1s0" ether saddr 52:54:00:17:ff:e4 ether daddr 52:54:00:72:2f:6e ip saddr 192.0.2.1 ip daddr 192.0.2.2 ip dscp cs0 ip ecn not-ect ip ttl 64 ip id 49710 ip protocol tcp ip length 60 tcp sport 56728 tcp dport ssh tcp flags == syn tcp window 64240
    trace id 3c5eb15e inet example_table example_chain rule tcp dport ssh nftrace set 1 accept (verdict accept)
    ...
    Avertissement

    En fonction du nombre de règles dont le traçage est activé et de la quantité de trafic correspondant, la commande nft monitor peut afficher un grand nombre de résultats. Utilisez grep ou d'autres utilitaires pour filtrer la sortie.

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.