Table of Contents
4 formas de deshabilitar la cuenta raíz 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 realiza son fundamentales 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 manera incorrecta o inapropiada, ya sea de manera accidental, maliciosa o por ignorancia artificial de las políticas.
Por lo tanto, es aconsejable deshabilitar el acceso root en su servidor Linux, en su lugar, cree una cuenta administrativa que debe configurarse para obtener privilegios de usuario root usando 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.
Atención:. antes de bloquear el acceso a la cuenta raíz. asegúrese de haber creado una cuenta administrativa., capaz de usar el comando sudo para obtener privilegios de usuario root, con el comando useradd y darle a esta cuenta de usuario una contraseña segura. La bandera-m significa crear el directorio de inicio del usuario y-c permite especificar un comentario:
# useradd-m-c “Usuario administrador” admin # passwd admin freestar.config.enabled_slots.push
Luego, agregue este usuario al grupo apropiado de administradores del sistema usando el comando usermod, donde el interruptor-a significa agregar cuenta de usuario y-G especifica un grupo para agregar el usuario en ( 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 ese cuenta para bloquear el acceso de root.
# su admin
1. Cambiar el shell del usuario root
El método más simple 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
Cambie la línea:
root: x: 0: 0: root:/root:/bin/bash a root: x: 0: 0: root:/root: /sbin/nologin.
Cambiar shell de usuario raíz
Guarde el archivo y ciérrelo.
F rom 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 establezca 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, sudo. ftp. y clientes de correo electrónico. pueden acceder a la cuenta raíz.
2. Deshabilitar el inicio de sesión de root 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 TTY “ seguro”. como se define en la lista en /etc/securetty.
El archivo anterior le permite especificar qué Dispositivos TTY. en los que el usuario root puede iniciar sesión, vaciar este archivo evita el inicio de sesión de root 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 visualización (es decir gdm. kdm. y xdm. y otros servicios de red que inician un TTY. Programas como su, sudo, ssh y otras herramientas de openssh relacionadas tendrán acceso a la cuenta de root.
3. Desactivar el inicio de sesión de root 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 de usuario root debajo de él, debe editar /etc/ssh/sshd_config. expediente.
$ 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.
Desactivar el inicio de sesión de root en SSh
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 O $ sudo service sshd restart
Como ya sabrá, este método solo afecta a las herramientas openssh, se bloqueará el acceso a la cuenta raíz a programas como ssh, scp, sftp.
4. Restringir el acceso de root a los servicios a través de PAM
Módulos de autenticación conectables. ( PAM. en resumen) es un método de autenticación centralizado, conectable, modular y flexible 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 se puede utilizar 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 al inicio de sesión y servicios 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 O sudo vim/etc/pam.d/sshd
A continuación, agregue la siguiente configuración en ambos archivos.
Se requiere auth pam_listfile.so \ onerr = success item = user sense = deny file =/etc/ssh/denyusers
Cuando ya ha terminado, guarde y cierre cada archivo. Luego cree el archivo sin formato /etc/ssh/pressedusers. que debe contener un elemento por línea y no debe ser legible para todo el mundo.
Agregue el nombre raíz en él, luego guárdelo y ciérrelo.
$ sudo vim/etc/ssh/pressedusers
También establezca los permisos requeridos en esto.
$ sudo chmod 600/etc/ssh/pressedusers
Este método solo afecta a los programas y servicios que están PAM consciente. Puede bloquear el acceso de root al sistema a través de ftp y clientes de correo electrónico y más.
Para obtener más información, consulte las páginas de manual relevantes.
$ man pam_securetty $ man sshd_config $ man pam
Eso es ¡todas! 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.