El uso de un sudo
usuario para acceder a un servidor y ejecutar comandos a nivel raíz es una práctica muy común entre Linux y Unix Systems Administrator. El uso de un sudo
usuario a menudo se combina desactivando el acceso raíz directo al servidor en un esfuerzo por evitar el acceso no autorizado.
En este tutorial, cubriremos los pasos básicos para deshabilitar el acceso raíz directo, crear un usuario sudo y configurar el grupo sudo en CentOS, Debian y FreeBSD.
Prerrequisitos
- Un servidor Linux recién instalado con su distribución preferida.
- Un editor de texto instalado en el servidor, ya sea nano, vi, vim, emacs.
Paso 1: Instalar sudo
Debian
apt-get install sudo -y
CentOS
yum install sudo -y
FreeBSD
cd /usr/ports/security/sudo/ && make install clean
o
pkg install sudo
Paso 2: Agregar el usuario sudo
Un sudo
usuario es una cuenta de usuario normal en una máquina Linux o Unix.
Debian
adduser mynewusername
CentOS
adduser mynewusername
FreeBSD
adduser mynewusername
Paso 3: Agregar el nuevo usuario al grupo de ruedas (opcional)
El grupo de rueda es un grupo de usuarios que limita la cantidad de personas que pueden su
rootear. Agregar su sudo
usuario al wheel
grupo es completamente opcional, pero es recomendable.
Nota: En Debian, el sudo
grupo se encuentra a menudo en lugar de wheel
. Sin embargo, puede agregar manualmente el wheel
grupo utilizando el groupadd
comando. A los efectos de este tutorial, utilizaremos el sudo
grupo para Debian.
La diferencia entre wheel
y sudo
.
En CentOS y Debian, un usuario que pertenece al wheel
grupo puede ejecutar su
y ascender directamente root
. Mientras tanto, un sudo
usuario debería haber usado el sudo su
primero. Esencialmente, no hay una diferencia real, excepto la sintaxis utilizada para convertirse en root , y los usuarios que pertenecen a ambos grupos pueden usar el sudo
comando.
Debian
usermod -aG sudo mynewusername
CentOS
usermod -aG wheel mynewusername
FreeBSD
pw group mod wheel -m mynewusername
Paso 4: Asegúrate de que tu sudoers
archivo esté configurado correctamente
Es importante asegurarse de que el sudoers
archivo ubicado en /etc/sudoers
está configurado correctamente para permitir sudo users
el uso efectivo del sudo
comando. Para lograr eso, veremos los contenidos /etc/sudoers
y los editaremos cuando corresponda.
Debian
vim /etc/sudoers
o
visudo
CentOS
vim /etc/sudoers
o
visudo
FreeBSD
vim /etc/sudoers
o
visudo
Nota: El visudo
comando se abrirá /etc/sudoers
usando el editor de texto preferido del sistema (generalmente vi o vim) .
Comience a revisar y editar debajo de esta línea:
# Allow members of group sudo to execute any command
Esta sección de a /etc/sudoers
menudo se ve así:
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
En algunos sistemas, es posible que no encuentre en %wheel
lugar de %sudo
; en cuyo caso, esta sería la línea bajo la cual comenzaría a modificar.
Si la línea que comienza %sudo
en Debian o %wheel
en CentOS y FreeBSD no está comentada (con el prefijo #) , esto significa que sudo ya está configurado y habilitado. Luego puede pasar al siguiente paso.
Paso 5: permitir que un usuario que no pertenece al grupo wheel
ni al sudo
grupo ejecute el sudo
comando
Es posible permitir que un usuario que no está en ninguno de los grupos de usuarios ejecute el sudo
comando simplemente agregándolos de la /etc/sudoers
siguiente manera:
anotherusername ALL=(ALL) ALL
Paso 6: reiniciar el servidor SSHD
Para aplicar los cambios realizados /etc/sudoers
, debe reiniciar el servidor SSHD de la siguiente manera:
Debian
/etc/init.d/sshd restart
CentOS 6
/etc/init.d/sshd restart
CentOS 7
systemctl restart sshd.service
FreeBSD
/etc/rc.d/sshd start
Paso 7: prueba
Después de reiniciar el servidor SSH, cierre la sesión y vuelva a iniciarla como su sudo user
, luego intente ejecutar algunos comandos de prueba de la siguiente manera:
sudo uptime
sudo whoami
Cualquiera de los siguientes comandos permitirá sudo user
que se convierta root
.
sudo su -
sudo -i
sudo -S
Notas:
- El
whoami
comando volverá root
cuando se acople con sudo
.
- Se le pedirá que ingrese la contraseña de su usuario cuando ejecute el
sudo
comando, a menos que indique explícitamente al sistema que no solicite sudo users
sus contraseñas. Tenga en cuenta que no es una práctica recomendada.
Opcional: permitir sudo
sin ingresar la contraseña del usuario
Como se explicó anteriormente, esta no es una práctica recomendada y se incluye en este tutorial solo con fines de demostración.
Con el fin de permitir que su sudo user
para ejecutar el sudo
comando sin que se le pida su contraseña, el sufijo de la línea de acceso en /etc/sudoers
la NOPASSWD: ALL
forma siguiente:
%sudo ALL=(ALL:ALL) ALL NOPASSWD: ALL
Nota: Debe reiniciar su servidor SSHD para aplicar los cambios.
Paso 8: deshabilite el acceso directo a la raíz
Ahora que ha confirmado que puede usar su sudo user
sin problemas, es hora del octavo y último paso, deshabilitando el acceso directo a la raíz.
Primero, abra /etc/ssh/sshd_config
usando su editor de texto favorito y encuentre la línea que contiene la siguiente cadena. Puede tener el prefijo de un #
personaje.
PermitRootLogin
Independientemente del prefijo o el valor de la opción en /etc/ssh/sshd_config
, debe cambiar esa línea a la siguiente:
PermitRootLogin no
Finalmente, reinicie su servidor SSHD.
Nota: No olvide probar sus cambios intentando SSH en su servidor como root
. Si no puede hacerlo, esto significa que ha completado con éxito todos los pasos necesarios.
Esto concluye nuestro tutorial.