Asegurar la cuenta root en Proxmox VE
Una de las cosas que me gustan de Ubuntu es su tratamiento de la cuenta root. Como probablemente ya sepas, En Ubuntu la cuenta root se encuentra deshabilitada de forma predeterminada y, para las tareas de administración se utiliza una cuenta diferente, creada durante el proceso de instalación, que forma parte del grupo de administradores.
Este comportamiento de Ubuntu dificulta la tarea a los ataques automáticos sobre la cuenta root del sistema. Sencillamente, porque no está disponible para ser atacada. Por otro lado, un ataque automático tampoco conocerá el nombre que hemos decidido para la cuenta con privilegios administrativos y tampoco lo tendrá fácil por ese camino.
Sin embargo, Proxmox VE está basado en Debian, que no comparte esta forma de trabajar. De hecho, la cuenta root es la única disponible cuando finalizamos la instalación del sistema.
Por este motivo, hoy aprenderemos a crear una cuenta de reemplazo para root, la habilitaremos para que sea posible realizar tareas administrativas desde ella y configuremos la interfaz web para que facilite también su uso en tareas administrativas. Por último, deshabilitaremos la cuenta root.
En el artículo de hoy supondremos que ya dispones de un servidor Proxmox VE en tu red. Si no es así, o necesitas más ayuda con su configuración inicial, puedes recurrir a otros artículos publicados en SomeBooks.es sobre este tema.
Crear la nueva cuenta
Lo primero será abrir una ventana de consola en el servidor donde poder escribir comandos. Para lograrlo, hacemos clic en el panel izquierdo sobre el nombre del servidor.
Para acceder al entorno de administración de Proxmox VE deberás abrir tu navegador favorito y escribir en la barra de direcciones la url del servidor. Para nuestro ejemplo, será la https://192.168.1.4:8006
A continuación, tendrás que autenticarte con las credenciales que creaste durante el proceso de instalación.
Finalmente, te encontrarás en el administrador web de Proxmox VE.
Un instante después, aparecerá una nueva ventana, que nos muestra la terminal del servidor. En ella, lo primero que haremos será instalar el programa sudo.
El programa sudo, permite que una cuenta de usuario pueda ejecutar programas con los privilegios de una cuenta de usuario diferente. Y se utiliza habitualmente para ejecutar programas usando privilegios de root.
sudo basa su funcionamiento en el archivo sudoers, que establece una lista de control de acceso (ACL) que recoge qué comandos podrá ejecutar cada cuenta de usuario.
Aunque sudo viene instalado de forma predeterminada en algunas distribuciones (como es el caso de Ubuntu), no sucede lo mismo con Debian, que es la distribución en la que está basado Proxmox VE.
Para instalar sudo, bastará con escribir una orden como esta:
apt-get install sudo
Lo siguiente será crear el nuevo usuario. Algo para lo que bastará con escribir lo siguiente.
adduser panoramix
Para completar la tarea, el comando adduser nos solicita la contraseña para el nuevo usuario (como siempre, por duplicado para evitar errores tipográficos) y una serie de datos complementarios. En cualquier caso, solo es necesaria la contraseña.
Al final, nos pide que verifiquemos los datos introducidos y, si todo es correcto, que pulsemos la tecla Y.
Cuando se haya completado la tarea, el siguiente paso será añadir el nuevo usuario al grupo sudoers, algo para lo que solo tendremos que escribir lo siguiente:
adduser panoramix sudo
… Y comprobamos que el comando se ejecuta de forma satisfactoria.
Comprobar que podemos iniciar sesión SSH con la nueva cuenta
Si estuviésemos administrando el servidor Proxmox VE desde otro equipo con GNU/Linux, para iniciar sesión en él usando la nueva cuenta, bastaría con abrir una ventana de terminal y escribir algo como esto:
ssh panoramix@192.168.1.4:22
…Bueno, en este caso incluso podríamos prescindir del número de puerto (22), porque es el valor predeterminado.
Sin embargo, como hoy estamos accediendo a nuestro servidor desde un ordenador con Windows 10, necesitaremos la ayuda del programa PuTTY.
Si necesitas ayuda para descargar e instalar PuTTY, puedes echar un vistazo a nuestro artículo SSH (parte III): Acceder desde otro equipo con Windows 10. Lo publicamos para aprender a utilizar una
Una vez que nos encontremos en la ventana principal de PuTTY solo tendremos que escribir la dirección IP del servidor. Si no estuviésemos usando el puerto predeterminado, también deberíamos especificarlo.
Veremos que, inmediatamente, es abre una ventana de texto donde se va a establecer la comunicación con la terminal del servidor.
Sin embargo, como es la primera vez que intentamos acceder, PuTTY nos muestra una ventana donde avisa de que no conoce la clave pública que le está enviando el servidor y la muestra para que podamos validarla.
Además, nos ofrece varias opciones:
-
Haciendo clic sobre el botón Sí, añadiremos la clave al archivo de claves de PuTTY para que la próxima vez reconozca al servidor y no vuelva a mostrar este mensaje.
-
Haciendo clic sobre el botón No, estableceremos igualmente la conexión con el servidor, pero PuTTY no guardará su clave pública.
-
Haciendo clic sobre el botón Cancelar, abortaremos el intento de conexión.
En nuestro caso, estamos en un entrono de red controlado y sabemos que el servidor al que nos estamos conectando es confiable.
Al cerrar la ventana de aviso, la ventana de texto que había detrás nos solicita el nombre de usuario (login as:) y la contraseña (password).
Observa que el prompt se corresponde con el del equipo remoto. Esto significa que la cuenta se encuentra activa y que ya podríamos comenzar a escribir comandos en el sistema.
Cuando acabemos, basta con escribir la orden exit. Esto hará que se cierre la sesión en el servidor y la ventana de texto de PuTTY. Si en lugar de escribir la orden exit cerramos directamente la ventana de texto, PuTTY nos preguntará si queremos cerrar la sesión.
Habilitar características administrativas para la cuenta en Proxmox VE
En los apartados anteriores hemos creado la nueva cuenta, hemos permitido que realice tareas administrativas y hemos comprobado que podemos usarla para iniciar ses1ón de forma remota. Lo siguiente será asegurarnos de que también podemos utilizar esa misma cuenta para sustituir a root en la interfaz de administración web.
Para lograrlo, comenzaremos creando un nuevo grupo de usuarios y asignándole permisos administrativos. Lo conseguiremos haciendo clic sobre el elemento Datacenter del panel izquierdo. A continuación, en el panel central desplegaremos la categoría Permissions y en su interior elegimos Groups.
Al hacerlo, obtendremos una ventana emergente donde podemos escribir el nombre para el nuevo grupo. Opcionalmente, también podemos escribir un comentario.
A continuación, para asignar privilegios administrativos al nuevo grupo, hacemos clic, en el panel central, sobre la entrada Permissions. Después, en el panel derecho, desplegamos la lista asociada al botón Add.
Esto abrirá una nueva ventana donde deberemos indicar la ruta sobre la que asignamos el permiso (en nuestro caso, el directorio raíz), el nombre del grupo al que se los asignamos (que será el grupo que acabamos de crear) y el nivel de permiso que le otorgamos (que será Administrator).
También debemos asegurarnos de que permanezca marcada la casilla Propagate.
Después de esto, solo nos faltará convertir al usuario en miembro del grupo administradores para que adquiera todos sus permisos. Esto lo logramos haciendo clic sobre la categoría Users que encontramos en el panel central, dentro de Permissions.
El resultado será una nueva ventana donde indicaremos el nombre de la cuenta a la que le otorgaremos los permisos, el ámbito en el que tendrán efecto (que será Linux PAM standard authentication) y el grupo al que pertenecerá la cuenta (en nuestro ejemplo, Administradores)
El aspecto final de la pantalla será como en la siguiente imagen.
Comprobar que los ajustes funcionan correctamente
Para comprobar que los ajustes anteriores son correctos, cerraremos sesión con el usuario actual (root) y la abriremos con la nueva cuenta.
Esto nos llevará de vuelta a la pantalla de autenticación del principio.
Si todo va bien, se iniciará sesión igual que lo hacía con la cuenta root. Ahora debemos comprobar que podemos hacer tareas administrativas sin complicaciones.
Deshabilitar la cuenta root
Y ya por fin llegamos al último paso, que consiste en deshabilitar la cuenta de root para que sea imposible iniciar sesión con ella.
Para lograrlo, volveremos a iniciar sesión remota con SSH usando el programa PuTTY y la nueva cuenta.
A continuación, deshabilitamos la cuenta root con la siguiente orden:
sudo passwd -dl root
El comando passwd se utiliza para cambiar la contraseña de una cuenta de usuario. En este caso, de la cuenta root. Sin embargo, usando el argumento -d, lo que estamos indicando en realidad es que se elimine dicha contraseña. Así, queda inmediatamente deshabilitada.
Por su parte, el argumento -l modifica el valor de la contraseña almacenada para que no coincida con ningún posible valor cifrado (le añade un carácter ‘!’ al principio).
Observa que, de paso, estamos comprobando que podemos realizar tareas administrativas desde la cuenta nueva.
El comando contestará de que la información de caducidad de la cuenta ha cambiado.
Para comprobar su eficacia, podemos tratar de autenticarnos con la cuenta root.
También podemos intentarlo en la interfaz de administración.
Y con esto podemos dar la tarea por concluida. Espero que te haya resultado útil.