Protegiendo al usuario raíz en Ubuntu 20.04 Focal Fossa
Desde hace un tiempo vengo hablando de Mautic, una alternativa de código abierto para la realización de campañas de marketing digital. Mi intención era comenzar a explicar a partir de este artículo como instalarlo en un servidor privado virtual. Pero, por puro accidente descubrí algo. Mi proveedor de alojamiento web ofrece dos tipos de imágenes de la versión server de Ubuntu 20.04; la original y una personalizada por ellos. La personalizada por ellos ahorra tiempo de instalación pero complica innecesariamente la instalación de Mautic.
Para hacérselas corta, perdí un día de investigaciones que me podría haber ahorrado usando la imagen original, pero, como algunas de las cosas que descubrí pueden resultarle útil a alguien, las reciclé en este artículo.
Protegiendo al usuario raíz
Gestión de los usuarios
Una de las diferencias entre la imagen original de Ubuntu y la de mi proveedor de hosting es que en la primera yo elegí mi nombre de usuario y mi contraseña, mientras que en la segunda se creó un usuario Root y se generó la contraseña en forma automática.
Algunas distribuciones Linux te piden en el momento de instalación dos contraseñas, la de usuario y la de Root. El usuario Root puede hacer absolutamente lo que quiera con el sistema. Por razones de seguridad es conveniente limitar el uso y crear otro usuario que tenga poderes de administrador, pero al que sea posible retirárselos en caso de problemas. Es por eso que Ubuntu opta por no crear este tipo de usuario por defecto aunque es posible agregarlo más adelante.
Cuando inicias sesión en Ubuntu, si quieres hacer cambios importantes tienes que indicarle al sistema operativo que cuentas con las autorizaciones necesarias. Esto se hace poniendo la contraseña en la ventana que se abre o escribiendo una instrucción precedida del comando sudo en la terminal.
El usuario Root tiene un comando propio, su que permite ejecutar cualquier comando no solo en su nombre si no en nombre de cualquier otro usuario. Una vez que escribiste la contraseña puedes hacer lo que quieras con el sistema hasta que escribas exit en la terminal.
En cambio, sudo solo puede ser ejecutado en nombre de un solo usuario, de a un comando por vez y deberás volver a poner la contraseña cada 15 minutos.
Hay que dejar en claro que Ubuntu si tiene un usuario Root, pero, al no tener configurada una contraseña, es como si no existiera. Para poder habilitarlo solo tienes que escribir el siguiente comando:
sudo passwd root
Creando un nuevo usuario con poderes de administrador
Si tienes un servidor o una computadora a la que accede mucha gente y, por algún motivo tienes el usuario Root habilitado, lo mejor es tomar medidas de protección
Para crear el nuevo usuario escribimos el comando
sudo useradd nombre_de_usuario
Recuerda reemplazar nombre_de-usuario por el nombre que elijas.
A continuación le asignamos una contraseña
sudo passwd nombre_de_usuario
El sistema te pedirá que escribas dos veces la contraseña. Recuerda que estás usando la terminal y no verás lo que estás escribiendo.
El programa te ofrecerá aceptar los valores por defecto o completar información adicional. Te sugiero aceptar la configuración por defecto.
Ahora procedemos a asignar al nuevo usuario poderes de administrador
usermod -aG sudo username
Protegiendo al usuario Root
Si tu proveedor de hosting te creó un usuario Root, probablemente también haya generado una contraseña que cumpla con algunas recomendaciones de seguridad. Es recomendable cambiarla con el comando
code>sudo passwd root
Ten presente los siguientes consejos:
- No uses palabras que se puedan encontrar en el diccionario.
- Combina símbolos y caracteres alfanuméricos.
- Escribe una contraseña lo más larga que puedas y usa un gestor para almacenarla.
Puedes bloquear al usuario root con el siguiente comando
sudo passwd -l root
Y desbloquearlo asignándole un nuevo password con este:
sudo passwd root
Asegurando el acceso remoto
Recuerda que este artículo se pensó para hablar de servidores privados virtuales. Es posible que tu proveedor te permita acceder al servidor virtual usando el navegador, pero lo más probable es que accedas en forma remota usando el protocolo SSH. Una capa adicional de seguridad es inhabilitar el uso del usuario Root en forma remota.
Esto lo hacemos con:
sudo nano /etc/ssh/sshd_config
Buscamos esta línea
PermitRootLogin
Y cuando la encontramos cambiamos Yes por No.
Ya que estamos en eso, busca la siguiente línea:
PermitEmptyPasswords
Y asegúrate que está configurada en NO
Guarda los cambios con CTRL+X