Antes de 0.11, no había una función predeterminada o una configuración dentro de fail2ban para lograr esto. Pero a partir de la próxima versión 0.11, el tiempo de prohibición se calcula automáticamente y aumenta exponencialmente con cada nuevo delito que, a largo plazo, significará un bloqueo más o menos permanente.
Hasta entonces, su mejor enfoque probablemente sea configurar fail2ban para monitorear su propio archivo de registro . Es un proceso de dos pasos ...
Paso 1
Podríamos necesitar crear un filtro para verificar si hay BAN en el archivo de registro (archivo de registro de fail2ban)
Paso 2
Necesitamos definir la cárcel , similar a lo siguiente ...
[fail2ban]
habilitado = verdadero
filtro = fail2ban
acción = iptables-allports [nombre = fail2ban]
logpath = /path/to/fail2ban.log
# findtime: 1 día
findtime = 86400
# bantime: 1 año
bantime = 31536000
Técnicamente, no es un bloqueo permanente , sino solo bloques por un año (que también podemos aumentar).
De todos modos, para su pregunta (¿Se puede lograr esto solo con fail2ban o necesito escribir mi propio script para hacer eso?) ... escribir el propio script podría funcionar bien. Lo que recomendaría es configurar el script para extraer las IP prohibidas con frecuencia y luego ponerlas en ellas /etc/hosts.deny
.