4 maneras de deshabilitar la cuenta de root en Linux


La cuenta root es la cuenta definitiva en Linux y otros sistemas operativos similares a Unix. Esta cuenta tiene acceso a todos los comandos y archivos en un sistema con permisos completos de lectura, escritura y ejecución. Se utiliza para realizar cualquier tipo de tarea en un sistema; para crear/actualizar/acceder/eliminar las cuentas de otros usuarios, instalar/eliminar/actualizar paquetes de software y mucho más.

Debido a que el usuario root tiene poderes absolutos, cualquier acción que realice es crítica en un sistema. En este sentido, cualquier error del usuario root puede tener enormes implicaciones en el funcionamiento normal de un sistema. Además, esta cuenta también puede ser objeto de abuso al usarla de forma inadecuada o inadecuada, ya sea de manera accidental, maliciosa o por ignorancia artificial de políticas.

Por lo tanto, es recomendable deshabilitar el acceso de root en su servidor de Linux, en lugar de eso, cree una cuenta administrativa que debe configurarse para obtener privilegios de usuario root mediante el comando sudo, para realizar tareas críticas en el servidor.

En este artículo, explicaremos cuatro formas de deshabilitar el inicio de sesión de la cuenta de usuario root en Linux.

# useradd -m -c "Admin User" admin
# passwd admin

Luego, agregue este usuario al grupo apropiado de administradores del sistema usando el comando usermod, donde el interruptor -a significa agregar una cuenta de usuario y -G especifica un grupo para agregar el usuario in (wheel o sudo dependiendo de su distribución de Linux):

# usermod -aG wheel admin    #CentOS/RHEL
# usermod -aG sudo admin     #Debian/Ubuntu 

Una vez que haya creado un usuario con privilegios administrativos, cambie a esa cuenta para bloquear el acceso de root.

# su admin

1. Cambiar el shell del usuario root

El método más sencillo para deshabilitar el inicio de sesión del usuario root es cambiar su shell de /bin/bash o /bin/bash (o cualquier otro shell que permita el inicio de sesión del usuario) a /sbin/nologin , en el archivo /etc/passwd , que puede abrir para editar usando cualquiera de sus editores de línea de comando favoritos, como se muestra.

  
$ sudo vim /etc/passwd

Cambia la línea:

root:x:0:0:root:/root:/bin/bash
to
root:x:0:0:root:/root:/sbin/nologin

Guarde el archivo y ciérrelo.

A partir de ahora, cuando el usuario root inicie sesión, recibirá el mensaje " Esta cuenta no está disponible actualmente. " Este es el mensaje predeterminado, pero puede cámbielo y configure un mensaje personalizado en el archivo /etc/nologin.txt .

Este método solo es efectivo con programas que requieren un shell para el inicio de sesión del usuario, de lo contrario, los clientes de sudo , ftp y pueden acceder a la cuenta raíz.

2. Desactive el inicio de sesión de raíz a través del dispositivo de consola (TTY)

El segundo método utiliza un módulo PAM llamado pam_securetty , que permite el acceso de root solo si el usuario está iniciando sesión en un " seguro" TTY , como definido por el listado en /etc/securetty .

El archivo anterior le permite especificar en qué dispositivos TTY se le permite al usuario root iniciar sesión, al vaciar este archivo se evita el inicio de sesión en cualquier dispositivo conectado al sistema informático.

Para crear un archivo vacío, ejecute.

$ sudo mv /etc/securetty /etc/securetty.orig
$ sudo touch /etc/securetty
$ sudo chmod 600 /etc/securetty

Este método tiene algunas limitaciones, solo afecta a programas como inicio de sesión, administradores de pantalla (es decir, gdm , kdm y xdm ) y otros servicios de red que lanzar un TTY. Los programas como su, sudo, ssh y otras herramientas relacionadas de openssh tendrán acceso a la cuenta raíz.

3. Inhabilitar el inicio de sesión de SSH

La forma más común de acceder a servidores remotos o VPS es a través de SSH y para bloquear el inicio de sesión del usuario root, debe editar el archivo /etc/ssh/sshd_config

$ sudo vim /etc/ssh/sshd_config

Luego descomente (si está comentado) la directiva PermitRootLogin y establezca su valor en no como se muestra en la captura de pantalla.

Una vez que haya terminado, guarde y cierre el archivo. Luego reinicie el servicio sshd para aplicar el cambio reciente en las configuraciones.

$ sudo systemctl restart sshd 
OR
$ sudo service sshd restart 

Como ya sabrá, este método solo afecta al conjunto de herramientas openssh, los programas como ssh, scp, sftp no podrán acceder a la cuenta raíz.

4. Restringir el acceso de raíz a los servicios a través de PAM

Módulos de autenticación conectables ( PAM en breve) es un método centralizado, conectable, modular y flexible de autenticación en sistemas Linux. PAM, a través del módulo /lib/security/pam_listfile.so , permite una gran flexibilidad para limitar los privilegios de cuentas específicas.

El módulo anterior puede usarse para hacer referencia a una lista de usuarios a los que no se les permite iniciar sesión a través de algunos servicios de destino, como inicio de sesión, ssh y cualquier programa compatible con PAM.

En este caso, queremos deshabilitar el acceso del usuario root a un sistema, restringiendo el acceso a los servicios de inicio de sesión y sshd. Primero abra y edite el archivo para el servicio de destino en el directorio /etc/pam.d/ como se muestra.

$ sudo vim /etc/pam.d/login
OR
sudo vim /etc/pam.d/sshd

A continuación, agregue la configuración a continuación en ambos archivos.

auth    required       pam_listfile.so \
        onerr=succeed  item=user  sense=deny  file=/etc/ssh/deniedusers

Cuando haya terminado, guarde y cierre cada archivo. Luego cree el archivo simple /etc/ssh/deniedusers que debe contener un elemento por línea y no se puede leer en todo el mundo.

Agregue el nombre raíz en él, luego guárdelo y ciérrelo.

$ sudo vim /etc/ssh/deniedusers

También establece los permisos requeridos en esto.

$ sudo chmod 600 /etc/ssh/deniedusers

Este método solo afecta a los programas y servicios que son conscientes de PAM. Puede bloquear el acceso de root al sistema a través de clientes FTP y de correo electrónico, y más.

Para más información, consulte las páginas de manual correspondientes.

$ man pam_securetty
$ man sshd_config
$ man pam

¡Eso es todo! En este artículo, hemos explicado cuatro formas de deshabilitar el inicio de sesión (o cuenta) del usuario root en Linux. ¿Tiene algún comentario, sugerencia o pregunta, no dude en comunicarse con nosotros a través del formulario de comentarios a continuación.