# Instalación y despliegue de WireGuard

- Link: https://binariocero.com/linux/instalacion-y-despliegue-de-wireguard
- Published: 2026-04-18T09:05:46+02:00
- Author: Juan José Fernández Durán

![Loading](https://binariocero.com/wp-content/plugins/page-views-count/ajax-loader-
2x.gif)

## 1. Actualización del sistema

Antes de instalar cualquier componente, es necesario actualizar los repositorios
y paquetes del sistema:

    ```wp-block-preformatted
    apt updateapt dist-upgrade -y
    ```

**Descripción:**

 * `apt update`: Actualiza la lista de paquetes disponibles.
 * `apt dist-upgrade -y`: Instala actualizaciones, gestionando dependencias automáticamente.

## 2. Instalación de dependencias

    ```wp-block-preformatted
    apt install wireguard iptables
    ```

**Descripción:**

 * `wireguard`: Software VPN.
 * `iptables`: Necesario para reglas de red y NAT.

## 3. Preparación del entorno

    ```wp-block-preformatted
    cd /etc/wireguardmkdir keysumask 077
    ```

**Descripción:**

 * Se accede al directorio de configuración.
 * Se crea un directorio para almacenar claves.
 * `umask 077`: Restringe permisos (solo el propietario puede leer/escribir).

## 4. Habilitar el reenvío de IP

    ```wp-block-preformatted
    echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/99-wireguard.confsysctl -p /etc/sysctl.d/99-wireguard.conf
    ```

**Descripción:**

 * Activa el forwarding IP necesario para enrutar tráfico entre redes.
 * Se aplica la configuración sin reiniciar.

## 5. Generación de claves criptográficas

En `/etcwireguard/keys/` generamos todas las claves.

### Servidor

    ```wp-block-preformatted
    wg genkey | tee server_private.key | wg pubkey > server_public.keycat server_private.keycat server_public.key
    ```

### Cliente

    ```wp-block-preformatted
    wg genkey | tee client_private.key | wg pubkey > client_public.keycat client_private.keycat client_public.key
    ```

**Descripción:**

 * Se generan pares de claves (privada/pública) para servidor y cliente.
 * Las claves privadas deben mantenerse seguras.

## 6. Configuración del servidor WireGuard

Editar el archivo:

    ```wp-block-preformatted
    vim /etc/wireguard/wg0.conf
    ```

### Contenido:

    ```wp-block-preformatted
    [Interface]PrivateKey = <TU_CLAVE_PRIVADA_SERVIDOR>Address = 10.0.0.1/24ListenPort = 51820PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE;[Peer]PublicKey = <CLAVE_PUBLICA_DEL_CLIENTE>AllowedIPs = 10.0.0.2/32
    ```

**Descripción:**

### `[Interface]`

 * `PrivateKey`: Clave privada del servidor.
 * `Address`: IP del túnel VPN.
 * `ListenPort`: Puerto de escucha.

### Reglas `PostUp` / `PostDown`

 * Permiten el tráfico entre la VPN y la red interna (192.168.1.0/24).
 * Aplican NAT (masquerading).

### `[Peer]`

 * Define el cliente autorizado.
 * `AllowedIPs`: IP asignada al cliente dentro de la VPN.

## 7. Activación del servicio

    ```wp-block-preformatted
    systemctl enable wg-quick@wg0systemctl start wg-quick@wg0
    ```

**Descripción:**

 * `enable`: Arranque automático al iniciar el sistema.
 * `start`: Inicia el túnel VPN.

## 8. Verificación del estado

Puedes comprobar que el túnel está activo con:

    ```wp-block-preformatted
    wg
    ```

o

    ```wp-block-preformatted
    systemctl status wg-quick@wg0
    ```

## 9. Consideraciones adicionales

 * Asegúrate de abrir el puerto **51820/UDP** en el firewall.
 * Protege adecuadamente las claves privadas (`chmod 600` si es necesario).
 * Si usas `ufw` o `firewalld`, añade reglas equivalentes a iptables.

## 10. Flujo resumido

 1. Actualizar sistema
 2. Instalar WireGuard
 3. Generar claves
 4. Configurar forwarding
 5. Crear `wg0.conf`
 6. Levantar servicio
