Fail2Ban intenta correctamente prohibir la IP pero la IP no se bloquea: la cadena de iptables existe pero no funciona

12

Se ejecuta en el servidor Ubuntu 14.04.

Entonces tengo fail2ban configurado correctamente para procesar /var/log/auth.logintentos de inicio de sesión SSH.

Tras 3 intentos fallidos, veo esto en el registro fail2ban:

2014-11-19 15:22:56,822 fail2ban.actions: WARNING [ssh] Ban BANNED_IP_ADDY

iptables -L muestra esta cadena:

Chain fail2ban-ssh (1 references)
target     prot opt source               destination         
REJECT     all  --  BANNED_IP_ADDY  anywhere             reject-with icmp-port-unreachable
RETURN     all  --  anywhere             anywhere

Sin embargo, desde esa IP todavía puedo iniciar sesión a través de SSH sin ningún problema.

La misma historia se aplica a todas mis cárceles fail2ban. Apache, por ejemplo, puedo ver que fail2ban detecta correctamente el registro y afirma que prohíbe una IP. La IP termina en una cadena de iptables pero la IP en realidad no se RECHAZA.

Tengo la sensación de que en estos casos es porque SSH no está en el puerto estándar. Está en un puerto diferente.

Entonces, si fuerzo la regla de la cárcel ssh a usar el nuevo puerto:

[ssh]

enabled  = true
port     = 32323
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 5

Entonces veo este error:

2014-11-19 15:30:06,775 fail2ban.actions.action: ERROR  iptables -D INPUT -p tcp -m multiport --dports 32323 -j fail2ban-ssh
iptables -F fail2ban-ssh
iptables -X fail2ban-ssh returned 400
2014-11-19 15:30:06,778 fail2ban.actions.action: ERROR  iptables -N fail2ban-ssh
iptables -A fail2ban-ssh -j RETURN
iptables -I INPUT -p tcp -m multiport --dports 32323 -j fail2ban-ssh returned 400
2014-11-19 15:30:06,779 fail2ban.actions.action: ERROR  iptables -n -L INPUT | grep -q 'fail2ban-ssh[ \t]' returned 100
2014-11-19 15:30:06,780 fail2ban.actions.action: CRITICAL Unable to restore environment

Si lo dejo como

 port = ssh

Luego ingresa a iptables correctamente, pero la cadena no funciona para el REJECTtráfico (como se mencionó anteriormente).

ACTUALIZAR:

Si cambio:

banaction = iptables-multiport

A:

banaction = iptables-allports

Entonces parece funcionar. ¿Cuáles son las repercusiones de este cambio?

Parece que provocar la fail2banprohibición de una IP debido a SSH con esto allportsprohibió CADA puerto para esa IP. A propósito se prohibió debido a errores repetidos de inicio de sesión ssh También se prohibió en cualquier otro servicio.

Halsafar
fuente
Nunca me he encontrado con ese problema con fail2ban. Si desea volver a bloquear el puerto único, puede probar esta solución: oschgan.com/drupal/index.php?q=node/52 . Alternativamente, fail2ban puede usar otros mecanismos como hosts.deny o rutas nulas si iptables está causando dolor.
digitaladdictions
Echa un vistazo /etc/fail2ban/actions.d, tiene un archivo correspondiente a cada una de esas acciones de prohibición. En el interior, verá qué comandos se utilizan para prohibir, desbancar, iniciar y detener fail2ban. Puede intentar ejecutar los comandos de actionban manualmente y ver qué sucede. Yo
Michael
1
¿Qué más hay en tus iptables? Proporcione la salida completa de iptables -L -n -v(redactando direcciones IP cuando sea necesario). En particular, tenga en cuenta -vque, que proporcionará contadores de bytes y paquetes para cada cadena y regla, facilitando la depuración.
jplitza
Tuve exactamente el mismo problema. Fail2Ban prohíbe IP, puedo ver la dirección en la cadena fail2ban, recibí el correo electrónico que está prohibido, pero la dirección IP todavía tiene acceso. Cambiar banaction a allports funcionó, ¡pero no tengo idea de por qué!
Ergec

Respuestas:

2

Las cadenas fail2ban no están correctamente vinculadas a sus cadenas INPUT y OUTPUT. Edite su pregunta y proporcione resultados de:

iptables -n -L INPUT
iptables -n -L OUTPUT

y todas las cadenas fail2ban también, y podré ser más preciso.

Marco
fuente
0
INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh
Zareh Kasparian
fuente