Configuración inicial del servidor con Debian 11

Introducción

Cuando creas un nuevo servidor Debian 11, hay algunos pasos de configuración que debes realizar al principio como parte de la configuración básica. Esto aumentará la seguridad y usabilidad de tu servidor y te proporcionará una base sólida para acciones posteriores.

En este tutorial, aprenderemos cómo iniciar sesión en nuestro servidor como usuario root, crear un nuevo usuario con privilegios de administrador y configurar un firewall básico.

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 de la cuenta de usuario root. Si aún no has iniciado sesión en tu servidor, puede que quieras seguir nuestra guía sobre cómo conectarte a tu Droplet con SSH, que cubre este proceso en detalle.

Si aún no estás conectado a tu servidor, adelante e inicia sesión como usuario root 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

Aceptar la advertencia sobre la autenticidad del host si aparece. Si está utilizando autenticación de contraseña, proporcione su contraseña de root para iniciar sesión. Si está utilizando una clave SSH protegida con una frase secreta, es posible que se le solicite ingresar la frase secreta la primera vez que use la clave en cada sesión. Si es la primera vez que inicia sesión en el servidor con una contraseña, es posible que también se le solicite cambiar la contraseña de root.

Sobre Root

El usuario root es el usuario administrativo en un entorno Linux que tiene privilegios muy amplios. Debido a los privilegios elevados de la cuenta root, se desaconseja utilizarla de forma regular. Esto se debe a que parte del poder inherente con la cuenta root es la capacidad de realizar cambios muy destructivos, incluso por accidente.

El siguiente paso es configurar una cuenta de usuario alternativa con un alcance reducido para el trabajo diario. Más adelante, explicaremos cómo obtener privilegios aumentados para aquellos momentos en que los necesite.

Paso 2 — Crear un Nuevo Usuario

Una vez que haya iniciado sesión como root, estaremos preparados para agregar la nueva cuenta de usuario que utilizaremos para iniciar sesión a partir de ahora.

Este ejemplo crea un nuevo usuario llamado sammy, pero deberías reemplazarlo con un nombre de usuario que te guste:

  1. adduser sammy

Se te harán algunas preguntas, empezando por la contraseña de la cuenta.

Ingresa una contraseña fuerte y, opcionalmente, completa cualquier información adicional que desees. Esto no es obligatorio y puedes simplemente presionar ENTER en cualquier campo que desees omitir.

A continuación, configuraremos este nuevo usuario con privilegios de administrador.

Paso 3 — Concesión de Privilegios Administrativos

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

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

Para agregar estos privilegios a nuestro nuevo usuario, necesitamos agregar el nuevo usuario al grupo sudo. Por defecto, en Debian 11, los usuarios que pertenecen al grupo sudo tienen permitido usar el comando sudo.

Como root, ejecuta este comando para agregar tu nuevo usuario al grupo sudo (sustituye la palabra resaltada con tu nuevo usuario):

  1. usermod -aG sudo sammy

Ahora, cuando inicias sesión como tu usuario regular, puedes escribir sudo antes de los comandos para ejecutar el comando con privilegios de superusuario.

Paso 4 — Configuración de un Firewall Básico

Los servidores Debian pueden utilizar firewalls para asegurarse de que solo se permitan ciertas conexiones a servicios específicos. En esta guía, instalaremos y utilizaremos el firewall UFW para ayudar a establecer políticas de firewall y gestionar excepciones.

Podemos utilizar el gestor de paquetes apt para instalar UFW. Actualiza el índice local para obtener la última información sobre los paquetes disponibles y luego instala el software de firewall UFW escribiendo:

  1. apt update
  2. apt install ufw

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

Los perfiles de firewall permiten a UFW gestionar conjuntos de reglas de firewall con nombres para aplicaciones instaladas. Los perfiles de algunos software comunes se incluyen con UFW de forma predeterminada y los paquetes pueden registrar perfiles adicionales con UFW durante el proceso de instalación. OpenSSH, el servicio que nos permite conectarnos a nuestro servidor ahora, tiene un perfil de firewall que podemos utilizar.

Puedes listar todos los perfiles de aplicación disponibles escribiendo:

  1. ufw app list
Output
Available applications: . . . OpenSSH . . .

Necesitamos asegurarnos de que el firewall permita conexiones SSH para poder volver a iniciar sesión la próxima vez. Podemos permitir estas conexiones escribiendo:

  1. ufw allow OpenSSH

A continuación, podemos habilitar el firewall escribiendo:

  1. ufw enable

Escribe y y presiona ENTER para proceder. Puedes ver que las conexiones SSH siguen permitidas escribiendo:

  1. ufw status
Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)

Como el firewall actualmente está bloqueando todas las conexiones excepto las SSH, si instalas y configuras servicios adicionales, deberás ajustar la configuración del firewall para permitir el tráfico aceptable. Puedes aprender algunas operaciones comunes de UFW en nuestra guía esencial de UFW.

Paso 5 — Habilitar Acceso Externo para tu Usuario Regular

Ahora que tenemos un usuario regular para uso diario, necesitamos asegurarnos de poder acceder por SSH directamente a la cuenta.

Nota: Hasta que verifiques que puedes iniciar sesión y usar sudo con tu nuevo usuario, recomendamos permanecer conectado 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, también 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 utilizando una contraseña, entonces la autenticación por contraseña está habilitada para SSH. Puedes conectarte por SSH a tu cuenta de nuevo usuario abriendo una nueva sesión de terminal y utilizando 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, si necesitas ejecutar un comando con privilegios administrativos, escribe sudo antes de él de esta manera:

  1. sudo command_to_run

Se te pedirá 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 Debian 11 para aprender cómo configurar la autenticación basada en claves.

Si la Cuenta de Root Utiliza Autenticación por Clave SSH

Si has iniciado sesión en tu cuenta root usando claves SSH, entonces la autenticación por contraseña está deshabilitada para SSH. Necesitarás agregar una copia de tu clave pública local 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 la estructura de directorios a nuestra cuenta de usuario nuevo en nuestra sesión existente con el comando cp. Después, podemos ajustar la propiedad de los archivos usando el comando chown.

Asegúrate de cambiar las partes resaltadas del comando a continuación para que coincidan con el nombre de tu usuario regular:

  1. cp -r ~/.ssh /home/sammy
  2. chown -R sammy:sammy /home/sammy/.ssh

El comando cp -r copia todo el directorio al directorio principal del nuevo usuario, y el comando chown -R cambia el propietario de ese directorio (y todo lo que hay dentro) al nombredeusuario:nombredegrupo especificado (Debian crea un grupo con el mismo nombre que tu nombre de usuario de forma predeterminada).

Ahora, abre una nueva sesión de terminal e inicia sesión a través de SSH con tu nuevo nombre de usuario:

  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 de administrador, escribe sudo antes de él de esta manera:

  1. sudo command_to_run

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

¿Qué hacer a partir de aquí?

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-debian-11