Seleccionar página
📍 Pasos iniciales en Ubuntu Server 20.04

📍 Pasos iniciales en Ubuntu Server 20.04

En el caso de que no estés muy familiarizado con un entorno linux, el hecho de tener una VPS o un servidor con un Ubuntu Server se te hará complicado. Te enseñamos los pasos iniciales que debes tomar para empezar a trabajar con uno de éstos servidores.

🙋‍♂️ Creación de usuario

Cuando conseguimos una máquina virtual o un servidor, el proveedor hosting nos suele proporcionar un usuario llamado ubuntu o bien acceso a través del usuario root. Una buena práctica es crear un nuevo usuario para evitar el acceso del usuario root o el acceso del usuario ubuntu por defecto.

Para crear un usuario nuevo utilizamos el siguiente comando:

sudo adduser gfranco

Nos pedirá crear una contraseña para ese usuario y añadir una serie de datos que son opcionales, y al final marcar con un Y en el caso de que los datos proporcionados estén bien y estemos seguros de crear el usuario.

Adding user `gfranco' ...
Adding new group `gfranco' (1001) ...
Adding new user `gfranco' (1001) with group `gfranco' ...
Creating home directory `/home/gfranco' ...
Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for gfranco
Enter the new value, or press ENTER for the default
        Full Name []: 
        Room Number []: 
        Work Phone []: 
        Home Phone []: 
        Other []: 
Is the information correct? [Y/n]

Una vez creado el usuario correctamente, deberíamos dar permisos sudo al usuario para poder trabajar como administrador con él, lo haremos con el siguiente comando:

sudo usermod -aG sudo gfranco

Y de esta manera nuestro usuario ya tiene permisos de administración.

📜 Nombre de la máquina

El nombre de la máquina debe estar acorde con los registros A del servidor DNS donde tengamos ubicado nuestro dominio. Para establecer el nombre a nuestro servidor debemos crear un registro de tipo A, como por ejemplo servidor-01.nebula.cat y apuntarlo a la dirección IP de nuestro servidor.

Una vez creado el registro A en el DNS, cambiamos el nombre del servidor utilizando los ficheros /etc/hostname y /etc/hosts.

sudo nano /etc/hostname

Y el contenido del fichero debería ser el siguiente:

servidor-01.nebula.cat

Modificamos también el contenido del fichero /etc/hosts.

sudo nano /etc/hosts

Y el contenido del fichero es éste:

127.0.0.1       localhost
127.0.1.1       servidor-01.nebula.cat       servidor-01
# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
92.222.25.209   servidor-01.nebula.cat        servidor-01

Y una vez cambiado el nombre de la máquina reiniciamos el servidor con el siguiente comando:

sudo systemctl reboot

Y al reiniciar observaremos en el shell de nuestro servidor que el nombre ha cambiado correctamente.

gfranco@servidor-01:~$

Para el acceso SSH a través de éste usuario es totalmente recomendable usar buenas prácticas como pueden ser deshabilitar el usuario root o cambiar el puerto, además también de usar claves de SSH para acceder.

🧱 Firewall básico

Es esencial tener un mínimo firewall, Ubuntu Server nos proporciona uno muy básico ya instalado preparado para empezar a configurar. Éste firewall es UFW, con este podemos cerrar y abrir puertos de nuestra máquina. Al activar el firewall, por defecto, se cerrarán todas las conexiones a través de todos los puertos a menos de que lo especifiques.

Para permitir las conexiones a un puerto o a un servicio, por ejemplo el SSH, usamos el siguiente comando:

sudo ufw allow OpenSSH

Que, en el caso de que haya funcionado correctamente, nos printará lo siguiente:

Rules updated
Rules updated (v6)

Y para activar éste firewall usamos el comando:

sudo ufw enable

🔐 Conexiones con claves SSH

🔐 Conexiones con claves SSH

Las contraseñas son un método de autentificación de control de acceso, utilizado en la gran mayoría de sitios web y otro tipo de software. Con el paso de los años queda demostrado que las contraseñas no son lo suficientemente seguras, y aquí entran las claves SSH.

El acceso SSH a un servidor es muy importante, es el principal acceso a un servidor y por el cual acceden la gran mayoría de administradores a sus servidores, es por eso que es muy importante securizar su acceso. Para avanzar con este post es importante haber leído ya el primer post que explicaba los pasos iniciales en Ubuntu Server 20.04.

📝 Creación de las claves

Para crear las claves, lo realizaremos a través del sistema operativo Linux, es realmente sencillo crear el par de claves. Desde un terminal ejecutamos el siguiente comando.

ssh-keygen

Se creará un par de claves RSA, una vez introducido el comando veremos lo siguiente.

Generating public/private rsa key pair.
Enter file in which to save the key (/home/gfranco/.ssh/id_rsa):

Podemos elegir la ruta donde queramos el par de claves, por defecto las dejamos dentro del directorio oculto llamado .ssh, cambiar la ruta puede servir para generar más de un sólo par de claves en tu mismo dispositivo.

A continuación nos pedirá una contraseña, lo cuál es muy recomendable pero no necesario. La contraseña dentro de la clave nos proporciona mucha más seguridad para el acceso al servidor.

Your identification has been saved in /home/gfranco/.ssh/id_rsa
Your public key has been saved in /home/gfranco/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:AHg8LOxnWjL81sSVux0YWy52rrQRcfmQVkC0GzxGMaw gfranco@nebula
The key's randomart image is:
+---[RSA 3072]----+
| . +.    =B*.    |
|  + =.  =oOo     |
| o o o.. %*o     |
|  = + o.E.++.    |
|   O o .SB..     |
|  . o . + o      |
|   .   . +       |
|        o        |
|                 |
+----[SHA256]-----+

Y ya tendremos nuestra clave pública y privada para realizar autenticación en servidores a través de SSH. Una vez conseguida la clave podemos proceder a subirla a nuestro servidor.

📤 Subida de clave al servidor

Para realizar la subida al servidor puedes hacerlo de varias maneras, puedes utilizar la instrucción ssh-copy-id que es la manera más sencilla de hacerlo. Para hacerlo debes tener ya creado tu propio usuario en la máquina remota y habilitado el acceso mediante contraseña, y en la cuenta a la que inicies sesión se copiará la clave de SSH pública.

El comando deberá tener el siguiente resultado, siendo gfranco tu usuario del servidor y nebula.cat la dirección de tu servidor.

ssh-copy-id gfranco@nebula.cat

En el caso de que tengas más de un solo par de claves puedes especificar la clave que quieres utilizar con el parámetro -i.

ssh-copy-id -i ~/.ssh/nebula gfranco@nebula.cat

🔒 Securizar el acceso a sólo claves

Una buena medida de seguridad es permitir únicamente el acceso al servidor a través de claves SSH, una vez subida tu clave al servidor y funcionando correctamente lo único que tendremos que hacer es desactivar el acceso a través de contraseña y activar el acceso a través de claves SSH.

Deberemos modificar el fichero de configuración SSH que es el /etc/ssh/sshd_config:

...
PubkeyAuthentication yes
...
PasswordAuthentication no
...

Y reiniciamos el servicio SSH con el siguiente comando:

sudo systemctl restart ssh.service

O con el comando:

sudo systemctl restart sshd.service