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

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, así como aportar una base sólida para llevar a cabo acciones posteriores.

Paso 1 – Iniciar sesión 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 y la contraseña del usuario root. Para conectarnos como usuario root, tenemos que 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, hay que 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 nos pedirá que cambiemos su contraseña.

Para los que no estén familiarizados con el usuario root, se trata del usuario que tiene control absoluto sobre el servidor. Por eso no se aconseja que se use habitualmente, ya que puede se pueden realizar cambios en la máquina que hagan que no funcione todo lo bien que debería. 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, añadiremos una cuenta nueva 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 —que es recomendable que sea una contraseña fuerte—. Una vez introducida la contraseña del usuario, podemos ir respondiendo al resto de preguntas o pulsar «Intro» para saltárnos las que no nos interesen, ya que no son preguntas obligatorias.

Paso 3 – Asignar privilegios root

El usuario creado dispone de ciertos privilegios, pero es posible que en determinadas situaciones tengamos que llevar a cabo tareas administrativas. Así que, 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 un «superusuario». Esto consiste en dotar de privilegios root a nuestra cuenta que hemos creado. Esto permitirá al usuario ejecutar algunas instrucciones 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 privilegios de superusuario.

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

Para mejorar la seguridad de la máquina, os recomendamos configurar 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, tendremos que generarlas. Para hacerlo hay que ejecutar esta instrucción en nuestro ordenador.

ssh-keygen

Asumiendo que nuestro usuario local se llama «usuariolocal», tendremos que 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):

Pulsando «Intro» aceptamos el nombre del archivo y la ruta por defecto, pero también podemos intorducir un nombre nuevo si lo preferimos. A continuación nos pedirá una contraseña asociada a la clave que acabamos de crear. 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, también utilizaremos 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. Es importante que no compartamos la clave privada 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.

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. Para ello ejecutaremos 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».

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. Después accederemos 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 y ahí crearemos un nuevo directorio llamado «.ssh» y restringiremos sus permisos con la siguiente instrucción.

mkdir .ssh
chmod 700 .ssh

Luego crearemos un fichero de nombre «authorized_key» con un editor de texto. Nosotros utilizaremos «nano».

nano .ssh/authorized_keys

Cuando lo hayas creado, copia en el interior de ese fichero la clave pública generada —que deberíamos tener en el 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 tenemos que ejecutar la siguiente instrucción.

service ssh restart

Una vez hechos todos estos pasos, hay que 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, probamos 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.

Si te ha gustado, compártelo en redes sociales

Configuración de las cookies
Stackscale, Grupo Aire logo

Al aceptar las cookies acepta voluntariamente el tratamiento de sus datos. Esto también incluye, por un tiempo limitado, su consentimiento de acuerdo con el Artículo 49 (1) (a) RGPD para el procesamiento de datos fuera del EEE, por ejemplo, en los EE.UU. En estos países, a pesar de una cuidadosa selección y obligación de los proveedores de servicios, no se puede garantizar el alto nivel europeo de protección de datos.

Si los datos se transfieren a los EE.UU., existe, por ejemplo, el riesgo de que las autoridades de los EE.UU. procesen estos datos con fines de control y supervisión sin que estén disponibles recursos legales efectivos o sin que se puedan hacer valer todos los derechos del interesado. Puede revocar su consentimiento en cualquier momento.

Cookies necesarias

Son aquellas que ayudan a hacer una página web utilizable activando funciones básicas como la navegación en la página y el acceso a áreas seguras de la página web. La página web no podrá funcionar adecuadamente sin estas cookies. Le informamos de que puede configurar su navegador para bloquear o alertar sobre estas cookies, sin embargo, es posible que determinadas áreas de la página web no funcionen. Estas cookies no almacenan ninguna información de identificación personal.

- moove_gdpr_popup

Cookies analíticas

Son aquéllas que permiten al Editor de las mismas, el seguimiento y análisis del comportamiento de los usuarios de los sitios web a los que están vinculadas. La información recogida mediante este tipo de cookies se utiliza en la medición de la actividad de los sitios web, aplicaciones o plataformas y para la elaboración de perfiles de navegación de los usuarios de dichos sitios, aplicaciones y plataformas, con el fin de introducir mejoras en función del análisis de los datos de uso que hacen los usuarios del servicio.

Google Analytics: Registra una identificación única que se utiliza para generar datos estadísticos acerca de cómo utiliza el visitante el sitio web. La información generada por la cookie sobre su uso de este sitio web generalmente se transmite a un servidor de Google en los EE. UU. y es almacenada allí por Google LLC, 1600 Amphitheatre Parkway Mountain View, CA 94043, EE.UU.

- _dc_gtm_UA-30121999-1

- _ga_C3BSYFJ6DM

- _gat_gtag_UA_30121999_1

- _ga

- _gcl_au

- _gid