Cuando llega el momento de cambiar de servidor web y comenzar una nueva aventura, lo primero que hay que hacer después de crear una nueva instancia con tu SO Linux preferido (en mi caso Rocky Linux en Linode, Akamai), es crear una cuenta de usuario limitada y evitar que el usuario root tenga acceso al servidor.
- ¿Qué tiene de especial esta guía? Pues que no solo te explico cómo quitar el acceso al servidor del usuario root en Linux, sino que también te cuento que debes hacer en Webmin/Virtualmin al decidir tomar este camino (básicamente que tienes que hacer para no quedarte sin acceso a Webmin).
Todos comenzamos entrando en el servidor recién creado como usuario root, que tiene privilegios ilimitados y puede ejecutar cualquier comando, pero no es recomendable dejarlo activo para mejorar la seguridad del servidor. Es recomendable crear una cuenta de usuario limitada y usarla en nuestro día a día para realizar todas las tareas administrativas utilizando sudo.
Vale. Hacer todo esto no es muy complicado, pero hay que hacerlo con algo de cariño para evitar quedarnos fuera del servidor y no poder acceder. En mi caso, además, he tenido que hacer unas cuantas cosas más al tener instalado en el servidor Virtualmin/Webmin, el panel de control gratuito para servidores (una especie de cPanel/WHM, pero mejor). Por eso te voy a contar todo esto.
- Te puede interesar:
Añadimos una cuenta de usuario con permisos limitados
En mi caso lo he tenido que hacer en Rocky Linux. Sirve igual para CentOS, Fedora, Alma Linux, RHEL. Creamos el usuario y le damos un password (cambia usuario_ejemplo por el nombre que tú quieras). Son dos órdenes. Las realizó por separado para evitar confusiones:
useradd usuario_ejemplo
passwd usuario_ejemplo
Ahora tenemos que añadir este usuario al grupo wheel para que tenga privilegios sudo:
usermod -aG wheel usuario_ejemplo
Vale, ya tenemos creado el nuevo usuario y podemos entrar con él mediante SSH a nuestro servidor con un comando como este:
ssh usuario_ejemplo@tu_direccion_ip
Antes de quitar el acceso root a nuestro servidor, vamos a hacer algo en Webmin.
Quitamos el acceso root al panel de control Virtualmin/Webmin
Vamos al panel de control (que ya hemos instalado previamente. Es lo primero que hay que hacer después de crear el nuevo servidor) y en la sección Webmin navegamos hasta Webmin Users:

En esta sección, buscamos Webmin Groups y creamos uno nuevo:

Puedes llamar al grupo como quieras, en mi caso he puesto algoentremanos. Luego tienes que abrir el desplegable Avaliable Webmin modules y darle a Select All, para que todos los usuarios que luego vamos a meter en este grupo, puedan manejar Webmin y Virtualmin como administradores (lo que antes hacía root por defecto).

Después de crear el grupo, tienes que volver a la pantalla anterior y hacer clic en Convert Unix To Webmin Users:

Cuando estemos dentro, mucho ojo con una cosa:

Hay que marcar solo los usuarios con un grupo determinado, en este caso wheel, donde tenemos el usuario recién creado en el paso anterior, usuario_ejemplo. Luego tenemos que asignar los nuevos usuarios a un grupo de Webmin, el que hemos creado antes. Le damos a Convert Now.
Lo que hemos conseguido con esto, es no quedarnos fuera de Webmin cuando deshabilitemos el acceso root al servidor. Recuerda que estás accediendo a Webmin con este usuario root.
Antes de quitar el acceso root, asegúrate de comprobar que puedes acceder con tu nuevo usuario tanto a SSH como a Webmin. No quieres quedarte fuera de tu servidor, ¿no? ¡Ojo! En el peor de los casos, tu proveedor de hosting probablemente te ofrezca un acceso mediante consola (en el caso de Linode, mediante Lish).
Quitamos el acceso root en Webmin
Vale, volvemos a Webmin Users, seleccionamos root y en la sección Password elegimos: No Pasword accepted. Ya hemos quitado el acceso root a Webmin.

Quitamos el acceso root en SSH
Dos opciones. Hacerlo mediante conexión SSH o mediante el panel de control de Webmin.
Si vamos al panel de Webmin > Servers > SSH Server > Edit Config Files. Cambiamos la línea PermitRootLogin de yes a no. O podemos ir a Login and authentication options y poner Allow login by root en No. Al final damos al botón Apply Changes para que cargue la nueva configuración.

Otra opción. Accedemos mediante SSH a nuestro servidor y editamos el archivo de configuración del servidor SSH. Lo hacemos mediante Terminal (al final tienes que reiniciar el servidor SSH):
ssh root@tu_direccion_ip
vi /etc/ssh/sshd_config
PermitRootLogin no #Cambio de yes a no y salgo del editor vi dando a ESC y poniendo, :wq!
systemctl restart sshd
Después de hacer esto, ya no podemos usar el usuario root ni en Webmin ni para acceder mediante SSH al servidor. Compruébalo.
¿Proveedor de hosting que te recomiendo usar? Linode/Akamai. Con este link recibirás un crédito de 100 $, cuando añadas un método de pago válido a tu nueva cuenta. ¿Panel de control? Virtualmin/Webmin, que es gratuito (GPL).