objectif
Bloquer rapidement des IPs via des sets manipulables sans réécrire toute la chaîne.
code minimal
# créer un set et l'utiliser dans input
sudo nft add table inet filter 2>/dev/null || true
sudo nft 'add set inet filter blacklist { type ipv4_addr; flags interval; }'
sudo nft 'add chain inet filter input { type filter hook input priority 0; policy accept; }' 2>/dev/null || true
sudo nft 'add rule inet filter input ip saddr @blacklist drop'
utilisation
# ajouter/retirer des IPs
sudo nft add element inet filter blacklist { 198.51.100.0/24, 203.0.113.7 }
sudo nft delete element inet filter blacklist { 203.0.113.7 }
# vérifier
sudo nft list set inet filter blacklist
variante(s) utile(s)
# set IPv6
sudo nft 'add set inet filter blacklist6 { type ipv6_addr; flags interval; }'
sudo nft 'add rule inet filter input ip6 saddr @blacklist6 drop'
notes
flags intervalpermet d’ajouter des plages (CIDR).- gardez une politique par défaut explicite (accept/drop) selon votre modèle.