{{tag>netadmin sysadmin linux nft firewall netfilter}}
:TODO_DOCUPDATE:
====== nft : gestion des compteurs ======
Lors de la création d'une règle, on peut associer un compteur (anonymous counter) qui permettra d'évaluer l'usage de la règle:
# création une règle dans la chaîne "output" de la table "filter" avec
# un compteur anonymes
Les compteurs anonymes ne peuvent pas être réinitialisés. Pour réinitialiser les compteurs il faudra alors:
- Sauvegarder les règles (l'état courant);
- Éditer le fichier pour mettre remettre à zéro les valeurs "packets" et "bytes" sur la ou les règles utilisant un compteur anonyme;
- Recharger le fichier édité.
#sauvegarde l’état courant
nft list ruleset > save_current_state.nft
# éditer le fichier save_current_state.nft pour RAZ des compteurs
# Réinitialise et recharge les règles
nft flush ruleset
nft -f save_current_state.nft
Pour gérer individuellement les compteurs et **pouvoir les réinitialiser**, il faudra utiliser les **compteurs nommés** (named counters) qui sont référencés dans la documentation officielle dans la partie "Stateful objects".
Le compteur est lié à une table, lors de sa création on peut optionnellement lui définir des valeurs ''packets'' et ''bytes'' non nulles:
# Création d'un compteur nommé "trafic_rejected" pour la table "filter"
nft add counter ip filter traffic_rejected packets 10 bytes 1100
Pour lister l' ensemble des compteurs nommés:
nft list counters
Pour lister un compteur nommé:
nft list counter aTable aCounterName
Le compteur nommé peut maintenant être utilisé dans une règle:
Réinitialiser le compteur via la commande nft reset:
# nft reset counter aTable aCounterName
nft reset filter output_rejected
===== Références =====
* https://serverfault.com/questions/971633/how-to-reset-nftable-counter
* https://wiki.nftables.org/wiki-nftables/index.php/Element_timeouts