¿Por qué es malo iniciar sesión como root?

179

A menudo me he topado con publicaciones en foros u otros sitios web donde se ve gente bromeando sobre cómo ejecutar / iniciar sesión como root como si fuera algo horrible y todos deberían saberlo . Sin embargo, no hay mucho que una búsqueda revele al respecto.

Puede ser ampliamente conocido por los expertos en Linux, pero realmente no sé por qué. Recuerdo que siempre funcionó como root cuando probé Linux por primera vez hace años (Redhat y Mandrake) y no recuerdo haber tenido ningún problema por eso.

En realidad, hay algunas distribuciones que tienen un fondo rojo brillante con signos de alerta como fondo de pantalla para el usuario raíz (SuSe?). Todavía utilizo la cuenta "Administrador" para el uso regular en mi instalación de Windows y tampoco he tenido ningún problema allí.

    
pregunta Mussnoon 04.12.2010 - 18:00

21 respuesta

145

Se derrota el modelo de seguridad que ha estado en vigencia durante años. Las aplicaciones deben ejecutarse con seguridad no administrativa (o como meros mortales) por lo que debe elevar sus privilegios para modificar el sistema subyacente. Por ejemplo, no querría que la falla reciente de Rhythmbox borre todo su directorio /usr debido a un error. O esa vulnerabilidad que acaba de publicarse en ProFTPD para permitir que un atacante obtenga un shell ROOT.

Es una buena práctica en cualquier sistema operativo ejecutar sus aplicaciones en un nivel de usuario y dejar las tareas administrativas al usuario raíz, y solo según cada necesidad.

    
respondido por el lazyPower 04.12.2010 - 18:08
73

Solo una palabra: seguridad.

  1. Estás registrado como root = todas las aplicaciones se ejecutan con privilegios de root: cada vulnerabilidad en Firefox, Flash, OpenOffice, etc. ahora puede destruir tu sistema, ya que los posibles virus ahora tienen acceso a todas partes. Sí, solo hay pocos virus para Ubuntu / Linux, pero también es debido a la buena seguridad y al usuario sin privilegios predeterminado.
  2. No se trata solo de virus: un pequeño error en una aplicación podría borrar algunos archivos del sistema o ...
  3. Cuando está registrado como root, puede hacer de todo: ¡el sistema no preguntará! ¿Quieres formatear este disco? Ok, solo un clic y listo, porque eres root y sabes lo que estás haciendo ...
respondido por el Vojtech Trefny 04.12.2010 - 18:10
45

Ejecutar como root es malo porque:

  1. Estupidez: nada te impide hacer algo estúpido. Si intentas cambiar el sistema de alguna manera que podría ser dañino, debes hacer sudo, lo que garantiza una pausa mientras ingresas la contraseña para darte cuenta de que estás a punto de hacer un cambio grande / costoso.
  2. Seguridad: Ya se ha mencionado varias veces en esta pregunta, pero básicamente es lo mismo, más difícil de hackear si no conoces la cuenta de inicio de sesión del usuario administrador. raíz significa que ya tiene la mitad del conjunto de credenciales administrativas en funcionamiento.
  3. Realmente no lo necesitas: si necesitas ejecutar varios comandos como root y te molesta tener que ingresar tu contraseña varias veces cuando sudo ha expirado, todo lo que debes hacer es sudo -i y ahora eres root ¿Desea ejecutar algunos comandos usando pipes? Luego usa sudo sh -c "comand1 | command2" .
  4. Siempre puedes usarlo en la consola de recuperación: la consola de recuperación te permite probar y recuperarte de hacer algo estúpido o solucionar un problema causado por una aplicación (que aún tenías que ejecutar como sudo :)) Ubuntu no tiene una contraseña para la cuenta de root en este caso, pero puede buscar en línea para cambiar eso, esto hará que sea más difícil para cualquier persona que tenga acceso físico a su caja hacer daño.

La razón por la que no se pudo encontrar información sobre por qué es malo es porque, bueno, hay demasiados datos en Internet :) y que mucha gente que ha estado usando Linux por mucho tiempo piensa como tú hacer. Esta forma de pensar acerca de la cuenta raíz es bastante nueva (¿quizás una década?) Y mucha gente todavía se molesta al tener que usar sudo. Especialmente si están trabajando en un servidor, lo que significa que ingresaron con la intención de hacer cambios en el sistema. Probablemente provocada por malas experiencias previas y estándares de seguridad que la mayoría de los administradores de sistemas conocen mejor, pero aún así no les gusta:).

    
respondido por el Marlon 04.12.2010 - 19:43
36

Esta es una buena pregunta. Creo que la respuesta es ligeramente diferente dependiendo de si está hablando de un servidor o una instalación de escritorio.

En un escritorio, no es común usar la cuenta root . De hecho, Ubuntu se envía con acceso de root desactivado. Todos los cambios que requieren privilegios de superusuario se realizan a través de sudo y sus cognados gráficos gksudo y kdesudo . Sin embargo, dado que es fácil establecer una contraseña root , ¿por qué las personas no lo hacen?

Una razón es que le da una capa adicional de seguridad. Si ejecuta un programa como root y se aprovecha una falla de seguridad, el atacante tiene acceso a todos los datos y puede controlar directamente el hardware. Por ejemplo, podría instalar un troyano o registrador de claves en su kernel. En la práctica, sin embargo, un ataque puede causar una gran cantidad de daño incluso sin privilegios de superusuario. Después de todo, todos los datos del usuario, incluidos los documentos y las contraseñas almacenadas, son accesibles sin acceso de root.

Un punto más válido, en un sistema de usuario único, es que el usuario no puede accidentalmente inutilizar el sistema. Si el usuario emite involuntariamente un comando que borra todos los archivos, aún podrá arrancar el sistema, incluso si se pierden los datos.

Además, la mayoría de las aplicaciones orientadas al usuario (X11) de la actualidad se basan en la suposición de que se ejecutan como una cuenta de usuario normal y sin derechos de administrador. Por lo tanto, algunos programas pueden portarse mal cuando se ejecutan como root .

En un sistema multiusuario con acceso de shell no gráfico, muchas de estas razones no se aplican. Sin embargo, Ubuntu todavía tiene un valor predeterminado predeterminado para una cuenta de root inaccesible. Por un lado, hay una diferencia real entre obtener acceso a una cuenta de usuario (con sudo de derechos) a través de un agujero de seguridad y obtener acceso a root , ya que en el primer caso la interrupción de otros usuarios requerirá ejecutar sudo y seguirá solicitando la contraseña de la cuenta como un paso de seguridad adicional. Por otro lado, es útil realizar muchas tareas administrativas desde una cuenta de usuario y solo invocar sudo cuando los privilegios del superusuario son absolutamente necesarios. Por lo tanto, al instalar un programa desde el origen, es recomendable compilar el código fuente - ejecutando configure y make - dentro del directorio del usuario y solo usando sudo make install en el paso final. De nuevo, esto hace que sea más difícil dispararse a sí mismo (y a otros usuarios del sistema multiusuario) en el pie, y disminuye la probabilidad de que los guiones de construcción causen estragos en el sistema. Por lo tanto, incluso en un servidor, es un buen consejo apegarse a la administración basada en sudo de Ubuntu .

    
respondido por el loevborg 04.12.2010 - 18:24
31

Una razón para no ejecutar como root que no ha sido (hasta ahora) identificado por otras respuestas es la trazabilidad. Probablemente importe menos en máquinas que son principalmente máquinas de un solo usuario (su computadora de escritorio o computadora portátil), pero en máquinas servidor, si alguien está conectado como root , no sabe a quién culpar por las medidas tomadas. Por lo tanto, la mayoría de las organizaciones profesionales con sistemas múltiples y administradores múltiples que necesitan privilegios de root requieren que las personas inicien sesión usando su propia identificación de usuario (y contraseña), y luego usan sudo o programas similares para operar con privilegios de root cuando sea necesario.

De lo contrario, las razones principales para no ejecutar como root son:

  • Minimiza el riesgo de daños por accidentes. Si ejecuta rm -fr / home/me/my-subdir como raíz, entonces ha eliminado drásticamente todo lo importante de su máquina debido a ese espacio después de la (primera) barra - porque lo que va primero es lo que se agregó primero - pequeñas cosas como el kernel, el /bin y el directorio /etc . Unix se molesta si los pierde.

  • Minimiza el riesgo de daños por sitios externos maliciosos. Si navegas como root , eres más vulnerable a las descargas de material malicioso.

Utilizo MacOS X más que Ubuntu, pero allí, la raíz está deshabilitada de manera predeterminada, y todavía está en mi máquina. Actualizo rutinariamente el kernel y otras operaciones similares, usando sudo (detrás de las escenas). Técnicas similares se aplican a Linux en general.

Básicamente, solo debe usar los privilegios omnipotentes de root para periodos abreviados de trabajo para evitar el riesgo de errores.

    
respondido por el Jonathan Leffler 05.12.2010 - 00:10
20

TL; DR: Haz las cosas como root solo cuando sea necesario. sudo lo hace bastante fácil. Si habilita los inicios de sesión raíz, aún puede seguir esta regla, solo tiene que tener cuidado de hacerlo. Aunque habilitar los inicios de sesión raíz no es realmente inseguro si se hace correctamente, no es necesario que habilite los inicios de sesión raíz porque tiene sudo .

En realidad, hay dos preguntas relacionadas aquí.

  • ¿Por qué es malo iniciar sesión como root para el uso diario de la computadora (navegación web, correo electrónico, procesamiento de textos, juegos, etc.)?
  • ¿Por qué Ubuntu predetermina deshabilitar los inicios de sesión raíz por completo y utilizando sudo y polkit para permitir a los administradores ejecutar comandos específicos como root?

¿Por qué no ejecutar todo como root, todo el tiempo?

La mayoría de las otras respuestas cubren esto. Todo se reduce a:

  1. Si usa los poderes raíz para tareas que no los requieren y termina haciendo algo que no pretendía hacer, podría cambiar o dañar su sistema de una manera que no desea.
  2. Si ejecuta un programa como root cuando no era necesario, y it termina haciendo algo que no pretendía que hiciera, por ejemplo, debido a una vulnerabilidad de seguridad u otro error: podría cambiar o dañar su sistema de una manera que no desea.

Es cierto que incluso sin hacer las cosas como root, puedes causar daño. Por ejemplo, puede eliminar todos los archivos en su propio directorio principal, que generalmente incluye todos sus documentos, ¡sin ejecutar como root! (Esperemos que tengas copias de seguridad).

Por supuesto, como root, hay formas adicionales de destruir accidentalmente esos mismos datos. Por ejemplo, podría especificar el argumento of= incorrecto a un comando dd y escribir datos en bruto sobre sus archivos (lo que hace que sea mucho más difícil recuperarlos que si simplemente los hubiera eliminado).

Si eres la única persona que usa tu computadora, el daño que puedes hacer solo como root podría no ser mayor que el daño que puedes hacer con tus privilegios de usuario habituales. Pero eso aún no es motivo para expandir su riesgo e incluir formas adicionales de arruinar su sistema Ubuntu.

Si ejecutar con una cuenta de usuario no root le impedía ejercer control sobre su propia computadora, esto sería, por supuesto, una mala compensación. Pero no es así - cada vez que realmente desea realizar una acción como root, puede hacerlo con sudo y otros métodos .

¿Por qué no es posible iniciar sesión como root?

La idea de que la capacidad de iniciar sesión como root es intrínsecamente insegura es un mito. Algunos sistemas tienen una cuenta de root habilitada por defecto; otros sistemas usan sudo de manera predeterminada, y algunos están configurados con ambos.

  • Por ejemplo, OpenBSD , que es ampliamente y razonablemente considerado el sistema operativo de propósito general más seguro del mundo, los barcos con la cuenta de root habilitada para el inicio de sesión local, basado en contraseña.
  • Otros SO respetados que hacen esto incluyen RHEL , CentOS , y Fedora .
  • Debian (de donde Ubuntu deriva ) hace que el usuario decida qué enfoque se configurará durante la instalación del sistema.

No es objetivamente incorrecto tener un sistema en el que la cuenta raíz esté habilitada, siempre que

  1. aún solo lo usa cuando realmente lo necesita, y
  2. restringe el acceso a él de forma adecuada.

A menudo los novatos preguntan cómo habilitar la cuenta raíz en Ubuntu. No deberíamos ocultar esta información de ellos, pero generalmente cuando las personas preguntan esto es porque tienen la impresión errónea de que necesitan para habilitar la cuenta raíz. De hecho, esto casi nunca es necesario, por lo que al responder a estas preguntas es importante que lo expliquemos. Al habilitar la cuenta raíz, también es fácil volverse complaciente y realizar acciones como root que no requieren privilegios de root. . Pero esto no significa que habilitar la cuenta raíz es por sí mismo inseguro.

sudo anima y ayuda los usuarios ejecutan comandos como root solo cuando lo necesitan. Para ejecutar un comando como root, escriba sudo , un espacio y luego el comando. Esto es muy conveniente, y muchos usuarios de todos los niveles de habilidad prefieren este enfoque.

En resumen, no necesita habilitar los inicios de sesión raíz porque tiene sudo .Pero siempre que lo use solo para tareas administrativas que lo requieran, es igualmente seguro habilitar e iniciar sesión como root, siempre y cuando solo sea de esta manera :

  • Localmente, desde una como loevborg menciona , los desarrolladores de entornos de escritorio y de aplicaciones gráficas no a menudo los prueba como raíz. Incluso si lo hacen, iniciar sesión en un entorno de escritorio gráfico ya que root no obtiene pruebas alfa y beta del mundo real por parte de los usuarios, ya que casi nadie lo intenta (por las razones de seguridad explicadas anteriormente).

    Si necesita ejecutar una aplicación gráfica específica como root, puede usar gksudo o sudo -H . Esto ejecuta muchos menos programas como raíz que si realmente inició sesión gráficamente con la cuenta raíz.

  • Remotamente. La cuenta root puede, en efecto, hacer cualquier cosa, y tiene el mismo nombre prácticamente en todos los sistemas tipo Unix. Al iniciar sesión como root a través de ssh u otros mecanismos remotos, o incluso configurando servicios remotos para permitirlo , hace que sea mucho más fácil para los intrusos, incluidos los scripts automatizados y el malware que se ejecuta en botnets, para ganar acceso mediante fuerza bruta, ataques de diccionario (y posiblemente algunos errores de seguridad).

    Podría decirse que el riesgo no es extremadamente alto si permite solo los inicios de sesión basados ​​en claves y no basados ​​en contraseñas .

De manera predeterminada en Ubuntu, ni los inicios de sesión gráficos ni los inicios de sesión remotos a través de SSH están habilitados, incluso si habilita el inicio de sesión como raíz . Es decir, incluso si habilita el inicio de sesión raíz, todavía está habilitado de forma razonablemente segura.

  • Si ejecuta un servidor ssh en Ubuntu y no ha cambiado /etc/sshd/ssh_config , contendrá la línea PermitRootLogin without-password . Esto desactiva el inicio de sesión raíz basado en contraseña, pero permite el inicio de sesión basado en claves. Sin embargo, ninguna tecla está configurada de manera predeterminada, por lo tanto, a menos que haya configurado una, tampoco funcionará. Además, el inicio de sesión raíz remoto basado en claves es mucho menos malo que el inicio de sesión raíz remoto basado en contraseñas, en parte porque no crea el riesgo de fuerza bruta y ataques de diccionario.
  • Aunque los valores predeterminados deberían protegerlo, creo que sigue siendo una buena idea verificar su configuración de ssh, si va a habilitar la cuenta de root. Y si está ejecutando otros servicios que proporcionan un inicio de sesión remoto, como ftp, también debe verificarlos.

En conclusión:

  • Haz cosas como root solo cuando lo necesites; sudo te ayuda a hacer eso, al mismo tiempo que te otorga la potencia máxima de rootear en cualquier momento que lo desees.
  • Si comprende cómo funciona la raíz y los peligros de usarla en exceso, habilitar la cuenta raíz no es realmente problemático desde una perspectiva de seguridad.
  • Pero si comprende eso, también sabe que casi seguro que no necesita habilitar la cuenta raíz .

Para obtener más información sobre root y sudo , incluidos algunos beneficios adicionales de sudo que no he cubierto aquí, recomiendo RootSudo en la wiki de ayuda de Ubuntu.

    
respondido por el Eliah Kagan 03.05.2015 - 19:12
13

Cuenta raíz está desactivada de manera predeterminada, lo que significa que existe, pero no se puede utilizar (excepto en el modo de recuperación). Esto significa que un atacante conoce su cuenta raíz, pero no podría usarla aunque tenga la contraseña de root. Por lo tanto, un atacante tiene que adivinar tanto un nombre de usuario que tiene privilegios de administrador, Y la contraseña de ese usuario (que es mucho más difícil que tratar de resolver la contraseña de root). En XP si tiene instalada la consola de recuperación, cualquiera que tiene acceso físico a su caja puede iniciar en él (RC) - no se requiere contraseña. Igual que el modo de recuperación en Ubuntu.

En Ubuntu, cuando dicen que la raíz está deshabilitada, lo que realmente quiere decir es que la cuenta está bloqueada. Una cuenta se bloquea cambiando la contraseña a un valor que no coincide con ningún posible valor encriptado. Esto evita que alguien pueda iniciar sesión como root, ya que no habría forma de que ingresen la contraseña. Debido a que todavía hay ocasiones en que es necesario el acceso raíz, el kernel de Ubuntu se ha modificado para permitir el inicio de sesión local de raíz solo en modo de usuario único.

También vea esta página

    
respondido por el karthick87 04.12.2010 - 18:18
12

Es como armar a un niño pequeño con un AK47, mientras que él puede jugar alegremente con su pistola de paintball. ;)

Me refiero a que es incorrecto porque usted y sus aplicaciones tendrán más privilegios de los que necesitan y es cuando las cosas pueden y a veces saldrán mal: (

    
respondido por el omeid 05.12.2010 - 02:33
11

Muy buena pregunta ... Déjame responder desde un punto de vista práctico:

Cuando comencé a usar Linux, que fue hace más de 10 años, las principales distribuciones no anunciaron el uso de cuentas que no sean root tanto como hoy. Como estaba acostumbrado a Windows, tampoco vi un punto en el uso de una cuenta de usuario restringida. En particular, porque tuve que ingresar "su" muy a menudo, sudo no era tan popular en aquel entonces. ;-) Así que siempre me conecté como root porque tenía que hacer mucho mantenimiento para que mi sistema estuviera bien configurado. Pero adivina qué, cualquier sistema instalado recientemente se volvió rápidamente muy inestable.

Un problema concreto, por ejemplo: no he tenido tanto espacio en el disco duro reservado para Linux, así que me pasó unas cuantas veces que me quedaban 0 bytes en mi partición. Tal vez no soy completamente preciso porque no conozco el mecanismo exacto, pero cuando llenas un disco con una cuenta no root siempre quedan algunos kilobytes. Pero si realmente le quedan 0 bytes, su sistema comete errores extraños y es posible que termine con daños difíciles de solucionar en su sistema porque hay un montón de software del sistema ejecutándose en segundo plano ...

Otra cosa es: esa división entre raíz y no raíz mantiene su sistema bien organizado. Como usuario root, puede que tenga la tentación de no instalar limpiamente sus nuevas aplicaciones, lo que le deja un sistema difícil y difícil de mantener.

Pero lo bueno es que las distribuciones modernas hacen la mayoría de las tareas de administración para usted, por lo que rara vez tiene que manipular las agallas de su sistema Linux con una cuenta raíz. Es suficiente ingresar una contraseña de vez en cuando, el resto lo hacen los scripts del distribuidor.

Pero dudo que no haya tenido problemas en su sistema Windows con eso si usó 95 oder 98. (Al menos tuve problemas con eso ...) Debido a la falta de una separación clara entre el Administrador y el las aplicaciones de Windows "tradicionales" del usuario suponen que pueden hacer cualquier cosa, por ejemplo instale Spyware si le da la gana, incluso sin decírselo. Microsoft se involucró en ese problema al lanzar Vista. (Implementando efectivamente un mecanismo de sudo.) Entonces la gente tuvo diálogos muy molestos diciendo "No puedes hacer eso". Para algunos software que no es compatible con Vista, necesitabas algunos hacks sucios para instalarlo, incluso como administrador ...

    
respondido por el Philip 04.12.2010 - 21:02
10

Hay muchos aspectos detrás de este enfoque. Algunos de ellos son:

  •    La raíz es todopoderosa.
  • En los sistemas Unix y Unix, los privilegios de administración del sistema son todo o nada. Un usuario tiene acceso de root o no, y el acceso de root implica el control completo de una máquina. Si la máquina en cuestión es utilizada por más de una persona, o la raíz tiene acceso a otros sistemas o archivos de usuario, es más aceptable otorgar a algunos usuarios privilegios de raíz parcial.

  • El usuario raíz puede ocultar todas sus acciones.
  • sudo registra cada comando ejecutado a través de sudo. Tener un registro de lo que se está haciendo con sudo nos ayuda a diagnosticar problemas con sistemas / procesos individuales y problemas generales de configuración, además de ayudarnos a identificar las mejoras necesarias.

  • La contraseña de root le da acceso a cualquier comando en un sistema.
  • A través de su archivo de configuración, sudo puede dar acceso a un usuario root para un conjunto particular de comandos. Esto también evita el efecto de "todo o nada", lo que nos permite otorgar a los usuarios individuales más control sobre sus máquinas y ayudarlos a salir de problemas comunes.

    aquí hay un buen artículo: enlace

        
    respondido por el aneeshep 18.12.2010 - 14:52
    8
    rm /*
    

    Digamos que has estado limpiando un área administrativa. Se cansa de la contraseña, por lo que sudo su . Te distraes solo por segundo y olvidas tu cd a / . Entonces usted rm * . Lo he hecho. Puedes recuperarlo todo, pero es un PITA. ¡Ah, y también desciende a /media !

        
    respondido por el bambuntu 07.02.2012 - 05:30
    7

    ¿Por qué no tener inicio de sesión raíz?

    Mientras puedes crear una contraseña para la cuenta de superusuario que te permite iniciar sesión como root, vale la pena mencionar que esta no es la forma de hacer "Ubuntu". Ubuntu ha elegido específicamente not para dar un nombre de usuario y contraseña de forma predeterminada por un motivo. En cambio, una instalación predeterminada de Ubuntu usará sudo .

    Sudo es una alternativa a dar a las personas una contraseña de root para realizar tareas de superusuario. En una instalación predeterminada de Ubuntu, la persona que instaló el sistema operativo recibe el permiso "sudo" por defecto.

    Cualquier persona con permiso "sudo" puede realizar algo "como superusuario" mediante la pre-pendiente sudo de su comando. Por ejemplo, para ejecutar apt-get dist-upgrade como superusuario, puede usar:

    sudo apt-get dist-upgrade
    

    Beneficios del enfoque sudo

    • Con sudo, usted elige de antemano qué usuarios tienen acceso a sudo. No es necesario que recuerden una contraseña de root, ya que usan su propia contraseña.

    • Si tiene varios usuarios, puede revocar el acceso de superusuario solo eliminando su permiso de sudo, sin necesidad de cambiar la contraseña de root y notificar a todos sobre una nueva contraseña.

    • Incluso puede elegir qué comandos puede ejecutar un usuario con sudo y qué comandos están prohibidos para ese usuario.

    • Y, por último, si hay una violación de seguridad, en algunos casos puede dejar una pista de auditoría mejor que muestre qué cuenta de usuario se vio comprometida.

    Sudo hace que sea más fácil realizar un solo comando con privilegios de superusuario. Con un inicio de sesión raíz, permaneces permanentemente en un shell de superusuario que debe salir utilizando exit o logout . Esto puede provocar que las personas permanezcan en el shell del superusuario por más tiempo de lo necesario simplemente porque es más conveniente que cerrar la sesión y volver a ingresar más tarde.

    Con sudo, todavía tiene la opción de abrir un shell de superusuario permanente (interactivo) con el comando:

    sudo su
    

    ... y esto aún se puede hacer sin ninguna contraseña de root, porque sudo otorga privilegios de superusuario al comando su .

    Y del mismo modo, en lugar de su - para un shell de inicio de sesión, puede usar sudo su - o incluso sudo -i .

    Sin embargo, al hacerlo, solo debe tener en cuenta que está actuando como un superusuario para cada comando. Es un buen principio de seguridad no permanecer como superusuario durante más tiempo de lo necesario, solo para disminuir la posibilidad de dañar accidentalmente el sistema (sin él, solo se pueden dañar los archivos que posee su usuario).

    Solo para aclarar, puede , si lo desea, otorgue al usuario raíz una contraseña que le permita iniciar sesión como root, si desea hacer las cosas de esta manera. Solo quería informarte acerca de la convención de Ubuntu de preferir sudo en su lugar e intentar explicar algunos de los motivos por los que Ubuntu favorece ese enfoque por defecto.

    ¿Por qué no se permite el inicio de sesión raíz a través de SSH?

    Incluso si su usuario raíz lo tiene tiene una contraseña que le permite iniciar sesión como root, sigue siendo una buena práctica de seguridad inhabilitar el inicio de sesión directo desde fuera, como en SSH. Es razonable que los usuarios tengan que su - o sudo después del inicio de sesión inicial.

    Los beneficios potenciales para esto están relacionados principalmente con la seguridad:

    • Reduce el vector de ataque al eliminar la posibilidad de forzar de forma brutal la contraseña de root de forma remota. Es típico que un servidor en Internet sea bombardeado constantemente por intentos de fuerza bruta de la contraseña de root a través de SSH.

    • Crea una mejor pista de auditoría para que, incluso en el caso de una violación donde el atacante lo hace obtenga privilegios de superusuario más adelante, pueda ver de quién se utilizó la cuenta de usuario para obtener acceso.

    respondido por el thomasrutter 25.06.2014 - 15:24
    6

    Cuando inicia sesión como root, hace posible que aplicaciones, scripts o comandos de línea de comandos accedan a partes sensibles del software que pueden dañar el sistema. Esto puede ser el resultado de la inexperiencia del usuario o del programador o debido a un código oculto incorrecto.

        
    respondido por el Gersitar 04.12.2010 - 18:26
    5

    Es demasiado fácil desordenar cuando se opera como root. Puede golpear todo el sistema con un solo comando ...

        
    respondido por el Abel 04.12.2010 - 20:05
    5

    Puedo agregar que hay una diferencia entre el Administrador en Windows y la raíz en Unix. El administrador todavía tiene algunas restricciones en los sistemas, donde el directorio raíz no tiene ninguna restricción . El análogo correcto de la raíz en Windows es Sistema usuario.

    Lo malo de usar PC en la raíz / Sistema es que puedes destruir cualquier cosa accidentalmente sin ninguna advertencia del sistema operativo.

        
    respondido por el Aleksei 18.12.2010 - 16:01
    3

    Si las aplicaciones se ejecutan como root, no hay garantía de que ninguna de ellas se ejecute

    rm -rf /
    

    (Este es un ejemplo de un comando que no debe ejecutarse).

        
    respondido por el segfault 04.12.2010 - 18:48
    3

    Dado un usuario conocedor y cuidadoso, no estoy seguro de que exista una respuesta correcta . No había visto esta respuesta, así que pensé en entrar.

    Lo que no me gusta son los cambios involuntarios de permisos en sistemas multiusuario que necesito para chmod más tarde. Reparar vía chmod después de los hechos es mucho más irritante que necesitar sudo, pero depende de lo que he planeado.

        
    respondido por el Clayton 09.08.2016 - 05:10
    3

    No hay peligro al iniciar sesión como root si se usa con cuidado.

    Aunque creo que deshabilitar la raíz es una solución preferible, porque el atacante no podría forzarlo brutalmente.

    Una solución es crear un usuario en sudo group con un nombre oscuro, como gamer y usar sudo para realizar tareas administrativas.

    Por lo tanto, el atacante no solo debe adivinar la contraseña de ese usuario administrativo, sino también su nombre de usuario. Lo cual no es obvio si el usuario que usa sudo tiene un nombre de inicio de sesión como kitty o gamer o algo similar.

        
    respondido por el Bulat M. 11.11.2016 - 08:08
    2

    El software se basa en bibliotecas compartidas, dependencias, archivos de configuración, etc.
    La mayoría de las veces, un solo clic en una aplicación invoca una "reacción en cadena" de múltiples cambios, no solo donde usted probablemente lo haría.
    Cuando estos cambios están a punto de afectar la configuración crítica del sistema, es bueno para usted, como usuario, saberlo. Es por eso que el acceso raíz es un buen modelo de seguridad:
    Si algo crucial está por sucederle a su sistema, se le notificará pidiéndole elevación de privilegio.

        
    respondido por el Pavlos G. 05.12.2010 - 17:50
    2

    Razones contra el uso de root:

    • Podría destruir accidentalmente los archivos del sistema
    • Podría tener una infección
    • No registra acciones

    Razones para usar root:

    • Acceso a todo, sin contraseñas de escritura
    • GUI, no usa terminales para gestionar archivos / directorios del sistema

    Me parece que una cuenta que no sea root aún puede ser víctima de esas razones en contra de usar root, lo máximo que agrega es una confirmación de sus acciones. Creo que mientras sepas lo que estás haciendo, estás perfectamente seguro usando root. Allí, lo dije.

        
    respondido por el Que 18.11.2011 - 08:41
    0

    Es un problema de dos caras con más de una respuesta.

    Para comprobar la realidad, repite las mismas respuestas que antes:

    desktop installations :

    • usa tu propio usuario y sudo si es necesario, de lo contrario, un vector de ataque utilizado con éxito porque no sabes realmente lo que estás haciendo y tu sistema está en peligro
    • es probable que en las empresas más grandes, es posible que ni siquiera tenga privilegios de administrador en su propia estación de trabajo, incluso si es un administrador, dependiendo de la cantidad de sombreros de estaño que haya.

    server installations :

    • hay una gran diferencia entre hacer sesiones cortas de trabajo legítimas como raíz (siempre que tenga inicios de sesión sin contraseña, administración correcta de claves ssh para todos los servidores, y fail2ban configurado para todos los inicios de sesión de contraseñas mientras esté de todos modos) y teniendo cada daemon / service ejecutándose con su propio usuario (que es obligatorio): la mayoría de las personas parecen no darse cuenta de la diferencia
    • por diversión: intente usar sus herramientas de administración de configuración controladas por versión (ansible / puppet / salt / whatever con archivos de un servidor git) solo sin acceso de root. (Usted tiene alguna forma de AAA para estos sistemas especiales, así como para sus sistemas de monitoreo y respaldo, ¿no?)
    • también: el valor predeterminado rm -rf / no funciona en la mayoría de las distribuciones mainstream IIRC
    • cualquier lugar de trabajo serio tiene un jumphost / bastion-host para acceder a la flota de servidores que registra todo lo que haces de todos modos, que probablemente esté más protegido por 2FA
    • si tienes sudo y no jumphost puedes arreglar los registros de los hosts para terminar como quieras de todos modos, si no están duplicados en tiempo real, eso es.
    • cuando también los registros ssh se 'limpian', ni siquiera se puede probar que han estado en el host, si no hay más sistema de supervisión de red en su lugar

    Para cualquier tamaño de empresa (léase: lo más probable es SOHO con una IP estática) entre estos dos extremos que carece de medidas adecuadas de supervisión / copia de seguridad / automatización / registro, puede ser útil imponer el uso de sudo en los servidores. (Lo cual es evitado por personas que hacen sudo su - ASAP después de conectarse, dejando que todas sus intenciones de registrar lo que pasó se desperdicien incluso sin intenciones maliciosas tan pronto como haya iniciado sesión más de un usuario raíz. Buena suerte cambiando esto mediante procedimientos forzados y amenazas personas con medidas draconianas por no obedecer las reglas. La vida siempre encuentra un camino).

    Pero si no tiene al menos fail2ban para proteger sus inicios de sesión de contraseña (si hay algún presente, especialmente en sistemas de Internet), además de tener en cuenta el manejo adecuado de contraseñas (herramientas de administración de contraseñas, políticas de retención, no contraseñas maestras, manejo estos sobre las fluctuaciones de los empleados ...) y tienen algún tipo de gestión de actualización adecuada para la flota de servidores en su lugar para todos los servidores están parcheados regularmente, es probable que sea pirateado algún día de todos modos, ya sea desde dentro o desde el exterior.

    Y siempre habiendo usado sudo religiosamente y habiendo aplicado su uso entre todas las personas, no cambiará la probabilidad de que te pertenezcan en ese caso.

        
    respondido por el sjas 02.09.2018 - 23:32

    Lea otras preguntas en las etiquetas