¿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.
Comentarios
- Las prohibiciones generalmente se realizan en direcciones IP a través de su firewall, por lo que debe mirar las reglas del firewall.
- Sí, lo sé. pero quiero borrar todas las prohibiciones sin decir una dirección IP
- » Probé todo » no, no ‘ t. ¿Qué probaste?
Respuesta
Respuesta actualizada
A partir de la versión 0.10. 0 fail2ban-client
presenta el comando unban
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 opción --unban
.
Respuesta anterior
fail2ban usa iptables
para bloquear el tráfico. Si desea ver las direcciones IP que están actualmente bloqueadas, escriba
iptables -L -n
y busque las distintas cadenas llamadas fail2ban-something
, donde something
apunta a la cárcel fail2ban (por ejemplo, Chain f2b-sshd
se refiere a la cárcel sshd
). Si solo desea eliminar el bloqueo para una única dirección IP <IP>
para una cárcel determinada <JAIL>
, fail2ban ofrece su propio cliente:
fail2ban-client set <JAIL> unbanip <IP>
Alternativamente, puede utilizar números de línea. Primero, enumere las iptables
reglas con números de línea:
iptables -L -n --line-numbers
A continuación, puede usar
iptables -D fail2ban-somejail <linenumber>
para eliminar una sola línea de la tabla. Hasta donde yo sé, no hay opción para seleccionar un rango de números de línea, así que supongo que tendrías que envolver 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 observe que la última línea (con RETURN
) debe permanecer. Vea el comentario de @roaima a continuación para conocer el razonamiento detrás de la cuenta regresiva.
Comentarios
- Me salvó. Muchas gracias. Agregue un comando completo. porque tuve que darme cuenta de que necesito fail2ban-client en función de su comando. (Porque soy un novato)
Respuesta
La mejor manera de anular la prohibición de todas las IP es establecer el tiempo de bantime en 1 segundo, luego toda la IP se liberará de inmediato.
fail2ban-client set JailName bantime 1
Después de eso, puede volver a establecer el tiempo de prohibición adecuado.
Es mejor dejar que fail2ban haga el desban por usted. No edite iptables manualmente usted mismo.
Comentarios
- Esta es la única respuesta correcta aquí. Fail2ban mantiene su propia base de datos de prohibición que debe borrarse independientemente . Cada respuesta que habla sobre la eliminación de reglas de iptables ignora que en el momento en que fail2ban se inicia una copia de seguridad, volverá a agregar las reglas que acaba de eliminar a iptables. Además, no todas las configuraciones de fail2ban usan iptables para implementar prohibiciones.
- encontrar todas las cárceles con
fail2ban-client status
- Acabo de emitir este comando y estoy viendo cómo el número de direcciones IP en mi cárcel disminuye hacia cero a medida que fail2ban procesa la cárcel. No suceden realmente muy rápido, pero eso ‘ está bien, había más de cinco mil entradas en la cárcel. ¡Buena respuesta!
Respuesta
La más reciente fail2ban-client
(0.10) tiene un comando unban -all
. Las cárceles también se pueden «reiniciar» individualmente, de eliminando 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 la cárcel (ahora vacía) se vuelva a crear.
$ fail2ban-client stop sshd Jail stopped $ systemctl restart fail2ban
Comentarios
- -todos o —todos? ¿O –todos?
Responder
-
Detener el servicio limpiará todas las reglas agregadas por fail2ban
service fail2ban stop
-
Si no tiene ninguna otra regla de iptables, puede eliminarla
iptables -F
Tenga cuidado: esto borrará cualquier otra regla en sus iptables .
Comentarios
- Basta con detenerse y volver a comenzar.
Respuesta
Guarde la configuración de iptable en un archivo
$ iptables-save > iptables.conf
Edítelo con cualquier editor que desee. Luego, vuelva a cargar la configuración en iptables
$ iptables-restore < iptables.conf
No olvide almacenar la configuración dentro de iptables para que sea elegida al reiniciar
$ service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
Respuesta
aquí hay una línea simple para desbloquear todo Fail2ban jail 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» es el nombre real de la cárcel
Comentarios
- Esta es la mejor respuesta para las versiones de fail2ban por debajo de 0.10. Puede ir más allá creando un alias en .bashrc como fail2ban-purge con un parámetro para purgar una cárcel completa. Simplemente reemplace la palabra recidiva anterior con $ 1 y use el alias como fail2ban-purge < JAIL_NAME >.
Respuesta
Debido a la forma en que fail2ban
funciona, solo hay dos soluciones posibles:
- Cree una secuencia de comandos de configuración de firewall que incluya
fail2ban
cárceles y reinicie el firewall. - Elimine las reglas de firewall que bloquean las IP que desea desbloquear. .
Respuesta
Este es el script que estoy usando para desbloquear todas las direcciones IP de una cárcel ssh ( simplemente reemplace la ocurrencia 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
Respuesta
Quizás este script pueda ayudar a alguien con una versión < 0.10.0 como yo:
#!/bin/bash for JAIL in $(fail2ban-client status | grep "Jail list:" | awk "BEGIN {FS="\t"} {print $2}" | sed "s/, / /g") do for IP in $(fail2ban-client status ${JAIL} | grep "Banned IP list:" | awk "BEGIN {FS="\t"} {print $2}" | sed "s/ /\n/g") do fail2ban-client set ${JAIL} unbanip ${IP} done done unset JAIL IP exit 0