Pasos para realizar una correcta configuración de un servidor con Ubuntu

 08/Jul/2016 -   Sistemas
Pasos para realizar una correcta configuración de un servidor con Ubuntu

A la hora de montar un nuevo servidor que utilice el sistema operativo Ubuntu, hay algunos pasos básicos que deberíamos tener en cuenta para realizar una correcta configuración básica del mismo. Lo que se busca con esto es mejorar la seguridad y facilitar el uso del servidor, aportando una base sólida para llevar a cabo acciones posteriores.

Paso 1 – Login con el usuario root

Si queremos iniciar sesión en el servidor, lo primero que debemos conocer es la dirección IP pública de la máquina, así como la contraseña del usuario root. Para conectarnos como usuario root, debemos ejecutar la siguiente instrucción, sustituyendo la cadena “DIRECCION_IP” por la IP de la máquina.

ssh root@DIRECCION_IP

Para completar el proceso de inicio de sesión, deberemos aceptar la advertencia sobre la autenticidad del usuario para después acceder mediante el usuario root y su contraseña. Si es la primera vez que accedemos con este usuario, también se pedirá que cambiemos su contraseña.

Para lo que no estén familiarizados con el usuario root, se trata del usuario que tiene total control sobre el servidor y debido a esto, no se aconseja su uso de forma habitual ya que puede realizar cualquier tipo de cambio en la máquina que puede hacer que esta no funcione todo lo bien que debiera. De ahí que se recomiende crear un usuario alternativo con menor cantidad de privilegios.

Paso 2 – Crear un nuevo usuario

Una vez que nos hayamos logueado como usuario root, lo que haremos será añadir una nueva cuenta que utilizaremos para conectarnos a partir de ese momento.

En nuestro ejemplo, ese usuario recibirá el nombre de “demo” pero lo podéis llamar con cualquier otro nombre.

adduser demo

Al ejecutar esa instrucción, el sistema os realizará una serie de preguntas, empezando por la contraseña que tendrá el usuario. Se recomienda utilizar un password fuerte. Si lo vemos oportuno, podemos ir respondiendo al resto de preguntas, o bien ir pulsando la tenga “Intro” para saltárnosla ya que no se tratan de preguntas obligatorias.

Paso 3 – Privilegios root

El usuario creado dispone de ciertos privilegios, pero es posible que en determinadas situaciones tengamos que llevar a cabo tareas administrativas.

Para evitar tener que cerrar la sesión de nuestro usuario normal y volver a iniciar sesión con la cuenta raíz, podemos establecer lo que se conoce como “super usuario”, es decir, dotar de privilegios root a nuestra cuenta que hemos creado. Esto permitirá a este usuario ejecutar instrucción de administración, con tan solo anteponer la palabra sudo antes de cada comando.

Para añadir estos privilegios a nuestro nuevo usuario, tenemos que indicar que el nuevo usuario pertenece al grupo “sudo”. Para conseguirlo, basta con ejecutar la siguiente instrucción.

gpasswd –a demo sudo

De esta forma, nuestro usuario podrá ejecutar instrucciones con privilegio de superusuario.

Paso 4 – Añadir una public key de autenticación

Para mejorar la seguridad de la máquina, nuestra recomendación es que se configura una clave pública de autenticación para el nuevo usuario. Al configurar esto, estaremos aumentando la seguridad del servidor al requerir una clave privada SSH para conectarse.

Generar un par de claves

Si aún no disponemos de un par de claves SSH, que consiste en una clave pública y otra privada, deberemos de generarlas. Para hacer esto, deberemos ejecutar esta instrucción en nuestro ordenador.

ssh-keygen

Asumiendo que nuestro usuario local se llama “usuariolocal”, deberemos ver una salida que se parecerá a lo siguiente.

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

Pulsaremos la tecla “Intro” para aceptar el nombre del archivo y la ruta por defecto, o bien introduciremos un nuevo nombre.

A continuación se le pedirá una contraseña asociada a esa clave que hemos creado. Podemos optar por asignar una o bien dejar este campo en blanco. Si decidimos poner una contraseña, a la hora de iniciar la sesión, además de la clave privada deberemos utilizar la contraseña.

Este proceso generará una clave privada “id_rsa” y una clave pública “id_rsa.pub” en el directorio “.ssh” del directorio principal de localuser. Recordad que la clave privada no deberá ser compartida con nadie que no deba tener acceso al servidor.

Copiar la clave pública

Después de haber generado nuestro par de claves SSH, tendremos que copiar la clave pública a nuestro nuevo servidor. Este proceso lo podremos hacer de dos formas diferentes.

1) Opción 1: Usar ssh-copy-id

Si en nuestra máquina local tenemos instalado el script ssh-copy-id, lo podremos utilizar para realizar la copia de esta clave.

Ejecuta ssh-copy-id especificando la dirección IP del servidor donde queremos copiarla, indicando además el usuario de la máquina.

ssh-copy-id demo@DIRECCION_IP

Tras indicar la contraseña correspondiente de acceso a la máquina, la clave pública será añadida al archivo “.ssh/authorized_keys

2) Opción 2: Instalación manual

Partiendo de la base que ya hemos creado el par de claves SSH, utilizaremos el siguiente comando para pintar por pantalla la clave pública.

cat ~/.ssh/id_rsa.pub

Deberíamos ver algo parecido a esto que os dejamos.

id_rsa.pub contents
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7W2c47d4gOqB4izP0+fRLfvbz/tnXFz4iOP/H6eCV05hqUhF+KYRxt9Y8tVMrpDZR2l75o6+xSbUOMu6xN+uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX/EP3utr2+zAqpJIfKPLdA74w7g56oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva+j9CgguyVbUkdzK9KKEuah+pFZvaugtebsU+bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAvXUPCI9mWkYS/1rggpFmu3HbXBnWSUdf localuser@machine.local

Seleccionaremos la clave pública y la copiaremos en nuestro portapapeles.

Lo siguiente que deberemos hacer será acceder al servidor para agregar esta clave pública dentro de un archivo especial en el directorio personal del usuario.

Si estamos logueados como usuario root, lo que haremos será ejecutar la siguiente instrucción para cambiar al usuario “demo” que hemos creado.

su - demo

Ahora nos encontraremos dentro del directorio home del usuario creado. Crearemos un nuevo directorio llamado “.ssh” y restringiremos sus permisos con la siguiente instrucción.

mkdir .ssh
chmod 700 .ssh

A continuación crearemos un fichero de nombre “authorized_key” con un editor de texto. Nosotros utilizaremos “nano”.

nano .ssh/authorized_keys

Ahora copia en el interior de ese fichero la clave pública generada y que deberíamos tener en nuestro portapapeles. Para finalizar, guardamos los cambios y restringimos los permisos sobre ese fichero.

chmod 600 .ssh/authorized_keys

Paso 5 – Configurar el demonio SSH

Ahora que ya hemos creado nuestra cuenta, podemos asegurar nuestro servidor un poco más modificando el demonio SSH, para impedir el acceso remoto SSH a la cuenta root. Para ello tendremos que editar el archivo de configuración, logueados como usuario “root”.

nano /etc/ssh/sshd_config

En ese archivo, buscaremos la siguiente línea:

PermitRootLogin yes

Lo que tendremos que hacer es cambiar “yes” por “no”. De esta forma estaremos impidiendo el acceso vía ssh al usuario root.

Por último, sólo nos queda guardar los cambios.

Paso 6 – Recargar SSH

Ahora que hemos realizado todos los cambios, es necesario reiniciar el servicio para que tomen efecto. Para ello, deberemos ejecutar la siguiente instrucción.

service ssh restart

Una vez hecho todos estos pasos, debemos comprobar que todo funciona bien y que nos podemos loguear con el usuario creado. Para ello, abrimos un nuevo terminal en nuestro equipo local y ejecutamos el siguiente comando

ssh demo@DIRECCION_IP

Si la conexión se ha realizado con éxito, probad a ejecutar cualquier comando de administrador.

sudo comando_a_ejecutar

Si todo ha funcionado, ya podremos salir de la máquina con la garantía de haber creado un entorno seguro.