¿Cómo puedo eliminar todas las prohibiciones de fail2ban en Ubuntu? Intenté todo pero no lo entiendo.
Solo quiero eliminar todas las prohibiciones, pero no conozco ninguna dirección IP.
¿Cómo puedo eliminar todas las prohibiciones de fail2ban en Ubuntu? Intenté todo pero no lo entiendo.
Solo quiero eliminar todas las prohibiciones, pero no conozco ninguna dirección IP.
Respuestas:
A partir de la versión 0.10.0 fail2ban-client
presenta el unban
comando que se puede usar de dos maneras:
unban --all unbans all IP addresses (in all
jails and database)
unban <IP> ... <IP> unbans <IP> (in all jails and
database)
Además, los comandos restart <JAIL>
, reload <JAIL>
y reload
ahora también tienen la --unban
opción.
fail2ban utiliza iptables
para bloquear el tráfico. Si desea ver las direcciones IP que están bloqueadas actualmente, escriba
iptables -L -n
y busque las diversas cadenas nombradas fail2ban-something
, donde something
apunta a la cárcel fail2ban (por ejemplo, se Chain f2b-sshd
refiere a la cárcel sshd
). Si solo desea eliminar el bloqueo de una sola dirección IP <IP>
para una cárcel determinada <JAIL>
, fail2ban ofrece su propio cliente:
fail2ban-client set <JAIL> unbanip <IP>
Alternativamente, puede usar números de línea. Primero, enumere las iptables
reglas con números de línea:
iptables -L -n --line-numbers
Luego puedes usar
iptables -D fail2ban-somejail <linenumber>
para eliminar una sola línea de la tabla. Hasta donde sé, no hay una opción para seleccionar un rango de números de línea, así que supongo que tendrías que ajustar este comando en un bucle for:
for lin in {200..1}; do
iptables -D fail2ban-somejail $lin
done
Aquí hice el número 200. Verifique su propia salida del comando con --line-numbers
y tenga en cuenta que la última línea (con RETURN
) debe permanecer. Vea el comentario de @ roaima a continuación para ver el razonamiento detrás de la cuenta regresiva.
echo {5..1}
resultará en 5 4 3 2 1
.
La mejor manera de deshacer todas las IP es establecer el tiempo de espera en 1 segundo, luego toda la IP se liberará de inmediato.
fail2ban-client set JailName bantime 1
Después de eso, puede restablecer el tiempo de prohibición adecuado.
Es mejor dejar que fail2ban haga el unban por usted. No edite manualmente iptables usted mismo.
fail2ban-client status
El último fail2ban-client
(0.10) tiene un unban -all
comando. Las cárceles también se pueden "reiniciar" individualmente, eliminando efectivamente las prohibiciones.
Si tiene una versión anterior, este truco podría funcionar para las prohibiciones temporales automáticas: elimine la cárcel que contiene la prohibición y luego reinicie fail2ban para que se vuelva a crear la cárcel (ahora vacía).
$ fail2ban-client stop sshd
Jail stopped
$ systemctl restart fail2ban
Guardar la configuración de iptable en el archivo
$ iptables-save > iptables.conf
Edítelo con cualquier editor que desee. Luego, cargue la configuración de nuevo en iptables
$ iptables-restore < iptables.conf
No olvides almacenar la configuración dentro de iptables para que se recoja al reiniciar
$ service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
Heres un simple oneliner para deshacer toda la cárcel de fail2ban de la manera correcta:
iptables -L f2b-recidive -n | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | grep -v 0.0.0.0 | xargs -n 1 fail2ban-client set recidive unbanip
NOTA: el comando iptables toma el prefijo "f2b-" antes del nombre de la cárcel mientras que "fail2ban-client" el nombre real de la cárcel
Debido a la forma en que fail2ban
funciona, solo hay dos soluciones posibles:
fail2ban
cárceles y reinicie el firewall.Este es el script que estoy usando para desbancar todas las direcciones IP de una cárcel ssh (simplemente reemplace la aparición de sshd con el nombre de la cárcel que necesita ... por ejemplo, mysqld-auth)
#!/bin/bash
j=$(iptables -L f2b-sshd | grep -c 'REJECT')
for ((i=1;i<=j;i++))
do
fail2ban-client set sshd unbanip $(fail2ban-client status sshd | grep 'Banned IP list:' | cut -c23-)
done