Avant la version 0.11, il y avait pas de fonction par défaut ou de paramètre dans fail2ban pour y parvenir. Mais à partir de la prochaine version 0.11, la période de bannissement est calculé automatiquement et augmente de manière exponentielle à chaque nouvelle infraction qui, à long terme, entraînera un blocage plus ou moins permanent.
D'ici là, la meilleure approche consiste probablement à mettre en place des fail2ban surveille son propre fichier journal . Il s'agit d'un processus en deux étapes...
Étape 1
Nous pourrions avoir besoin de créer un filtre pour vérifier la présence de BAN dans le fichier journal (fichier journal de fail2ban)
Étape 2
Nous devons définir la prison , similaire à ce qui suit...
\[fail2ban\]
enabled = true
filter = fail2ban
action = iptables-allports\[name=fail2ban\]
logpath = /path/to/fail2ban.log
# findtime: 1 day
findtime = 86400
# bantime: 1 year
bantime = 31536000
Techniquement, c'est pas un blocage permanent mais seulement des blocs pour un an (que l'on peut aussi augmenter).
Quoi qu'il en soit, pour ce qui est de votre question (Peut-on y parvenir avec fail2ban seul ou dois-je écrire mon propre script pour le faire ?)... écrire son propre script pourrait bien fonctionner. La mise en place du script pour extraire le fichier fréquemment IP interdites et les placer ensuite dans des /etc/hosts.deny
est ce que je recommande.