# Guía: Cómo Configurar y Securizar un Servidor Ubuntu 24.04 desde Cero

Cuando contratas un VPS (Servidor Privado Virtual) nuevo, tu proveedor suele entregarte la dirección IP y las credenciales del usuario **root**. Operar y exponer a internet un servidor directamente desde el superusuario es un riesgo de seguridad crítico.

En este tutorial, aprenderás a preparar y blindar tu servidor con Ubuntu 24.04 paso a paso antes de instalar cualquier aplicación.

* * *

### Paso 1: Actualizar el sistema base

Lo primero que debes hacer al entrar a tu servidor por primera vez es asegurarte de que todos los paquetes y parches de seguridad estén al día. Abre tu terminal, conéctate por SSH como **root** y ejecuta:

```bash
apt update && apt upgrade -y
```

### Paso 2: Crear un usuario administrador (Sudo)

No usaremos **root** para las tareas diarias. Vamos a crear un usuario estándar y le otorgaremos permisos de administrador para cuando los necesite.

Ejecuta el siguiente comando para crear el usuario (sustituye `tu_usuario` por el nombre que desees):

```bash
adduser tu_usuario
```

El sistema te pedirá que asignes una contraseña segura y algunos datos adicionales que puedes omitir pulsando la tecla Enter. A continuación, dale permisos de administrador a este nuevo usuario:

```bash
usermod -aG sudo tu_usuario
```

### Paso 3: Configurar el Firewall (UFW)

Ubuntu incluye un cortafuegos muy sencillo de usar llamado UFW, pero viene desactivado por defecto. Vamos a encenderlo permitiendo únicamente el tráfico esencial.

Permite las conexiones SSH (puerto 22) para no quedarte bloqueado fuera del servidor:

```bash
ufw allow OpenSSH
```

Activa el firewall:

```bash
ufw enable
```

### Paso 4: Configurar el acceso mediante claves SSH

Para evitar ataques de fuerza bruta basados en contraseñas, configuraremos el acceso por llaves criptográficas.

**En tu ordenador personal (NO en el servidor):**  
Abre la terminal de tu PC o Mac y genera un par de claves con cifrado moderno:

```bash
ssh-keygen -t ed25519 -C "tu_correo@ejemplo.com"
```
