Configuración básica de un servidor con CentOS 8

Introducción

Cuando crees por primera vez un nuevo servidor CentOS 8, hay algunos pasos de configuración que debes realizar desde el principio. Todo esto como parte de la configuración básica. Esto aumentará la seguridad y la usabilidad de tu servidor y te dará una base sólida para acciones posteriores.

Paso 1 – Iniciar sesión como root

Para iniciar sesión en tu servidor, necesitarás conocer la dirección IP pública de tu servidor. También necesitarás la contraseña o, si instalaste una clave SSH para la autenticación, la clave privada para la cuenta del usuario root.

Si aún no has iniciado sesión en tu servidor, puedes aprender cómo conectarte a su Droplet con SSH.

Si aún no estás conectado a tu servidor, debes iniciar sesión como usuario root ahora usando el siguiente comando. Debes sustituir la parte your_server_ip del comando con la dirección IP pública de tu servidor:

Debes aceptar la advertencia sobre la autenticidad del host si aparece. Si estás utilizando la autenticación de contraseña, proporciona tu contraseña de root para iniciar sesión.

Si estás utilizando una clave SSH que está protegida con frase de contraseña, es posible que se te solicite que la ingreses. Sucederá la primera vez que uses la clave en cada sesión. Si es la primera vez que inicias sesión en el servidor con una contraseña, también se te puede solicitar que cambies la contraseña de root.

Acerca de Root

El usuario root es el usuario administrativo en un entorno Linux, y tiene privilegios muy amplios. Debido a los mayores privilegios de la cuenta root, te desaconsejamos usarla regularmente. Esto se debe a que parte del poder inherente a la cuenta root es la capacidad de realizar cambios muy destructivos, incluso por accidente.

Como tal, el siguiente paso es configurar una cuenta de usuario alternativa con un alcance de influencia reducido para el trabajo diario. Esta cuenta aún podrá obtener mayores privilegios cuando sea necesario.

Paso 2 – Crear un nuevo usuario

Una vez que hayas iniciado sesión como root, puedes crear la nueva cuenta de usuario que usaremos para iniciar sesión a partir de ahora.

En este ejemplo crearemos un nuevo usuario llamado cesar, pero debes reemplazarlo con cualquier nombre de usuario que prefieras:

A continuación, debes establecer una contraseña segura para el usuario cesar:

Se te pedirá que ingreses la contraseña dos veces. Después de hacerlo, tu usuario estará listo para usar, pero primero le daremos a este usuario privilegios adicionales para usar el comando sudo. Esto nos permitirá ejecutar comandos como root cuando sea necesario.

Paso 3 – Conceder privilegios administrativos

Ahora, tenemos una nueva cuenta de usuario con privilegios de cuentas regulares. Sin embargo, a veces podemos necesitar hacer tareas administrativas.

Para evitar tener que cerrar sesión en nuestro usuario normal y volver a iniciar sesión como la cuenta root, podemos configurar lo que se conoce como “superusuario” o privilegios root para nuestra cuenta normal.

Esto permitirá a nuestro usuario normal ejecutar comandos con privilegios administrativos poniendo la palabra sudo antes de cada comando.

Para agregar estos privilegios a nuestro nuevo usuario, necesitamos agregar el nuevo usuario al grupo wheel. De manera predeterminada, en CentOS 8, los usuarios que pertenecen al grupo wheel pueden usar el comando sudo.

Como root, ejecuta este comando para agregar tu nuevo usuario al grupo wheel. Debes sustituir la palabra cesar con tu nuevo nombre de usuario:

Ahora, cuando inicies sesión como usuario habitual, puedes escribir sudo antes de los comandos antes para realizar acciones con privilegios de superusuario.

Paso 4 – Configuración de un firewall básico

Los firewalls proporcionan un nivel básico de seguridad para tu servidor. Estas aplicaciones son responsables de denegar el tráfico a todos los puertos de su servidor, a excepción de los puertos/servicios que has aprobado explícitamente. CentOS tiene un servicio llamado firewalld para realizar esta función. Una herramienta llamada firewall-cmd se utiliza para configurar las políticas del firewall firewalld.

Nota: Te recomendamos usar solo un firewall a la vez para evitar reglas en conflicto que pueden ser difíciles de depurar.

Primero debes instalar firewalld:

La configuración predeterminada de firewalld permite conexiones ssh, por lo que podemos activar el firewall de inmediato:

Puedes verificar el estado del servicio para asegurarte de que se inició:

Ten en cuenta que esté activeenabled, lo que significa que se iniciará de forma predeterminada si se reinicia el servidor.

Ahora que el servicio está en funcionamiento, podemos usar la utilidad firewall-cmd para obtener y establecer información de políticas para el firewall.

Primero veremos qué servicios ya están permitidos:

Para ver los servicios adicionales que puedes habilitar por nombre, escribe:

 

Para agregar un servicio que debería permitirse, debes usar el indicador –add-service:

Esto agregaría el servicio http y permitiría el tráfico TCP entrante al puerto 80. La configuración se actualizará después de volver a cargar el firewall:

Recuerda que deberás abrir explícitamente el firewall (con servicios o puertos) para cualquier servicio adicional que puedas configurar más adelante.

Paso 5 – Habilitación del acceso externo para tu usuario habitual

Ahora que tenemos un usuario no root habitual para uso diario, debemos asegurarnos de que podamos usarlo para SSH en nuestro servidor.

Nota: Hasta que verifiques que puedes iniciar sesión y usarla con sudo tu nuevo usuario, te recomendamos que permanezcas conectado como root. De esta manera, si tienes problemas, puedes solucionar problemas y realizar los cambios necesarios como root.

Si la cuenta root usa autenticación de contraseña

Si iniciaste sesión en tu cuenta root con una contraseña, la autenticación de contraseña está habilitada para SSH. Puedes usar SSH a tu nueva cuenta de usuario abriendo una nueva sesión de terminal y usando SSH con tu nuevo nombre de usuario:

Después de ingresar la contraseña de tu usuario normal, iniciarás sesión. Recuerda, si necesitas ejecutar un comando con privilegios administrativos, escribe sudo antes:

Se te solicitará tu contraseña de usuario habitual cuando utilices sudo por primera vez cada sesión (y periódicamente después).

Para mejorar la seguridad de tu servidor, te recomendamos que configures las claves SSH en lugar de usar la autenticación de contraseña. Puedes seguir nuestra guía sobre la configuración de claves SSH en CentOS 8 para aprender cómo configurar la autenticación basada en claves.

Si la cuenta root usa autenticación de clave SSH

Si iniciaste sesión en tu cuenta root utilizando claves SSH, la autenticación de contraseña se deshabilita para SSH.

Deberás agregar una copia de tu clave pública al archivo ~/.ssh/authorized_keys del nuevo usuario para iniciar sesión correctamente.

Dado que tu clave pública ya está en el archivo de la cuenta root ~/.ssh/authorized_keys en el servidor, podemos copiar esa estructura de archivo y directorio a nuestra nueva cuenta de usuario.

La forma más sencilla de copiar los archivos con la propiedad y los permisos correctos es con el comando rsync. Esto copiará el directorio .ssh del usuario root, preservará los permisos y modificará los propietarios del archivo, todo en un solo comando.

Asegúrate de cambiar las partes cesar del comando a continuación para que coincida con el nombre de tu usuario habitual:

Nota: El comando rsync trata los orígenes y destinos que terminan con una barra inclinada final de manera diferente a aquellos sin una barra inclinada final. Cuando uses a continuación rsync, asegúrate de que el directorio de origen (~/.sshno incluya una barra inclinada final. (Debes verificar para asegurarte de que no estés usando ~/.ssh/).

Si agregas accidentalmente una barra diagonal al comando, rsync copiará el contenido del directorio de la cuenta root ~/.ssh al directorio sudo de inicio del usuario. Esto en lugar de copiar toda la estructura ~/.ssh del directorio.

Los archivos estarán en la ubicación incorrecta y SSH no podrá encontrarlos ni utilizarlos.

Ahora, de vuelta en la nueva terminal en tu máquina local, abre una nueva sesión SSH con tu usuario no root:

Debes iniciar sesión en la nueva cuenta de usuario sin usar una contraseña. Recuerda, si necesitas ejecutar un comando con privilegios administrativos, debes escribir sudo antes, así:

Se te solicitará tu contraseña de usuario habitual cuando utilices sudo por primera vez cada sesión (y periódicamente después).

Conclusión

En este punto, tienes una base sólida para tu servidor. Puedes instalar cualquier software que necesites en tu servidor ahora.