Cómo desbancar una IP correctamente con Fail2Ban

200

Estoy usando Fail2Ban en un servidor y me pregunto cómo desbloquear una IP correctamente.

Sé que puedo trabajar con IPTables directamente: iptables -D fail2ban-ssh <number>

¿Pero no hay una manera de hacerlo con el fail2ban-client?

En los manuales se dice algo así como: fail2ban-client get ssh actionunban <IP>. Pero eso no funciona.

Además, no quiero, /etc/init.d/fail2ban restartya que eso perdería todas las prohibiciones en la lista.

psp
fuente

Respuestas:

278

Con Fail2Ban antes de v0.8.8:

fail2ban-client get YOURJAILNAMEHERE actionunban IPADDRESSHERE

Con Fail2Ban v0.8.8 y posterior:

fail2ban-client set YOURJAILNAMEHERE unbanip IPADDRESSHERE

La parte difícil es encontrar la cárcel correcta:

  1. Use iptables -L -npara encontrar el nombre de la regla ...
  2. ... luego se usa fail2ban-client statuspara obtener los nombres reales de la cárcel. El nombre de la regla y el nombre de la cárcel pueden no ser los mismos, pero debe quedar claro cuál está relacionado con cada uno.
ukoda
fuente
2
Si tiene el siguiente error 'Invalid Action name', lea esta respuesta
Morgan Courbet
32
Con versiones recientes de fail2banusted debería estar usando fail2ban-client set JAIL_NAME unbanip 1.2.3.4.
tftd
1
¿Cuál es el nombre predeterminado de la cárcel? /etc/fail2ban/jail.confno funciona para mi
Alex W
1
Puede buscar el nombre de la cárcel en el registro de fail2ban si busca su IP
fred727
77
sshd era el nombre de la cárcel para mí.
agustaf
82

Desde v0.8.8 existe la unbanipopción ( actionunbanno es para este propósito) Puede ser activada por el setcomando, si observa la lista de opciones, verá que la sintaxis es. Entonces será (de memoria, por favor verifique):

fail2ban-client set ssh-iptables unbanip IPADDRESSHERE 

más genérico:

fail2ban-client set JAILNAMEHERE unbanip IPADDRESSHERE

funciona para mi

usuario157436
fuente
3
El comando unbanip se agregó en la versión 0.8.8. La mejor solución si está ejecutando 0.8.8 o posterior.
Alexander Garden
1
El problema relacionado con esto en el rastreador fail2ban es este: github.com/fail2ban/fail2ban/issues/132
aseques
Esta es la respuesta correcta para las versiones actuales. ¡gracias!
billynoah
obteniendo "Comando inválido (ninguna acción establecida o aún no implementada)"
Tom
debe indicar el nombre correcto de la cárcel (por ejemplo, sshd o sshd-dos, consulte su registro de fail2ban)
espejismo
53

Ejemplo para SSH en modo interactivo.

escriba bash:

fail2ban-client -i

luego, en modo interactivo, lea el estado de una cárcel:

status sshd

obtendrás:

Status for the jail: ssh
|- Filter
|  |- Currently failed: 0
|  |- Total failed: 6
|  `- File list:    /var/log/auth.log
`- Actions
   |- Currently banned: 1
   |- Total banned: 2
   `- Banned IP list:   203.113.167.162

luego escriba en el modo interactivo fail2ban:

set sshd unbanip 203.113.167.162

obtendrás:

203.113.167.162

significa que ya no está 203.113.167.162en la lista de prohibición.

Amaroc
fuente
3
Para mí, el nombre de la cárcel era sshd(Ubuntu 16)
scipilot
En el mío, dice total prohibido: 6, pero la lista debajo de ip prohibida está vacía :( tiene que
rastrear
21

La respuesta de ukoda es incorrecta:

Llame fail2ban-clientsin parámetros y verá una lista de posibles comandos:

get JAIL actionunban ACT             

Esto obtiene el comando unban para la acción ACT for JAIL.

Mire el parámetro de acción de la cárcel que definió, probablemente tenga una acción de iptables y tal vez algo más como sendmail, whois o lo que sea. así que en caso de que su acción fuera iptables se verá así:

fail2ban-client get JAIL actionunban iptables

y la respuesta será:

iptables -D fail2ban-NAME -s IP -j DROP

Solo le mostrará lo que tendría que escribir para un unban. No hay un comando unban en sí mismo.

ingo
fuente
3
Sí, eso funcionó para mí, deshacerse de la cárcel de SSH iptables -D fail2ban-ssh -s <IP> -j DROP. Gracias ingo!
Deele
8

Si 192.168.2.1 está prohibido

sudo iptables -L

Compruebe en qué cadena está prohibido, por ejemplo

Chain fail2ban-sasl (1 referencias)

DROP all: 192.168.2.1 en cualquier lugar

Entonces:

# to view the proper command for un-banning
sudo fail2ban-client get sasl actionunban
# actual command
iptables -D fail2ban-sasl -s 192.168.2.1 -j DROP
Lionel Broes
fuente
4

Primero debes obtener el nombre de la cárcel. Puede obtener la lista (en la mayoría de los casos será solo la cárcel ssh):

fail2ban-client status

Después de obtener el nombre de la cárcel, puede verificar qué IP se ignoran.

fail2ban-client get ssh ignoreip

Si su IP está en la lista de ignorados, puede eliminarla mediante:

fail2ban-client set ssh delignoreip your_ip_address
vi /etc/hosts.deny

Elimine su entrada de host:

fail2ban-client reload
zainengineer
fuente
2
La lista de ignorados es una lista de IPs para nunca prohibir. Eso no tiene ninguna relación con la lista de IP actualmente prohibidas, que es la lista de la que OP quiere eliminar una IP.
jlh
3

Usando fail2ban v.0.8.6:

$ sudo fail2ban-client status # to reveal your JAIL name (mine is ssh)
$ sudo fail2ban-client set ssh delignoreip your_ip_address
$ sudo nano /etc/hosts.deny # delete your ip address
$ sudo fail2ban-client reload
tomar
fuente
Esto supone que hosts.deny fue la acción utilizada ... Pero aún es más útil que las cosas que intentan cambiar el método de desbancarización de IP en las versiones anteriores utilizando actionunban...
Gert van den Berg
La delignoreipacción no es eliminar una IP de una prohibición, está eliminando una IP de la lista de IP ignoradas (es decir, IP que nunca será prohibida).
Tonin
2

desafortunadamente con la versión 0.8.2 de fail2ban-client el comando:

fail2ban-client get jail actionunban ipaddress

no corre Para resolver el problema, la mejor opción es actualizar fail2ban a la última versión y usar una nueva opción:

unbanip
Pol Hallen
fuente
2
fail2ban-client set sshd unbanip ip_here

trabajaría.

abhijithvijayan
fuente
1

Si una IP está en varias cárceles, esto se convierte en un dolor.

one-liner para eliminar 192.168.1.2 de todas las cárceles:

 for jail in $(fail2ban-client status | grep 'Jail list:' | sed 's/.*Jail list://' | sed 's/,//g'); do fail2ban-client set $jail unbanip 192.168.1.2; done

un script para hacer lo mismo https://gist.github.com/yolabingo/c810db6fe7f8bfcb9eb4f6ffc531e474

yolabingo
fuente
0

Si está ejecutando la versión v0.10.2:

sudo fail2ban-client unban YOUR_IP_ADDRESS

Esto es de ayuda:

unban <IP> ... <IP> unbans <IP> (in all jails and database)

Confirmé que funcionaba en mi caso cuando lo más probable es que me hayan prohibido debido a que el cliente ssh inició sesión repetidamente con una contraseña incorrecta.

kashiraja
fuente