Cómo configurar WireGuard en Ubuntu 20.04

Introducción

Índice
  1. Introducción
  • Prerrequisitos
  • Paso 1: Instalación de WireGuard y generación de un par de claves
  • Paso 2: Elección de direcciones IPv4 e IPv6
    1. Paso 2(a): Elección de un rango de IPv4
    2. Paso 2(b): Elección de un rango de IPv6
  • Paso 3: Creación de una configuración de servidor WireGuard
  • Paso 4: Ajuste de la configuración de red del servidor WireGuard
  • Paso 5: Configuración del firewall del servidor WireGuard
  • Paso 6: Iniciar el servidor WireGuard
  • Paso 7: Configuración de un par WireGuard
    1. Creación del par de claves del par WireGuard
    2. Creación del archivo de configuración del par WireGuard
  • WireGuard es una red privada virtual (VPN) liviana que admite conexiones IPv4 e IPv6. Una VPN le permite navegar por redes que no son de confianza como si estuviera en una red privada. Le brinda la libertad de acceder a Internet de manera segura desde su teléfono inteligente o computadora portátil cuando está conectado a una red que no es de confianza, como el wifi de un hotel o una cafetería.

    El cifrado de WireGuard se basa en claves públicas y privadas para que los pares establezcan un túnel cifrado entre ellos. Cada versión de WireGuard utiliza un conjunto de cifrados criptográficos específico para garantizar la simplicidad, la seguridad y la compatibilidad con los pares.

    En comparación, otros programas de VPN como OpenVPN e IPSec utilizan seguridad de la capa de transporte (TLS) y certificados para autenticar y establecer túneles cifrados entre sistemas. Las distintas versiones de TLS incluyen compatibilidad con cientos de suites y algoritmos criptográficos diferentes y, si bien esto permite una gran flexibilidad para admitir distintos clientes, también hace que la configuración de una VPN que utilice TLS sea más lenta, compleja y propensa a errores.

    En este tutorial, configurará WireGuard en un servidor Ubuntu 20.04 y luego configurará otra máquina para conectarse a él como un par mediante conexiones IPv4 e IPv6 (comúnmente conocidas como conexión de doble pila ). También aprenderá a enrutar el tráfico de Internet del par a través del servidor WireGuard en una configuración de puerta de enlace, además de usar la VPN para un túnel de par a par cifrado.

    Para los fines de este tutorial, configuraremos otro sistema Ubuntu 20.04 como par (también denominado cliente) del servidor WireGuard. En los tutoriales posteriores de esta serie se explicará cómo instalar y ejecutar WireGuard en sistemas y dispositivos Windows, macOS, Android e iOS.

    Implemente sus aplicaciones frontend desde GitHub con la plataforma de aplicaciones DigitalOcean . Deje que DigitalOcean se concentre en escalar su aplicación.

    Nota: Si planea configurar WireGuard en un Droplet de DigitalOcean, tenga en cuenta que nosotros, al igual que muchos proveedores de alojamiento, cobramos por el exceso de ancho de banda. Por este motivo, tenga en cuenta la cantidad de tráfico que maneja su servidor. Consulte esta página para obtener más información.

    Prerrequisitos

    Para seguir este tutorial, necesitarás:

    • Un servidor Ubuntu 20.04 con un usuario sudo que no sea root y un firewall habilitado. Para configurarlo, puede seguir nuestro tutorial Configuración inicial del servidor con Ubuntu 20.04 . Nos referiremos a esto como el servidor WireGuard en esta guía.
    • Necesitará una máquina cliente que utilizará para conectarse a su servidor WireGuard. En este tutorial, nos referiremos a esta máquina como el par WireGuard . Para los fines de este tutorial, se recomienda que utilice su máquina local como el par WireGuard, pero puede utilizar servidores remotos o teléfonos móviles como clientes si lo prefiere. Si está utilizando un sistema remoto, asegúrese de seguir todas las secciones opcionales que aparecen más adelante en este tutorial o puede quedar bloqueado y no podrá acceder al sistema.
    • Para utilizar WireGuard con IPv6, también deberá asegurarse de que su servidor esté configurado para admitir ese tipo de tráfico. Si desea habilitar la compatibilidad con IPv6 con WireGuard y está utilizando un Droplet de DigitalOcean, consulte esta página de documentación Cómo habilitar IPv6 en Droplets . Puede agregar compatibilidad con IPv6 cuando crea un Droplet o después siguiendo las instrucciones de esa página.

    Paso 1: Instalación de WireGuard y generación de un par de claves

    El primer paso de este tutorial es instalar WireGuard en su servidor. Para comenzar, actualice el índice de paquetes de su servidor WireGuard e instale WireGuard con los siguientes comandos. Es posible que se le solicite que proporcione la contraseña de su usuario sudo si es la primera vez que lo utiliza sudoen esta sesión:

    1. sudo apt update
    2. sudo apt install wireguard

    Ahora que tiene instalado WireGuard, el siguiente paso es generar un par de claves públicas y privadas para el servidor. Utilizará los comandos wg genkeyy integrados wg pubkeypara crear las claves y, luego, agregará la clave privada al archivo de configuración de WireGuard.

    También necesitarás cambiar los permisos de la clave que acabas de crear usando el chmodcomando, ya que de forma predeterminada el archivo puede ser leído por cualquier usuario en tu servidor.

    Cree la clave privada para WireGuard y cambie sus permisos utilizando los siguientes comandos:

    1. wg genkey | sudo tee /etc/wireguard/private.key
    2. sudo chmod go= /etc/wireguard/private.key

    El sudo chmod go=...comando elimina todos los permisos sobre el archivo para usuarios y grupos que no sean el usuario raíz para garantizar que solo él pueda acceder a la clave privada.

    Debería recibir una sola línea de base64salida codificada, que es la clave privada. También se almacena una copia de la salida en el /etc/wireguard/private.keyarchivo para referencia futura mediante la teeparte del comando. Tome nota cuidadosamente de la clave privada que se muestra, ya que deberá agregarla al archivo de configuración de WireGuard más adelante en esta sección.

    El siguiente paso es crear la clave pública correspondiente, que se deriva de la clave privada. Utilice el siguiente comando para crear el archivo de clave pública:

    1. sudo cat /etc/wireguard/private.key | wg pubkey | sudo tee /etc/wireguard/public.key

    Este comando consta de tres comandos individuales que se encadenan entre sí mediante el |operador (tubería):

    • sudo cat /etc/wireguard/private.key:este comando lee el archivo de clave privada y lo envía al flujo de salida estándar .
    • wg pubkey:el segundo comando toma la salida del primer comando como su entrada estándar y la procesa para generar una clave pública.
    • sudo tee /etc/wireguard/public.key:El comando final toma la salida del comando de generación de clave pública y la redirige al archivo llamado /etc/wireguard/public.key.

    Cuando ejecute el comando, recibirá nuevamente una sola línea de base64salida codificada, que es la clave pública de su servidor WireGuard. Cópiela en algún lugar para referencia, ya que deberá distribuir la clave pública a cualquier par que se conecte al servidor.

    Paso 2: Elección de direcciones IPv4 e IPv6

    En la sección anterior, instaló WireGuard y generó un par de claves que se utilizará para cifrar el tráfico hacia y desde el servidor. En esta sección, creará un archivo de configuración para el servidor y configurará WireGuard para que se inicie automáticamente cuando se reinicie el servidor. También definirá direcciones IPv4 e IPv6 privadas para usar con su servidor WireGuard y sus pares.

    Si planea utilizar direcciones IPv4 e IPv6, siga ambas secciones. De lo contrario, siga las instrucciones de la sección correspondiente a las necesidades de red de su VPN.

    Paso 2(a): Elección de un rango de IPv4

    Si utiliza su servidor WireGuard con pares IPv4, el servidor necesita un rango de direcciones IPv4 privadas para usar con los clientes y para su interfaz de túnel. Puede elegir cualquier rango de direcciones IP de los siguientes bloques de direcciones reservados (si desea obtener más información sobre cómo se asignan estos bloques, visite la especificación RFC 1918 ):

    • 10.0.0.0a 10.255.255.255 (prefijo 10/8)
    • 172.16.0.0a 172.31.255.255 (prefijo 172.16/12)
    • 192.168.0.0a 192.168.255.255(prefijo 192.168/16)

    Para los fines de este tutorial, utilizaremos 10.8.0.0/24como bloque de direcciones IP el primer rango de direcciones IP reservadas. Este rango permitirá hasta 255 conexiones entre pares diferentes y, por lo general, no debería tener direcciones superpuestas o conflictivas con otros rangos de direcciones IP privadas. Siéntase libre de elegir un rango de direcciones que funcione con su configuración de red si este rango de ejemplo no es compatible con sus redes.

    El servidor WireGuard utilizará una única dirección IP del rango para su dirección IPv4 de túnel privado. Usaremos 10.8.0.1/24aquí, pero se puede utilizar cualquier dirección en el rango de 10.8.0.1a . Tome nota de la dirección IP que elija si utiliza algo diferente de . Agregará esta dirección IPv4 al archivo de configuración que defina en el Paso 3: Creación de una configuración de servidor WireGuard .10.8.0.25510.8.0.1/24

    Paso 2(b): Elección de un rango de IPv6

    Si utiliza WireGuard con IPv6, deberá generar un prefijo de dirección de unidifusión IPv6 local único según el algoritmo de RFC 4193. Las direcciones que utilice con WireGuard se asociarán con una interfaz de túnel virtual. Deberá completar algunos pasos para generar un prefijo IPv6 único y aleatorio dentro del fd00::/8bloque reservado de direcciones IPv6 privadas.

    Según la RFC, la forma recomendada de obtener un prefijo IPv6 único es combinar la hora del día con un valor de identificación único de un sistema, como un número de serie o un identificador de dispositivo. A continuación, esos valores se codifican y se truncan, lo que da como resultado un conjunto de bits que se pueden usar como una dirección única dentro del fd00::/8bloque privado reservado de direcciones IP.

    Para comenzar a generar un rango de IPv6 para su servidor WireGuard, recopile una marca de tiempo de 64 bits utilizando la dateutilidad con el siguiente comando:

    1. date +%s%N

    Recibirá un número como el siguiente, que es la cantidad de segundos ( %sen el datecomando) y nanosegundos ( %N) desde 1970-01-01 00:00:00 UTC combinados:

    Output1628101352127592197

    Registre el valor en algún lugar para usarlo más adelante en esta sección. A continuación, copie el machine-idvalor de su servidor desde el /var/lib/dbus/machine-idarchivo. Este identificador es exclusivo de su sistema y no debería cambiar mientras exista el servidor.

    1. cat /var/lib/dbus/machine-id

    Recibirá un resultado como el siguiente:

    /var/lib/dbus/machine-id20086c25853947c7aeee2ca1ea849d7d

    Ahora debe combinar la marca de tiempo con el machine-idvalor resultante y aplicarle un hash mediante el algoritmo SHA-1. El comando utilizará el siguiente formato:

    printf timestampmachine-id | sha1sum

    Ejecute el comando sustituyendo los valores de marca de tiempo e identidad de máquina:

    1. printf 162810135212759219720086c25853947c7aeee2ca1ea849d7d | sha1sum

    Recibirás un valor hash como el siguiente:

    Output4f267c51857d6dc93a0bca107bca2f0d86fac3bc  -

    Tenga en cuenta que la salida del sha1sumcomando está en formato hexadecimal, por lo que utiliza dos caracteres para representar un solo byte de datos. Por ejemplo 4f, y 26en el ejemplo, la salida son los dos primeros bytes de los datos codificados.

    El algoritmo del RFC solo requiere los 40 bits menos significativos (finales), o 5 bytes, de la salida hash. Utilice el cutcomando para imprimir los últimos 5 bytes codificados en hexadecimal del hash:

    1. printf 4f267c51857d6dc93a0bca107bca2f0d86fac3bc | cut -c 31-

    El -cargumento indica al cutcomando que seleccione solo un conjunto específico de caracteres. El 31-argumento indica cutque se deben imprimir todos los caracteres desde la posición 31 hasta el final de la línea de entrada.

    Debería recibir un resultado como el siguiente:

    Output0d86fac3bc

    En este ejemplo de salida, el conjunto de bytes es: .0d 86 fa c3 bc

    Ahora puede construir su prefijo de red IPv6 exclusivo agregando los 5 bytes que ha generado con el fdprefijo, separando cada 2 bytes con dos :puntos para facilitar la lectura. Debido a que cada subred en su prefijo exclusivo puede contener un total de 18.446.744.073.709.551.616 posibles direcciones IPv6, puede restringir la subred a un tamaño estándar para /64simplificar.

    Utilizando los bytes generados previamente con el /64tamaño de la subred el prefijo resultante será el siguiente:

    Unique Local IPv6 Address Prefixfd0d:86fa:c3bc::/64

    Este fd0d:86fa:c3bc::/64rango es el que utilizará para asignar direcciones IP individuales a sus interfaces de túnel WireGuard en el servidor y sus pares. Para asignar una IP para el servidor, agregue un 1después de los caracteres finales ::. La dirección resultante será . Los pares pueden usar cualquier IP en el rango, pero normalmente incrementará el valor en uno cada vez que agregue un par, por ejemplo . Tome nota de la IP y proceda a configurar el servidor WireGuard en la siguiente sección de este tutorial.fd0d:86fa:c3bc::1/64fd0d:86fa:c3bc::2/64

    Paso 3: Creación de una configuración de servidor WireGuard

    Antes de crear la configuración de su servidor WireGuard, necesitará la siguiente información:

    1. Asegúrese de tener disponible la clave privada del Paso 1: Instalar WireGuard y generar un par de claves .

    2. Si está utilizando WireGuard con IPv4, necesitará la dirección IP que eligió para el servidor en el Paso 2(a): Elección de un rango de IPv4 , que en este ejemplo es 10.8.0.1/24.

    3. Si está utilizando WireGuard con IPv6, necesitará la dirección IP del servidor que generó en el Paso 2(b): Elección de un rango de IPv6 . En este ejemplo, la IP es fd0d:86fa:c3bc::1/64.

    Una vez que tenga la clave privada y las direcciones IP requeridas, cree un nuevo archivo de configuración usando nanosu editor preferido ejecutando el siguiente comando:

    1. sudo nano /etc/wireguard/wg0.conf

    Agregue las siguientes líneas al archivo, reemplazando su clave privada en lugar del base64_encoded_private_key_goes_herevalor resaltado y las direcciones IP en la Addresslínea. También puede cambiar la ListenPortlínea si desea que WireGuard esté disponible en un puerto diferente:

    /etc/wireguard/wg0.conf[Interface]PrivateKey = base64_encoded_private_key_goes_hereAddress = 10.8.0.1/24, fd0d:86fa:c3bc::1/64ListenPort = 51820SaveConfig = true

    La SaveConfiglínea garantiza que cuando se apaga una interfaz WireGuard, cualquier cambio se guardará en el archivo de configuración.

    Guarde y cierre el /etc/wireguard/wg0.confarchivo. Si está utilizando nano, puede hacerlo con CTRL+X, luego Yy ENTERpara confirmar. Ahora tiene una configuración de servidor inicial que puede desarrollar según cómo planee utilizar su servidor VPN WireGuard.

    Paso 4: Ajuste de la configuración de red del servidor WireGuard

    Si está utilizando WireGuard para conectar un par al servidor WireGuard con el fin de acceder a los servicios del servidor únicamente , no necesita completar esta sección. Si desea enrutar el tráfico de Internet de su par WireGuard a través del servidor WireGuard, deberá configurar el reenvío de IP siguiendo esta sección del tutorial.

    Para configurar el reenvío, abra el /etc/sysctl.confarchivo usando nanosu editor preferido:

    1. sudo nano /etc/sysctl.conf

    Si está utilizando IPv4 con WireGuard, agregue la siguiente línea al final del archivo:

    /etc/sysctl.conf

    net.ipv4.ip_forward=1

    Si está utilizando IPv6 con WireGuard, agregue esta línea al final del archivo:

    /etc/sysctl.conf

    net.ipv6.conf.all.forwarding=1

    Si utiliza tanto IPv4 como IPv6, asegúrese de incluir ambas líneas. Guarde y cierre el archivo cuando haya terminado.

    Para leer el archivo y cargar los nuevos valores para su sesión de terminal actual, ejecute:

    1. sudo sysctl -p
    Outputnet.ipv6.conf.all.forwarding = 1net.ipv4.ip_forward = 1

    Ahora, su servidor WireGuard podrá reenviar el tráfico entrante desde el dispositivo Ethernet VPN virtual a otros en el servidor y, desde allí, a Internet público. El uso de esta configuración le permitirá enrutar todo el tráfico web desde su par WireGuard a través de la dirección IP de su servidor y la dirección IP pública de su cliente quedará oculta de manera efectiva.

    Sin embargo, antes de que el tráfico pueda enrutarse correctamente a través de su servidor, deberá configurar algunas reglas de firewall. Estas reglas garantizarán que el tráfico hacia y desde su servidor WireGuard y sus pares fluya correctamente.

    Paso 5: Configuración del firewall del servidor WireGuard

    En esta sección, editará la configuración del servidor WireGuard para agregar reglas de firewall que garantizarán que el tráfico hacia y desde el servidor y los clientes se enrute correctamente. Al igual que en la sección anterior, omita este paso si solo está utilizando su VPN WireGuard para una conexión de máquina a máquina para acceder a recursos que están restringidos a su VPN.

    Para permitir el tráfico VPN de WireGuard a través del firewall del servidor, deberá habilitar el enmascaramiento, que es un concepto de iptables que proporciona traducción dinámica de direcciones de red (NAT) sobre la marcha para enrutar correctamente las conexiones del cliente.

    Primero busque la interfaz de red pública de su servidor WireGuard usando el ip routesubcomando:

    1. ip route list default

    La interfaz pública es la cadena que se encuentra dentro de la salida de este comando que sigue a la palabra “dev”. Por ejemplo, este resultado muestra la interfaz denominada eth0, que se resalta a continuación:

    Outputdefault via 203.0.113.1 dev eth0 proto static

    Anote el nombre de su dispositivo, ya que lo agregará a las iptablesreglas en el siguiente paso.

    Para agregar reglas de firewall a su servidor WireGuard, abra nuevamente el /etc/wireguard/wg0.confarchivo con nanosu editor preferido.

    1. sudo nano /etc/wireguard/wg0.conf

    Al final del archivo, después de la SaveConfig = truelínea, pegue las siguientes líneas:

    /etc/wireguard/wg0.conf. . .PostUp = ufw route allow in on wg0 out on eth0PostUp = iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADEPostUp = ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADEPreDown = ufw route delete allow in on wg0 out on eth0PreDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADEPreDown = ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

    Las PostUplíneas se ejecutarán cuando el servidor WireGuard inicie el túnel VPN virtual. En el ejemplo que se muestra aquí, agregará tres reglas ufwy :iptables

    • ufw route allow in on wg0 out on eth0– Esta regla permitirá reenviar el tráfico IPv4 e IPv6 que ingresa a través de la wg0interfaz VPN a la eth0interfaz de red del servidor. Funciona junto con los valores net.ipv4.ip_forwardy net.ipv6.conf.all.forwardingsysctl que configuró en la sección anterior.
    • iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE– Esta regla configura el enmascaramiento y reescribe el tráfico IPv4 que ingresa a la wg0interfaz VPN para que parezca que se origina directamente desde la dirección IPv4 pública del servidor WireGuard.
    • ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADE– Esta regla configura el enmascaramiento y reescribe el tráfico IPv6 que ingresa a la wg0interfaz VPN para que parezca que se origina directamente desde la dirección IPv6 pública del servidor WireGuard.

    Las PreDownreglas se ejecutan cuando el servidor WireGuard detiene el túnel VPN virtual. Estas reglas son las inversas de las PostUpreglas y funcionan para deshacer las reglas de reenvío y enmascaramiento para la interfaz VPN cuando se detiene la VPN.

    En ambos casos, edite la configuración para incluir o excluir las reglas IPv4 e IPv6 que sean adecuadas para su VPN. Por ejemplo, si solo usa IPv4, puede excluir las líneas con los ip6tablescomandos.

    Por el contrario, si solo utiliza IPv6, edite la configuración para incluir únicamente los ip6tablescomandos. Las ufwlíneas deberían existir para cualquier combinación de redes IPv4 e IPv6. Guarde y cierre el archivo cuando haya terminado.

    La última parte de la configuración del firewall en su servidor WireGuard es permitir el tráfico hacia y desde el puerto UDP de WireGuard. Si no cambió el puerto en el /etc/wireguard/wg0.confarchivo del servidor, el puerto que abrirá es 51820. Si eligió un puerto diferente al editar la configuración, asegúrese de sustituirlo en el siguiente comando UFW.

    En caso de que hayas olvidado abrir el puerto SSH al seguir el tutorial de requisitos previos, agrégalo aquí también:

    1. sudo ufw allow 51820/udp
    2. sudo ufw allow OpenSSH

    Nota : Si está utilizando un firewall diferente o ha personalizado su configuración de UFW, es posible que deba agregar reglas de firewall adicionales. Por ejemplo, si decide canalizar todo el tráfico de su red a través de la conexión VPN, deberá asegurarse de que 53el tráfico del puerto esté permitido para las solicitudes DNS y los puertos como 80y 443para el tráfico HTTP y HTTPS respectivamente. Si hay otros protocolos que está utilizando a través de la VPN, también deberá agregar reglas para ellos.

    Después de agregar esas reglas, deshabilite y vuelva a habilitar UFW para reiniciarlo y cargar los cambios de todos los archivos que ha modificado:

    1. sudo ufw disable
    2. sudo ufw enable

    Puede confirmar que las reglas están en su lugar ejecutando el ufw statuscomando. Ejecútelo y debería recibir un resultado como el siguiente:

    1. sudo ufw status
    OutputStatus: activeTo                         Action      From--                         ------      ----51280/udp                  ALLOW       Anywhere                  22/tcp                     ALLOW       Anywhere                  51280/udp (v6)             ALLOW       Anywhere (v6)             22/tcp (v6)                ALLOW       Anywhere (v6)

    Ahora, el servidor WireGuard está configurado para gestionar correctamente el tráfico de la VPN, incluido el reenvío y el enmascaramiento para los pares. Con las reglas del firewall en su lugar, puede iniciar el servicio WireGuard para que escuche las conexiones de los pares.

    Paso 6: Iniciar el servidor WireGuard

    WireGuard se puede configurar para que se ejecute como un systemdservicio mediante su script integrado wg-quick. Si bien puede usar manualmente el wgcomando para crear el túnel cada vez que desee usar la VPN, hacerlo es un proceso manual que se vuelve repetitivo y propenso a errores. En cambio, puede usar systemctlel script para administrar el túnel wg-quick.

    El uso de un systemdservicio significa que puede configurar WireGuard para que se inicie durante el arranque y así poder conectarse a su VPN en cualquier momento mientras el servidor esté en funcionamiento. Para ello, habilite el wg-quickservicio para el wg0túnel que ha definido agregándolo a systemctl:

    1. sudo systemctl enable wg-quick@wg0.service

    Tenga en cuenta que el comando especifica el nombre del wg0dispositivo de túnel como parte del nombre del servicio. Este nombre se asigna al archivo de configuración. Este enfoque de asignación de nombres significa que puede crear tantos túneles VPN independientes como desee utilizando su servidor./etc/wireguard/wg0.conf

    Por ejemplo, puede tener un dispositivo de túnel cuyo nombre sería prod, y su archivo de configuración sería /etc/wireguard/prod.conf. Cada configuración de túnel puede contener diferentes configuraciones de firewall de IPv4, IPv6 y de cliente. De esta manera, puede admitir múltiples conexiones de pares diferentes, cada una con sus propias direcciones IP y reglas de enrutamiento únicas.

    Ahora inicia el servicio:

    1. sudo systemctl start wg-quick@wg0.service

    Verifique nuevamente que el servicio WireGuard esté activo con el siguiente comando. Debería ver lo siguiente active (running)en el resultado:

    1. sudo systemctl status wg-quick@wg0.service
    Output● wg-quick@wg0.service - WireGuard via wg-quick(8) for wg0     Loaded: loaded (/lib/systemd/system/wg-quick@.service; enabled; vendor preset: enabled)     Active: active (exited) since Wed 2021-08-25 15:24:14 UTC; 5s ago       Docs: man:wg-quick(8)             man:wg(8)             https://www.wireguard.com/             https://www.wireguard.com/quickstart/             https://git.zx2c4.com/wireguard-tools/about/src/man/wg-quick.8             https://git.zx2c4.com/wireguard-tools/about/src/man/wg.8    Process: 3245 ExecStart=/usr/bin/wg-quick up wg0 (code=exited, status=0/SUCCESS)   Main PID: 3245 (code=exited, status=0/SUCCESS)Aug 25 15:24:14 wg0 wg-quick[3245]: [#] wg setconf wg0 /dev/fd/63Aug 25 15:24:14 wg0 wg-quick[3245]: [#] ip -4 address add 10.8.0.1/24 dev wg0Aug 25 15:24:14 wg0 wg-quick[3245]: [#] ip -6 address add fd0d:86fa:c3bc::1/64 dev wg0Aug 25 15:24:14 wg0 wg-quick[3245]: [#] ip link set mtu 1420 up dev wg0Aug 25 15:24:14 wg0 wg-quick[3245]: [#] ufw route allow in on wg0 out on eth0Aug 25 15:24:14 wg0 wg-quick[3279]: Rule addedAug 25 15:24:14 wg0 wg-quick[3279]: Rule added (v6)Aug 25 15:24:14 wg0 wg-quick[3245]: [#] iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADEAug 25 15:24:14 wg0 wg-quick[3245]: [#] ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADEAug 25 15:24:14 wg0 systemd[1]: Finished WireGuard via wg-quick(8) for wg0.

    El resultado muestra los ipcomandos que se utilizan para crear el wg0dispositivo virtual y asignarle las direcciones IPv4 e IPv6 que agregó al archivo de configuración. Puede utilizar estas reglas para solucionar problemas del túnel o con el wgcomando en sí si desea intentar configurar manualmente la interfaz VPN.

    Con el servidor configurado y en funcionamiento, el siguiente paso es configurar su máquina cliente como un par WireGuard y conectarse al servidor WireGuard.

    Paso 7: Configuración de un par WireGuard

    La configuración de un par de WireGuard es similar a la configuración del servidor de WireGuard. Una vez que haya instalado el software cliente, generará un par de claves pública y privada, decidirá una o más direcciones IP para el par, definirá un archivo de configuración para el par y luego iniciará el túnel utilizando el wg-quickscript.

    Puede agregar tantos pares como desee a su VPN generando un par de claves y configurando el sistema siguiendo los pasos que se indican a continuación. Si agrega varios pares a la VPN, asegúrese de realizar un seguimiento de sus direcciones IP privadas para evitar colisiones.

    Para configurar el par WireGuard, asegúrese de tener instalado el paquete WireGuard mediante los siguientes aptcomandos. En el par WireGuard, ejecute:

    1. sudo apt update
    2. sudo apt install wireguard

    Creación del par de claves del par WireGuard

    A continuación, deberá generar el par de claves en el par siguiendo los mismos pasos que utilizó en el servidor. Desde su máquina local o servidor remoto que actuará como par, proceda y cree la clave privada para el par usando los siguientes comandos:

    1. wg genkey | sudo tee /etc/wireguard/private.key
    2. sudo chmod go= /etc/wireguard/private.key

    Nuevamente recibirás una sola línea de base64salida codificada, que es la clave privada. También se almacena una copia de la salida en el archivo /etc/wireguard/private.key. Anota cuidadosamente la clave privada que se muestra, ya que deberás agregarla al archivo de configuración de WireGuard más adelante en esta sección.

    A continuación, utilice el siguiente comando para crear el archivo de clave pública:

    1. sudo cat /etc/wireguard/private.key | wg pubkey | sudo tee /etc/wireguard/public.key

    Recibirá nuevamente una sola línea de base64salida codificada, que es la clave pública de su par WireGuard. Cópiela en algún lugar para referencia, ya que deberá distribuir la clave pública al servidor WireGuard para establecer una conexión cifrada.

    Creación del archivo de configuración del par WireGuard

    Now that you have a key pair, you can create a configuration file for the peer that contains all the information that it needs to establish a connection to the WireGuard Server.

    You will need a few pieces of information for the configuration file:

    • The base64 encoded private key that you generated on the peer.

    • The IPv4 and IPv6 address ranges that you defined on the WireGuard Server.

    • The base64 encoded public key from the WireGuard Server.

    • The public IP address and port number of the WireGuard Server. Usually this will be the IPv4 address, but if your server has an IPv6 address and your client machine has an IPv6 connection to the internet you can use this instead of IPv4.

    With all this information at hand, open a new /etc/wireguard/wg0.conf file on the WireGuard Peer machine using nano or your preferred editor:

    1. sudo nano /etc/wireguard/wg0.conf

    Add the following lines to the file, substituting in the various data into the highlighted sections as required:

    /etc/wireguard/wg0.conf[Interface]PrivateKey = base64_encoded_peer_private_key_goes_hereAddress = 
    SUSCRÍBETE A NUESTRO BOLETÍN 
    No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Subir

    Este sitio web utiliza cookies para mejorar tu experiencia mientras navegas por él. Este sitio web utiliza cookies para mejorar tu experiencia de usuario. Al continuar navegando, aceptas su uso. Mas informacion