Volver
Soportando autenticación por contraseña en SSH de forma segura

Soportando autenticación por contraseña en SSH de forma segura

- - Artículos

Nuestra última versión de Moss soporta autenticación por contraseña a la hora de acceder a tus servidores vía SSH/SFTP. En este artículo intento explicar los casos de uso que se esconden tras esta decisión, y cómo hemos abordado esta funcionalidad sin poner en riesgo la seguridad de tus servidores.

Algunas personas tienden a usar contraseñas muy débiles que se adivinan fácilmente usando ataques de fuerza bruta basados en diccionario. La situación ha mejorado mucho gracias a la amplia adopción de gestores de contraseñas, pero éstos no se usan habitualmente cuando se trata de generar (y recuperar) contraseñas para acceder a los servidores que alojan tus aplicaciones.

Por lo anterior, desde que comenzamos Moss, hemos sido reacios a dejar que nuestros usuarios entren en sus servidores mediante contraseña. Existe una alternativa sencilla que además es mucho más segura y cómoda – porque evita que se te pregunte por la contraseña cuando quieras «loguearte»: los Pares de Claves SSH. Básicamente, guardas en tu máquina local una clave privada que sólo tú conoces (y nadie más tiene acceso a ella) y subes la clave pública correspondiente a tus servidores. Moss te ayuda a añadir y eliminar estas claves de tus servidores desde nuestra propia aplicación web. Por lo tanto, hasta ahora, Moss forzaba autenticación de clave pública en todos los servidores que te ayuda a administrar.

Administrando Claves y Contraseñas desde Moss

Fácil, ¿verdad? Pues bien, lo cierto es que hay casos en los que las Claves SSH pueden suponer más un dolor que una ventaja.

  • Muchos usuarios de Linux y Mac OS están familiarizados con el concepto de Claves SSH. Además, estos sistemas operativos empaquetan herramientas como el Cliente OpenSSH, que obviamente soporta el formato de clave del Servidor OpenSSH (el estándar de facto para software SSH de servidor en Linux). Sin embargo, en general esto no aplica a los usuarios de Windows, quienes tienen que delegar en herramientas de terceros como PuTTY y PuTTYgen. Más aún, el formato de claves que usan estas aplicaciones es distinto del formato OpenSSH (aunque son capaces de convertir entre formatos). Por lo que, aunque no es una dificultad insalvable, administrar Claves SSH en Windows es ligeramente más complejo que en otros sistemas operativos.
  • Moss está dirigido a desarrolladores web (incluyendo propietarios de sitios web), por lo que se asume que tienen ciertas habilidades técnicas. Sin embargo, los clientes de nuestros usuarios no tienen por qué tener los mismos conocimientos. Estos últimos podrían necesitar acceso SSH/SFTP para subir contenido al servidor o realizar alguna otra tarea. Forzarles a generar y usar un par de claves SSH no es realista en muchos casos. Por tanto, la autenticación por contraseña es la única alternativa viable a veces.

Dada esta realidad, ahora Moss soporta autenticación por contraseña. Pero lo hemos hecho de forma que minimizamos el riesgo de sufrir una brecha de seguridad debido a esto. Seamos claros: la mayoría de las brechas se deben a vulnerabilidades en la capa de aplicación, no en la capa de sistema – esto es especialmente cierto en el caso de ataques de bajo perfil (los más comunes, p.ej. en ecosistemas populares como WordPress). Pero eso no es excusa para olvidar la capa de sistema. Nuestra responsabilidad es ayudarte a proteger tus servidores de la mejor forma posible sin sacrificar la usabilidad. Por otra parte, tú debes tomar medidas para proteger la seguridad de tus aplicaciones (y tenemos algunas ideas para ayudarte también con esto, pero sigamos centrados en la autenticación por contraseña en SSH).

Por tanto, ¿qué hemos hecho para conseguir el objetivo anterior?

  • Puedes crear un usuario de servidor con contraseña (o añadir una contraseña después), cambiar la contraseña, o deshabilitar la autenticación por contraseña, directamente desde Moss.
  • Moss rechaza contraseñas cortas.
  • Moss puede generar contraseñas largas aleatorias (seguras) por ti. Siempre puedes recuperarlas desde Moss.
  • Si un usuario de servidor específico tiene contraseña, este tipo de autenticación se habilita sólo en dicha cuenta – los demás usuarios del servidor todavía requieren autenticación de clave pública (a menos que también les añadas una contraseña). Por lo que si alguien está tratando de entrar a tu servidor usando uno de esos usuarios, ni siquiera se le ofrecerá la posibilidad de introducir una contraseña. Es decir, tu servidor gastará menos ciclos de CPU con ellos.
  • La primera vez que añades una contraseña en un servidor, Moss instala y configura fail2ban de forma automática. Así, fallos repetidos de login remoto provocarán que la IP correspondiente se filtre temporalmente. Por otra parte, si sólo usas Claves SSH, fal2ban no se instalará automáticamente porque no sería útil en ese caso.
  • Por último, Moss aún te recomienda que uses Claves SSH siempre que sea posible por sus ventajas en cuanto a seguridad y comodidad.
Creando usuario con contraseña

Con estas decisiones hemos alcanzado un buen compromiso en términos de seguridad y usabilidad. Si tienes curiosidad acerca de otros métodos de autenticación alternativos los Certificados SSH son una excelente opción, pero son algo más complejos y necesitan de herramientas específicas.

Si aún no tienes una cuenta en Moss y quieres probarlo, regístrate y danos feedback. Además, puedes subscribirte abajo a nuestro blog si quieres que te mandemos un email cuando publiquemos aquí nuevos artículos.

¡No te pierdas ningún post! Subscríbete al Blog de Moss