Una contraseña con mayor complejidad es excelente, pero si existe una vulnerabilidad contra el software del servidor (OpenSSH o de otro tipo) que está ejecutando, no servirá de nada. La idea detrás de un número alto de puerto oscuro es que no será atacado en primer lugar, pero hay advertencias a tener en cuenta:
Los puertos altos presentan un riesgo de seguridad adicional. Si el servidor SSH deja de funcionar, un usuario local puede instalar un nuevo servidor SSH en el mismo puerto. Solo los puertos 1-1024 están restringidos al usuario root, por lo que su puerto alternativo debe estar en ese rango. (Esto corta en ambos sentidos: los escáneres de puertos solo examinan estos puertos, por lo que está menos oculto).
Esto es seguridad a través de la oscuridad y debe considerarse "extra", pero debería < em> no debe considerarse parte de la seguridad al calcular la entropía y el riesgo. No es malo ser oscuro, pero es malo suponer que la oscuridad proporciona suficiente seguridad. Adaptar una cita de @barbecue :
La oscuridad es la seguridad, como el camuflaje es la armadura . Una hace que sea más difícil encontrarte, la otra te protege una vez que te han encontrado.
Es posible que recibas menos ataques en el puerto 2938, pero una contraseña débil es una contraseña débil.
Realmente me gusta su idea de comparar la entropía de contraseña de whatever
con whatever2938
(* cambiado de password
y password2938
por las razones que se mencionan a continuación), que < calculamos en 17 bits en lugar de 30 bits, mostrando que la contraseña más larga es ciertamente más segura, pero para modelar esto correctamente, tendrías que obtener estadísticas sobre cuántos atacantes con el puerto 22 romperían esa contraseña más larga en comparación con cuántos atacantes encontrarían el puerto no estándar y rompa la contraseña más corta, e incluso ese análisis tendría que asumir la misma tasa de persistencia aunque los ataques aumenten tanto en frecuencia como en sofisticación.
En cambio, recomendaría algo como Fail2ban , que puede reconocer inicios de sesión fallidos y prohibir la IP que los intentó (de forma predeterminada, Fail2ban bloquea una IP durante diez minutos después de diez inicios de sesión fallidos en diez minutos, pero todo esto es configurable). Esto limita los ataques para probar una contraseña por minuto, por lo que whatever
tardaría aproximadamente una semana en romperse e incluso una contraseña más típica (aunque todavía débil) como Da5id
tomaría más de 12 años (2 < sup> 22.6 & div; 365 & div; 24 & div; 60 = 12) de la verificación de contraseñas sin interrupción, lo cual es presumiblemente el tiempo suficiente para que lo note Los intentos en los registros.
no cree que esto hace que las contraseñas débiles como Da5idRox
sean una buena idea. Fail2ban solo se ejecuta en el servidor SSH; alguien con acceso de shell rompería esto en dos semanas.
Por supuesto, no hay nada que le impida hacerlo todo. Agregue complejidad a su contraseña, use un puerto alternativo y bloquee las IP con demasiados fallos. Una técnica de ofuscación adicional que puedes probar es detonación de puertos , que incluso se puede hacer de forma segura si la propia detonación está cifrada de extremo a extremo o utiliza un contraseña de un solo tiempo .
* Una nota menor: Cambié las contraseñas de muestra de la pregunta para usar whatever
en lugar de password
porque password
es un caso especial. Las contraseñas comunes como password
(y las variaciones simples) se asumen mejor para una entropía entre 0 y 5, por ejemplo, p455w0rDz
tiene una entropía de alrededor de 12, que es más débil que L%
. En las matemáticas anteriores, en cambio, asumí que te referías a una palabra de diccionario aleatorio, que tiene una entropía de 17 bits). Más sobre la complejidad de las contraseñas cálculos .