Configuración del servidor

Cómo realizar la configuración inicial de un Ubuntu 18.04

Cuando compras un nuevo servidor Ubuntu, hay algunos pasos de configuración que debes tener en cuenta antes de nada. Con esto aumentarás la seguridad y la usabilidad del servidor, y le darás una base sólida para poder realizar más acciones posteriormente.

Paso 1 - Iniciar sesión con el usuario root

Para iniciar sesión en el servidor, lo único que necesitas es conocer la dirección IP pública del servidor y la contraseña del usuario root:

ssh [email protected]<server-ip>

A continuación, te pedirá la contraseña del usuario root, y si es la primera vez que inicias sesión en el servidor, también te pedirá que la cambies.

¿Quién es el usuario root?

El usuario root es el usuario administrador en un entorno Linux, y por lo tanto tiene muchos privilegios. Debido a ello, es desaconsejarle usarlo de forma regular para evitar realizar cambios que afecten al sistema por accidente.

Paso 2 - Crear un nuevo usuario

Una vez que hayas iniciado sesión con el usuario root, agrega un nuevo usuario, que será el que utilices a partir de ahora para acceder al servidor.

Por ejemplo, para crear un nuevo usuario llamado “mikel”:

adduser mikel

A continuación hay que contestar a varias preguntas, entre ellas la contraseña de la cuenta. Introduce una contraseña segura y, opcionalmente, completa la información adicional. Esto no es necesario y puedes pulsar ENTER en cualquier campo que desees omitir.

Paso 3 - Asignar al nuevo usuario privilegios de root

Hasta ahora, has creado un nuevo usuario con los privilegios de cuenta regular. Sin embargo, es posible que de vez en cuando necesites realizar tareas administrativas.

Para evitar tener que cerrar la sesión de tu nuevo usuario y volver a iniciar sesión con el usuario root, puedes establecer un “superusuario” para tu cuenta. Esto te permitirá ejecutar comandos con privilegios de root simplemente colocando la palabra sudo antes de cada comando.

Para añadir dichos privilegios a tu nuevo usuario, tienes que añadir a este último al grupo sudo:

usermod -aG sudo mikel

Ahora ya puedes ejecutar comandos con privilegios de superusuario con el usuario “mikel”.

Paso 4 - Añadir autenticación mediante claves SSH (recomendado)

El siguiente paso es configurar la autenticación mediante claves SSH para el nuevo usuario.

Generar una par de llaves pública/privada

Si todavía no dispones de un par de llaves SSH, que consiste en una llave púbica y otra privada, es necesario generar uno. Si ya dispones de uno, puedes saltar al siguiente paso.

Para generar un par de llaves, ejecuta el siguiente comando en la terminal de tu ordenador:

ssh-keygen

A continuación verás el siguiente mensaje:

ssh-keygen output
 Generating public/private rsa key pair.
 Enter file in which to save the key (/Users/<username>/.ssh/id_rsa):

Pulsa la tecla ENTER para aceptar el nombre del archivo y la ruta (o introduce un nuevo nombre).

Después, te pedirá un passphrase (o frase de contraseña) para asegurar la llave. Puedes dejarla en blanco si quieres.

TIP

Si dejas el passphrase en blanco, podrás utilizar la llave privada para la autenticación sin introducir ninguna frase. Si introduces un passphrase, necesitarás ambas, la llave privada y la contraseña para iniciar sesión. Te recomiendo que asegures tus llaves con passphrases.

Esto habrá generado una llave privada id_rsa y una llave pública id_rsa.pub en el directorio ~/.ssh.

Copiar la llave pública en el servidor

Después de generar un par de llaves SSH, tienes que copiar la llave pública en el nuevo servidor.

Para ello, utiliza el script ssh-copy-id especificando el usuario y la dirección IP de tu servidor:

ssh-copy-id [email protected]<server-ip>

Después de proporcionar la contraseña del usuario, tu llave pública se agregará al archivo ~/.ssh/authorized_keys del usuario remoto. Ahora ya podrás autenticarte con tu llave privada cuando accedas mediante SSH.

Paso 5 - Deshabilitar la autenticación con contraseña (recomendado)

Ahora que tu nuevo usuario puede usar las llaves SSH para iniciar sesión, puedes aumentar la seguridad de tu servidor desactivando la autenticación por contraseña. Es decir, la única manera que tendrás de iniciar sesión en el servidor es poseer la llave privada que se combina con la llave pública instalada.

WARNING

¡Haz esto sólo si ya has instalado una llave pública para tu usuario! De lo contrario, no podrás acceder al servidor.

Abre la configuración del daemon SSH:

sudo nano /etc/ssh/sshd_config

Busca la línea que dice PasswordAuthentication, borra el comentario eliminando el #, y cambia su valor a “no”:

# /etc/ssh/sshd_config

PasswordAuthentication no

Además, tienes que comprobar el valor de otras dos directivas, que se establecen de forma predeterminada. Si no has modificado este archivo anteriormente, no necesitarás tocar nada:

# /etc/ssh/sshd_config

PubkeyAuthentication yes
ChallengeResponseAuthentication no

Cuando termines de realizar cambios, guarda y cierra el archivo (crtl-x, Y, ENTER).

Después ejecuta esto para recargar el daemon SSH:

sudo systemctl reload sshd

Finalmente, la autenticación de contraseña está deshabilitada, y el servidor ahora sólo es accesible mediante autenticación por llaves SSH.

Paso 6 - Probar la nueva configuración SSH

Ahora, antes de salir del servidor, debes probar la nueva configuración. No desconectes la sesión actual hasta que confirmes que puedes iniciar sesión correctamente a través de SSH.

En una nueva terminal de tu ordenador, inicia sesión en el servidor utilizando el nuevo usuario creado anteriormente:

ssh [email protected]<server-ip>

Si configuraste la autenticación por llave pública, se utilizará automáticamente tu llave privada como autenticación. De lo contrario, se te pedirá la contraseña del usuario remoto.

TIP

Nota sobre la autenticación con llaves SSH: Si creaste un /passphrase/ para las llaves SSH, se te pedirá al acceder. De lo contrario, no se te pedirá ninguna contraseña.

Paso 7 - Configurar un firewall básico

Los servidores Ubuntu 18.04 pueden usar el firewall UFW para asegurarse de que sólo se permiten conexiones a ciertos servicios.

Las diferentes aplicaciones que utilices pueden registrar sus perfiles con UFW después de su instalación. Por ejemplo, OpenSSH, el servicio que te permite conectarte al servidor por SSH, tiene un perfil registrado con UFW.

Para ver la lista de aplicaciones disponibles:

sudo ufw app list
Output
Available applications:
  OpenSSH

Para asegurarte de que el firewall permita conexiones SSH para que puedas volver a conectarte la próxima vez, puedes permitir estas conexiones escribiendo:

sudo ufw allow OpenSSH

Ahora tienes que habilitar el firewall escribiendo:

sudo ufw enable

Para ver el estado del firewall:

sudo ufw status

Bibliografía