Instalación y Configuración de WireGuard

  1. Instalamos WireGuard:

    sudo apt install wireguard
    
  2. Verificamos la creación del directorio de configuración:

    Al instalar WireGuard, se debería crear automáticamente el directorio /etc/wireguard. Si no existe, lo creamos manualmente y configuramos los permisos adecuados:

    sudo mkdir -p /etc/wireguard
    sudo chmod 700 /etc/wireguard  # Solo accesible por el usuario root
    
  3. Cambiamos al directorio de configuración:

    cd /etc/wireguard
    
  4. Establecemos la umask para restringir permisos de archivos:

    Para garantizar que solo el usuario root pueda leer o escribir archivos creados en este proceso:

    umask 077
    
  5. Generamos las claves pública y privada para el servidor:

    Ejecutamos los siguientes comandos para generar las claves del servidor:

    wg genkey | tee Serverprivatekey | wg pubkey > Serverpublickey
    
  6. (Opcional) Generamos las claves del cliente:

    En caso de que el cliente no las genere por su cuenta, podemos hacerlo en el servidor:

    wg genkey | tee Clientprivatekey | wg pubkey > Clientpublickey
    
  7. Creamos y editamos el archivo de configuración del servidor (wg0.conf):

    Editamos el archivo de configuración para establecer los parámetros de la VPN:

    sudo nano /etc/wireguard/wg0.conf
    
  8. Configuración básica del archivo wg0.conf del servidor:

    A continuación, se muestra un ejemplo de cómo debe configurarse el archivo:

    [Interface]
    # Clave privada del servidor
    PrivateKey = (coloca aquí la clave privada del servidor)
    
    # IP interna que usará el servidor en la VPN
    Address = 10.0.0.1/24
    
    # Puerto de escucha de WireGuard
    ListenPort = 51820
    
    # Permitir reenvío de paquetes y salida a Internet para los clientes
    PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
    PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE
    
    # Guardar la configuración al apagar el servidor
    SaveConfig = true
    

    Conf_VPN.png

    Nota: Asegúrate de reemplazar (coloca aquí la clave privada del servidor) por la clave privada generada previamente.

  9. Habilitamos el reenvío de paquetes en el sistema:

    Editamos el archivo /etc/sysctl.conf para permitir el reenvío de paquetes:

    sudo nano /etc/sysctl.conf
    

    Buscamos la línea:

    #net.ipv4.ip_forward=1
    

    Y la descomentamos, quedando así:

    net.ipv4.ip_forward=1
    

    Aplicamos los cambios:

    sudo sysctl -p
    
  10. Configuración del firewall:

Permitimos el tráfico en el puerto de WireGuard (51820/UDP) y el acceso SSH:

sudo ufw allow 51820/udp
sudo ufw allow OpenSSH

Luego, activamos el firewall:

sudo ufw enable

Para comprobar el estado del firewall:

sudo ufw status
  1. Configuración del cliente (Windows):