Configuración inicial del servidor con Rocky Linux 8

Introducción

Cuando creas un nuevo servidor Rocky Linux 8 por primera vez, hay algunos pasos de configuración que debes seguir al principio 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 del usuario root. Si aún no has iniciado sesión en tu servidor, es posible que desees seguir nuestra documentación sobre cómo conectar tu Droplet con SSH, que cubre este proceso en detalle.

Si aún no estás conectado a tu servidor, inicia sesión como usuario root ahora utilizando el siguiente comando (sustituye la parte resaltada del comando con la dirección IP pública de tu servidor):

  1. ssh root@your_server_ip

Acepta la advertencia sobre la autenticidad del host si aparece. Si estás utilizando autenticación de contraseña, proporciona tu contraseña de root para iniciar sesión. Si estás utilizando una clave SSH protegida con contraseña, es posible que se te solicite ingresar la contraseña 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, es posible que también se te solicite cambiar 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 privilegios elevados de la cuenta de root, se recomienda no utilizarla regularmente. Esto se debe a que parte del poder inherente con la cuenta de root es la capacidad de realizar cambios muy destructivos, incluso por accidente.

Por lo tanto, el siguiente paso es configurar una cuenta de usuario alternativa con un alcance reducido para el trabajo diario. Esta cuenta seguirá pudiendo obtener privilegios aumentados 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 utilizaremos para iniciar sesión a partir de ahora.

Este ejemplo crea un nuevo usuario llamado sammy, pero debes reemplazarlo con el nombre de usuario que prefieras:

  1. adduser sammy

A continuación, establece una contraseña segura para el usuario sammy:

  1. passwd sammy

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

Paso 3 — Concesión de Privilegios Administrativos

Ahora tenemos una nueva cuenta de usuario con privilegios de cuenta regulares. Sin embargo, a veces puede que necesitemos realizar tareas administrativas.

Para evitar tener que cerrar sesión de nuestro usuario regular e iniciar sesión nuevamente como la cuenta root, podemos configurar lo que se conoce como privilegios de “superusuario” o root para nuestra cuenta regular. Esto permitirá que nuestro usuario regular ejecute comandos con privilegios administrativos colocando la palabra sudo antes de cada comando.

Para agregar estos privilegios a nuestro nuevo usuario, necesitamos agregar el nuevo usuario al grupo wheel. Por defecto, en Rocky Linux 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 (sustituye la palabra resaltada con tu nuevo nombre de usuario):

  1. usermod -aG wheel sammy

Ahora, cuando inicies sesión como tu usuario regular, puedes escribir sudo antes de los comandos 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 tu servidor, excepto aquellos puertos/servicios que hayas aprobado explícitamente. Rocky Linux tiene un servicio llamado firewalld para realizar esta función. Se utiliza una herramienta llamada firewall-cmd para configurar las políticas de firewall de firewalld.

Nota: Si tus servidores se ejecutan en DigitalOcean, puedes optar por utilizar Firewalls de Cloud de DigitalOcean en lugar de firewalld. Recomendamos utilizar solo un firewall a la vez para evitar reglas conflictivas que pueden ser difíciles de depurar.

Primero, instala firewalld:

  1. dnf install firewalld -y

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

  1. systemctl start firewalld

Verifica el estado del servicio para asegurarte de que haya iniciado:

  1. systemctl status firewalld
Output
● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-02-06 16:39:40 UTC; 3s ago Docs: man:firewalld(1) Main PID: 13180 (firewalld) Tasks: 2 (limit: 5059) Memory: 22.4M CGroup: /system.slice/firewalld.service └─13180 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid

Ten en cuenta que está tanto activo como habilitado, lo que significa que se iniciará por defecto si el servidor se reinicia.

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

Primero, veamos qué servicios ya están permitidos:

  1. firewall-cmd --permanent --list-all
Output
public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: cockpit dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

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

  1. firewall-cmd --get-services

Para agregar un servicio que debería estar permitido, usa la bandera --add-service:

  1. firewall-cmd --permanent --add-service=http

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 que recargues el firewall:

  1. firewall-cmd --reload

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

Paso 5 — Habilitar Acceso Externo para Tu Usuario Regular

Ahora que tenemos un usuario regular no root para el uso diario, necesitamos asegurarnos de poder usarlo para hacer SSH en nuestro servidor.

Nota: Hasta que verifiques que puedes iniciar sesión y usar sudo con tu nuevo usuario, recomendamos mantener la sesión iniciada como root. De esta manera, si tienes problemas, puedes solucionarlos y realizar los cambios necesarios como root. Si estás utilizando un Droplet de DigitalOcean y experimentas problemas con tu conexión SSH de root, puedes iniciar sesión en el Droplet usando la Consola de DigitalOcean.

El proceso para configurar el acceso SSH para tu nuevo usuario depende de si la cuenta root de tu servidor utiliza una contraseña o claves SSH para la autenticación.

Si la Cuenta Root Utiliza Autenticación por Contraseña

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

  1. ssh sammy@your_server_ip

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

  1. sudo command_to_run

Se te solicitará la contraseña de tu usuario regular al usar sudo por primera vez en cada sesión (y periódicamente después).

Para mejorar la seguridad de tu servidor, te recomendamos encarecidamente configurar claves SSH en lugar de utilizar autenticación por contraseña. Sigue nuestra guía sobre cómo configurar claves SSH en Rocky Linux 8 para aprender cómo configurar la autenticación basada en claves.

Si la cuenta de root utiliza autenticación por clave SSH

Si iniciaste sesión en tu cuenta root usando claves SSH, entonces la autenticación por contraseña está deshabilitada para SSH. Necesitarás añadir 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 ~/.ssh/authorized_keys de la cuenta root en el servidor, podemos copiar ese archivo y estructura de directorios a nuestra nueva cuenta de usuario.

La forma más sencilla de copiar los archivos con los permisos y propietarios correctos es utilizando el comando rsync. Esto copiará el directorio .ssh del usuario root, preservará los permisos y modificará los propietarios de los archivos, todo en un solo comando. Asegúrate de cambiar las partes resaltadas del comando a continuación para que coincidan con el nombre de tu usuario regular:

Nota: El comando rsync trata de manera diferente las fuentes y los destinos que terminan con una barra diagonal al final que aquellos sin ella. Al usar rsync a continuación, asegúrate de que el directorio de origen (~/.ssh) no incluya una barra diagonal al final (verifica que no estés utilizando ~/.ssh/).

Si accidentalmente agregas una barra diagonal al final al comando, rsync copiará los contenidos del directorio ~/.ssh de la cuenta root al directorio principal del usuario sudo en lugar de copiar toda la estructura del directorio ~/.ssh. Los archivos estarán en la ubicación incorrecta y SSH no podrá encontrarlos ni usarlos.

  1. rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy

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

  1. ssh sammy@your_server_ip

Deberías iniciar sesión en la nueva cuenta de usuario sin usar una contraseña. Recuerda, si necesitas ejecutar un comando con privilegios administrativos, escribe sudo antes de él de esta manera:

  1. sudo command_to_run

Se te solicitará la contraseña de tu usuario regular al usar sudo por primera vez en cada sesión (y periódicamente después).

Conclusión

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

Source:
https://www.digitalocean.com/community/tutorials/initial-server-setup-with-rocky-linux-8