Acabo de recibir una instancia de Ubuntu en Linode. Para proteger el SSH, lo instalé fail2ban
(usando apt-get
), pero luego tuve un problema: fail2ban
seguí prohibiendo mi IP (afortunadamente por períodos limitados) a pesar de que estaba ingresando la contraseña correcta. Así que lo eliminé fail2ban
e instalé denyhosts
en su lugar. El mismo problema, pero más grave: parece que cada vez que entro por SSH, mi IP queda prohibida. Lo elimino de /etc/hosts.deny
, reinicio denyhosts
y vuelvo a iniciar sesión, y mi IP vuelve a ser prohibida.
La única explicación que se me ocurre es que he estado utilizando SSH como root (sí, sí, lo sé); ¿Quizás haya algo configurado en algún lugar que bloquee a cualquiera que inicie sesión mediante SSH como root, incluso si inician sesión correctamente? Esto me parece extraño. ¿Algunas ideas? (Incluir mi IP en la lista blanca es una solución temporal. No quiero poder iniciar sesión solo desde una IP).
Respuesta1
Creo que he visto a alguien decir que algunas de esas aplicaciones contarán los inicios de sesión fallidos con claves como un intento de fuerza bruta. ¿Tiene un agente ssh ejecutándose con claves? Al conectarse con ese conjunto, se ofrecerán todas las claves antes de volver a la contraseña, por lo que podría ser por eso. Intente configurar el nivel de registro de sshd en un nivel más alto y verifique los registros de fail2ban/denyhost.
Editar:aquíes la fuente original que me avisó, con una forma de solucionarlo.
Respuesta2
por favor revise los siguientes enlaces:
- http://denyhosts.sourceforge.net/faq.html#3_9
- http://denyhosts.sourceforge.net/faq.html#3_19
- http://denyhosts.sourceforge.net/faq.html#allowed
Si desea descartar toda la idea de fail2ban y denyhosts, haga lo que dice Nathan Powell a continuación, cambie del puerto 22 a algo más oscuro.
También algunas ideas más:
iptables: el siguiente ejemplo descartará las conexiones entrantes que realicen más de 2 intentos de conexión en el puerto 22 en diez minutos:
iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
inicio de sesión basado en clave
aldaba de babor (golpeada)
Respuesta3
Si sshd está configurado en un nivel de registro VERBOSO (o superior), coloca la frase '...No falló ninguno...' en el registro del sistema cada vez que un usuario inicia sesión exitosamente. De forma predeterminada, fail2ban está configurado para contar esto como un error. . Solucioné el problema configurando el nivel de registro para sshd nuevamente en INFO.
Para más detalles, consulte mi respuesta a esta pregunta.fail2ban me prohíbe después de una serie de inicios de sesión *exitosos*
Respuesta4
Si está dispuesto a volver a fail2ban, siempre puede utilizar la ignoreip
directiva en el archivo jail.conf
. Por ejemplo:
ignoreip = 127.0.0.1 192.168.1.0/32
De esta manera no te bloquearán por tu escritura descuidada ;-) También significa que las personas no pueden bloquearte falsificando tu IP (aunque con cualquier tráfico TCP eso no es un gran problema).