Configuración básica de un servidor con Ubuntu 20.04

Introducción

Cuando crees por primera vez un nuevo servidor Ubuntu 20.04, debes realizar algunos pasos de configuración importantes como parte de la configuración básica. Estos pasos aumentarán la seguridad y la usabilidad de tu servidor, y te proporcionarán 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, puede seguir una guía sobre cómo conectarte con SSH, que cubra este proceso en detalle.

Si aún no estás conectado a tu servidor, inicia sesión ahora como usuario root con el siguiente comando. No olvides 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. Esto 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 que tiene privilegios muy amplios. Debido a los mayores privilegios de la cuenta root, se te desaconseja 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.

El siguiente paso es configurar una nueva cuenta de usuario con privilegios reducidos para el uso diario. Más adelante, te enseñaremos cómo obtener mayores privilegios solo durante los momentos en que los necesites.

Paso 2 – Crear un nuevo usuario

Una vez que hayas iniciado sesión como root, estamos preparados para agregar la nueva cuenta de usuario. En el futuro, iniciaremos sesión con esta nueva cuenta en lugar de root.

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

Se te harán algunas preguntas, comenzando con la contraseña de la cuenta.

Ingresa una contraseña segura y, opcionalmente, debes completar cualquier información adicional si lo deseas. Esto no es obligatorio y puedes presionar ENTER en cualquier campo que desees omitir.

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 privilegios de superusuario o 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, debemos agregar el usuario al grupo sudo. Por defecto, en Ubuntu 20.04, los usuarios que son miembros del grupo sudo pueden usar el comando sudo.

Como root, ejecuta este comando para agregar tu nuevo usuario al grupo sudo. Debes sustituir el nombre del usuario cesar con tu nuevo usuario:

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

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

Los servidores Ubuntu 20.04 pueden usar el firewall UFW para asegurarte de que solo se permitan conexiones a ciertos servicios. Podemos configurar un firewall básico muy fácilmente usando esta aplicación.

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

Las aplicaciones pueden registrar tus perfiles con UFW después de la instalación. Estos perfiles permiten a UFW administrar estas aplicaciones por nombre. OpenSSH, el servicio que nos permite conectarnos a nuestro servidor ahora, tiene un perfil registrado con UFW.

Puedes ver esto escribiendo:

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

Después, podemos habilitar el firewall escribiendo:

Escribe y y debes presionar ENTER para continuar. Puedes ver que las conexiones SSH todavía están permitidas escribiendo:

Como el firewall actualmente bloquea todas las conexiones, excepto SSH. Si instalas y configuras servicios adicionales, deberás ajustar la configuración de firewall para permitir el tráfico. Puedes conocer algunas operaciones comunes de UFW en nuestra guía de configuración básica de UFW.

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

Ahora que tenemos un usuario habitual para el uso diario, debemos asegurarnos de que podemos ingresar SSH directamente a la cuenta.

Nota: Hasta que verifiques que puedes iniciar sesión y usar con sudo con 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.

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 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 en 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 antes sudo:

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 Ubuntu 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 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. Entonces podemos copiar ese archivo y la estructura del directorio a nuestra nueva cuenta de usuario en nuestra sesión existente.

La forma más simple 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 resaltadas 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 rsync a continuación, asegúrate de que el directorio de origen (~/.ssh) no 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 al directorio ~/.ssh de inicio del usuario sudo 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, debes abrir una nueva sesión de la terminal en tu máquina local y usa SSH con tu nuevo nombre de usuario:

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).

¿Qué debes hacer ahora?

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