it-swarm-es.com

¿Deberíamos deshabilitar al usuario root?

¿Deberíamos eliminar la contraseña de root, deshabilitar el inicio de sesión remoto y básicamente requerir que los administradores usen Sudo para realizar acciones administrativas?

alt text

21
jldugger

Todos mis servidores tienen la cuenta raíz deshabilitada (sp_pwdp ajustado a *). Esto requiere Sudo para todos los accesos de root. [1] El propósito de esto es auditar todas las actividades de superusuario, para que la gente pueda ver lo que se ha hecho en el sistema.

Para una opción más estricta, puede hacer que Sudo escriba en un archivo de registro (a diferencia de syslog), y hacer que el archivo sea solo para agregar (usando chattr en Linux, o chflags en BSD). De esta forma, nadie puede editar la auditoría posteriormente.

[1] También tengo la política de no ejecutar un Shell raíz, o hacer que Shell escape de un proceso raíz. (Está bien usar Sudo sh -c '...' para hacer pipelines o redirecciones, sin embargo.)

16

Yo ¡enfáticamente recomiendo no deshabilitar al usuario root. Deshabilite o restrinja los inicios de sesión de root (a través de securetty y a través de sshd_config y a través de PAM y a través de lo que tenga) Si su sistema lo permite, limitar los privilegios de root o dividir el rol de root (similar a cómo lo hace RSBAC .) Pero por favor, por favor , no desactive la cuenta root eliminando la contraseña, de lo contrario será imposible iniciar sesión en el sistema a través de sulogin. sulogin es usado por todos los initscripts que conozco en caso de errores graves reportados por fsck, y eso significa que se le bloqueará el acceso al sistema si el sistema de archivos raíz se corrompe.

Para aclarar: por "deshabilitar la cuenta de root eliminando la contraseña" me refiero a los diversos mecanismos que terminan con un! o un * en el campo de contraseña de/etc/shadow, o similar. No me refiero a "cambiar el mecanismo de inicio de sesión de root para que no se le solicite una contraseña".

15
Mihai Limbăşan

Tengo la cuenta raíz habilitada en todos mis servidores. Todos los administradores tienen su propio usuario y deben iniciar sesión a través de él. Desde allí cambian a root. (root ssh está deshabilitado)

Mantenga la cuenta de administradores baja. Solo las personas que realmente necesitan acceso de root en ese servidor tienen la contraseña.

No soy fanático de Sudo. Es demasiado fácil simplemente hacer 'Sudo bash' para un Shell raíz. Soy consciente de que esto se puede desactivar, pero ¿para qué molestarse? Simplemente limite los usuarios que pueden realizar tareas de administrador y hablar entre ellos. Tenemos una política para no permitir que los terminales raíz se abran sin supervisión. Entonces es iniciar sesión, su, hacer el trabajo, cerrar sesión.

Nota: Trabajo en una empresa bastante pequeña (empleados de 50 y tantos) y trabajamos con solo 2 administradores a tiempo parcial (1 windows/1 linux). Esta forma de hacer las cosas puede no ser la mejor cuando tienes muchos más usuarios. Personalmente, todavía no usaría Sudo. Hay otras formas de registrar la actividad de root.

3
Gert M

Desactivar la contraseña de root es, en mi humilde opinión, una falsa "buena idea". El día que lo necesite, lo realmente lo necesitará. (de acuerdo con su configuración, es posible que lo necesite para iniciar sesión en modo de usuario único, por ejemplo)

Deshabilitar el inicio de sesión remoto de root puede ser relevante, pero solo si puede iniciar sesión localmente.

Y sí, Sudo debería instalarse en cada uno de sus servidores. Es útil y fácil de configurar. ¿Por qué le gustaría no usarlo?

2
Benoit

Solo deshabilito el acceso SSH para root y requiero que los usuarios (a menudo solo desarrolladores) usen claves ssh. Hay demasiados ataques de diccionario y cambiar el puerto SSH no es una opción para nosotros.

De esa manera, no tendrá que confiar en la capacidad de nadie para escribir una buena contraseña. Una vez dentro, solo los administradores tienen permisos para Sudo.

2
pablasso

Sé que este hilo es muy antiguo, pero hay algunas fallas importantes en la lógica de los artículos vinculados y me siento "despotricado": Sudo permite tanto las listas blancas como las listas negras. No solo negro como especifican en el artículo vinculado: esto omite la idea de AAA (autenticación, autorización y auditoría): su y Sudo permiten tanto la autenticación graduada como la responsabilidad.

Escenario 1 Un administrador introduce accidentalmente un código fraudulento en un sistema, inicia sesión como root, el código tiene acceso completo y es posible que el administrador nunca sepa qué sucedió. Al menos con inicios de sesión graduados (por ejemplo, su/Sudo), se le pedirá al administrador que se autentique si el código falso intenta usar derechos elevados ... Si no se eleva, entonces se limita a los derechos de los usuarios, lo que debería resultar en un daño mínimo.

Escenario 2 Un administrador deshonesto quiere obtener información/realizar un cambio. Se conectan a la consola (acceso a la consola física, HP iLo/similar o acceso a la consola vGuest), inician sesión como root y hacen lo que deseen. A menos que se use una cuenta/tarjeta de acceso con nombre para obtener acceso a la consola, probablemente no haya mucho rastro de auditoría.

  1. Asegúrese de que realmente sean quienes dicen ser. El robo de identidad no es el problema, la verificación de identidad sí lo es.
  2. Verifica su autorización, solo dales lo que necesiten en ese momento. La autorización graduada les permite ascender cuando lo necesitan.
  3. Audítelo todo, tenga un registro para saber quién, hizo qué, cuándo y dónde. Preferiblemente por qué también
2
Mike

Los autores de la distribución segura de Owl (y el diseñador Solar) tienen un punto de vista opuesto cuidadosamente justificado; ver, por ejemplo, la respuesta https://unix.stackexchange.com/questions/8581/which-is-the-safest-way-to-get-root-privileges-Sudo-su-or-login/ 8660 # 866 para una presentación de sus reclamos. El problema de auditar las acciones del superusuario (qué persona hizo qué) también se aborda en su punto de vista (básicamente, la solución es tener varios usuarios root con diferentes nombres).

Debería exigir que todos usen Sudo para cada comando root como política. Nunca hay una razón para ejecutar "Sudo bash" o similar, es solo por conveniencia, debido a la ignorancia o para tapar el rastro.

Si deshabilita los inicios de sesión en la cuenta raíz directamente, paraliza su capacidad para reparar el sistema cuando hay problemas graves.

Si no puede convencer a sus administradores de que inicien sesión como ellos mismos y ejecuten Sudo para cada comando que se ejecute como root, y que no se salgan de él en un Shell, tiene serios problemas para los que no existe una solución técnica.

1
carlito