Avec nftables il est possible de créer des règles de bannissement temporaire des IP sollicitant trop fréquemment un service.
Créer un ensemble (set) qui contiendra les hôtes blacklistés, ici on chaoisti de l'appeler “jail” :
nft -ai nft> add set ipfilter jail { type ipv4_addr; flags dynamic, timeout; timeout 24h; comment "hotes en liste noire"; }
Les enregistrements dans cet ensemble auront une durée de vie de 24 heures.
On crée maintenant la règle qui peuplera l'ensemble lorsque de trop nombreuses demande de connexions seront demandées sur le port 22 (suspicion d'attaque en force brute) :
insert rule ipfilter inbound position 10 iif "lan0" ct state new,untracked tcp dport 22 limit rate over 3/minute counter add @jail { ip saddr }
On insère enfin une règle supprimant tout trafic en provenance des hôtes présent dans l'ensemble “jail” :
# On insère la règle au début de la chaine "inbound" dans la table "ipfilter" insert rule ipfilter inbound iif "lan0" ip saddr @jail log level warn prefix "[FW] [DROP] [RID=1] " counter drop comment "Supprime les paquets en provenance des hotes en liste noire"