¿Qué tan fuerte debe ser la contraseña raíz de una caja de Linux?

La contraseña de root para todos mis servidores conectados a Internet es QWERTY. Puede conectarse a ellos a través del puerto 22, no hay firewall.

Desafortunadamente para cualquier hacker, todos mis servidores solo aceptan autenticación a través de pares de claves SSH2 (clave pública-privada). Por lo tanto, si desea utilizar la contraseña que acabo de darle, debe ir personalmente al centro de datos que aloja mis servidores, forzar las puertas, matar al guardia, conectar un teclado y monitor y comenzar a piratear. Pero le sugiero que simplemente quite los servidores y los piratee desde la comodidad de su propia casa. No olvides borrar las cintas de las cámaras de seguridad antes de irte.

[Editar – Pondré esto aquí porque estoy abrumado por los comentarios, y vale la pena mencionarlo.] Definitivamente no creo que esto sea factible en la mayoría de las situaciones. No digo que esta sea una mejor práctica. Mi respuesta está destinada a mostrar que una contraseña segura no es un baluarte de seguridad, como lo implica la pregunta. Las contraseñas pueden ser robadas y pueden adivinarse por la fuerza bruta, así que no confíes en las contraseñas . Creo que la solución contraintuitiva propuesta (contraseña débil, seguridad se encuentra en otro lugar) podría romperse de varias maneras; pero es relativamente más seguro que una contraseña segura en las circunstancias que describo. Por supuesto, adoptar mi solución y luego también usar una contraseña de root segura es mejor. Además, tenga en cuenta que la seguridad nunca es absoluta, siempre es relativa, en términos simples, al valor de los secretos que está protegiendo. Si los servidores de uno tuvieran un millón de números de tarjetas de crédito o las preferencias sexuales de mil millones de personas, sin mencionar los secretos de estado, entonces sería un tonto usar solo claves y contraseñas, porque atacar el centro de datos y robar los servidores físicos como yo mencionarlo valdría la pena económicamente. Entonces, por favor, profesionales de la seguridad, dejen de atascar mi bandeja de entrada con su indignación, sé que uno nunca debe debilitar voluntariamente una faceta de la seguridad. Cuida tus coronarias.

Aunque L. Accomazzi tiene una muy buena respuesta, creo que él mismo extraña un poco la historia más profunda. He tenido conversaciones con algunos de los empleados de Symbolics (no con Stallman, los otros chicos), pero cualquiera que lea el “Hacker’s” de Steven Levy puede ver que se le otorgó una prima con las computadoras y las restricciones de la cuenta . el nombre de linux proviene de Unix, que proviene del Sistema de tiempo compartido incompatible jokey … toda la historia y (desafortunadamente la tergiversación del término) “cultura hacker” se basa en que no hay suficiente tiempo de computadora o recursos. Los estudiantes del MIT y otros entusiastas de la informática querían un poco más de tiempo en las máquinas, ¡pero ese tiempo en la computadora era costoso! Entonces, su sistema Linux fue diseñado desde los primeros días para pedir repetidamente contraseñas y / o contraseñas raíz en caso de que su estudiante pase demasiado tiempo jugando a Hunt the Wumpus.

Aquí me estoy saliendo de los rieles, pero mi punto es: si no está compartiendo su computadora, especialmente su pequeña tableta convertible o phablet, generalmente elijo una contraseña en función de lo rápido que se puede escribir. Más evidencia : ¿con qué frecuencia su computadora con Windows solicita una contraseña de root? Puedes sonreír por lo teóricamente menos seguro que es Windoze, pero ha sido el sistema de computación dominante durante décadas.

Bueno, depende de contra qué te estás protegiendo.

Si está protegiendo contra un ataque local, no hay una contraseña que lo proteja, ya que puede omitirlo por completo.

Si está protegiendo contra ataques remotos, debería reconsiderar su proyecto. Confiar solo en una contraseña, no importa cuán largo y complicado sea, no es una ruta segura. Necesitaría alguna otra forma de autenticación adicional: ya sea por un par de claves / certificados (preferiblemente protegidos por contraseña) o por un 2FA (U2F, YubiKey, TOTP, HOTP, s / key). Como precaución adicional, es una buena práctica mover los servicios a puertos no estándar, ya que mitigará la mayoría de los ataques automáticos: si se necesita una clave o 2F, no tendrán éxito, pero aún así usarán recursos y ancho de banda.

-EDITAR-

Por supuesto, hay cifrado de disco completo (por ejemplo, LUKS) y este es el único lugar razonable para cuidar las buenas contraseñas. En ese caso, mira esto:

Tan fuerte como puedas hacerlo razonablemente. (Mínimo de 8 caracteres, mayúsculas, minúsculas, números, signos de puntuación, no basados ​​en ninguna palabra o frase, y de preferencia totalmente aleatorio). Además, debe almacenarlo en una contraseña segura en algún lugar, configurar sudo (o similar) para que casi nunca necesite la contraseña de root, deshabilitar los inicios de sesión remotos de root y asegurar físicamente la consola.

No realmente. Si necesita acceso root, puede iniciar sesión como usted mismo y convertirse en root. Esto será auditable y más transparente que cualquier otra alternativa. Si tiene que trabajar en la consola como root (en modo de usuario único), aún tiene la contraseña.

Idealmente, ni siquiera permitirá el Remote Root SSH con claves, pero en la práctica es posible que deba dejarlo abierto. (Pero solo desde dentro de su organización).

Decir “eliminar raíz” no está mal, pero en realidad solo patea la lata. Si tiene una cuenta con acceso a sudo sin contraseña (¿y quién no?) Entonces … meh.

Las frases de contraseña son mejores que las contraseñas. Algo que recuerde y pueda escribir fácilmente es mucho mejor que una cadena aleatoria. Por ejemplo:

“8 & sh1jcna” parece ser una buena contraseña, pero en realidad es bastante débil. Por otra parte:

“AllAccessButNotToHorses!” Es una contraseña excelente. ¿Por qué?

  1. Es esencialmente imposible forzar la fuerza bruta en un tiempo razonable
  2. No necesita escribirlo ni guardarlo en un archivo de texto
  3. Es extremadamente improbable que aparezca en una tabla de arco iris (mientras que generar una tabla de arco iris para cada combinación de caracteres ASCII menores de 10 es trivial; solo toma tiempo de cálculo)
  4. Probablemente deberías estar ejecutando fail2ban en Internet para ssh de todos modos

Para ser más correcto, Andrew te respalda. Use una clave SSH con una frase de contraseña sólida y no tendrá que preocuparse por eso.

Mis contraseñas raíz no son seguras en absoluto. Sin caracteres especiales, sin números, sin mayúsculas, sin minúsculas. Diablos, no contienen _cualquier_caracteres en absoluto. No configuro una contraseña para el usuario root.

No use una contraseña de root en un cuadro de Linux. Siempre. Usa pki para acceder a la caja y usa sudo por el amor de Dios.

Editar: como Patrick O’Callaghan señaló: “No configuro una contraseña de root” podría significar que configuré la contraseña como vacía. Lo que quise decir es que desactivo la contraseña de root.

No se recomienda usar contraseñas para iniciar sesión, debe usar claves.

De todos modos, si aún necesita usar contraseñas, DEBE usar la autenticación de 2 factores como Google Authenticator para asegurar su caja.

Consulte este artículo para conocer ese método. Trucos útiles de seguridad de Linux para fortalecer su sistema, como Geeks y otras formas útiles.

Saludos,

Si insiste en poder iniciar sesión con una contraseña de Internet, muy fuerte. He estado recopilando intentos aquí: SSH falló las contraseñas

Recomiendo configurar PermitRootLogin sin contraseña en sshd_config (luego usando las teclas), o cortafuegos de la máquina por completo.

Aparte de eso, solo razonablemente fuerte. Mientras no sea 123456 o t00r, existen otras vulnerabilidades que no son una contraseña de obsidiana.

Idealmente, no debería aceptar inicios de sesión de contraseña en ninguna cuenta, especialmente root.

Obviamente, esto no es práctico, pero dos factores no lo son.

Entonces: no tenga una contraseña de root, permita solo dos factores para otras cuentas y su / sudo. Establezca una contraseña de BIOS / firmware, también de dos factores si el sistema lo admite (¿sabía que algunos lo hacen?).

Yo, por mi parte, prefiero deshabilitar el inicio de sesión raíz por completo (como se mencionó anteriormente, con acceso local puede omitirlo, con acceso remoto debería estar utilizando las claves SSH de todos modos, y no iniciar sesión como root ). Solo asegúrese de tener un usuario que pueda sudo a la raíz (y que el usuario pueda iniciar sesión de forma remota solo a través de las teclas), y tal vez asegúrese de habilitar 2FA (consulte google / google-authenticator-libpam por ejemplo).

Por otro lado, si configura su servidor a través de títeres o saltstack o algo así, es posible que ni siquiera necesite al usuario con permisos sudo .

Si bien la contraseña de root debe ser lo suficientemente segura, debe

a) siempre deshabilite el acceso de root a través de ssh. Agregue otro usuario al grupo de sudoers y use eso

b) no envíe contraseñas a través de texto sin cifrar, y utilice la autenticación de clave pública para iniciar sesión en su lugar.

Recuerde, iniciar sesión en la raíz es una cosa muy mala. Puede causar daños indescriptibles a su instalación sin darse cuenta, ¡así que no lo haga!

Depende de la probabilidad de que creas que alguna “persona equivocada” querría irrumpir en ella y cuánta interrupción podrían causar si lo hicieran.

Pero las contraseñas seguras son casi siempre más difíciles de recordar que las más débiles, y si no tiene cuidado puede bloquearse. Cualquier contraseña que sea tan “segura” que no pueda recordarla, por lo que debe escribirla, necesariamente se vuelve muy débil en ese momento.

Además de otras medidas de seguridad como “sin inicio de sesión remoto para root”, “pares de claves de cifrado asimétrico para SSH” y “reglas de firewall adecuadas” Personalmente lo uso para todas las contraseñas que no se pueden administrar con administradores de contraseñas o autenticación de 2 factores:

XKPasswd – Contraseñas seguras y memorables

root tiene acceso a todos los comandos y archivos en todo su sistema
root es la cuenta más privilegiada en todo el sistema

SU CONTRASEÑA DEBE SER REALMENTE FUERTE.

La respuesta de Luca no es una respuesta a tu pregunta. Es una discusión sobre una alternativa de alto nivel que es irrelevante.

Luca hace buenos puntos pero no son relevantes aquí.

SU CONTRASEÑA DEBE SER REALMENTE FUERTE.

“No confíes en las contraseñas” es un consejo terrible. No tienes elección. Así que aproveche al máximo y elija una contraseña segura.

Me gusta establecer una contraseña de root segura y desactivar el inicio de sesión root directo. Los usuarios inician sesión con sus claves SSH, luego las permitidas en sudoers pueden usar “sudo -i” para obtener root.

Al igual que con cualquier contraseña en cualquier sistema operativo, la fuerza de una contraseña depende de lo importante que sea mantener fuera a un atacante potencial. Tengo cuentas en algunos sitios web que son ridículamente débiles porque me importaría menos si esa cuenta alguna vez se vio comprometida. Por ejemplo, sitios web que le hacen crear una cuenta para descargar un archivo o leer un artículo. Pero obviamente lo mismo no se aplica a mi cuenta bancaria.

Dicho esto, el inicio de sesión remoto de la cuenta raíz debe estar deshabilitado. Debe iniciar sesión como usuario normal y sudo / su para cualquier cosa que requiera privilegios de root.

Depende de la caja si se supone que es visible para el mundo exterior bastante fuerte si es un tarro de miel o un laboratorio de pruebas sin interacción externa, entonces no es tan importante.

Debe ser increíblemente fuerte, preferiblemente inusualmente fuerte. O eso o eliminar la raíz. Debe usar sudo para root, nunca inicie sesión directamente.