Configurar una VPN con Wireguard.

Configurar una VPN con Wireguard.

El teletrabajo y las necesidades de conexión remota aumentan. Hoy te enseño a configurar una VPN con Wireguard. Explicaremos brevemente qué es una VPN. Configuraremos Wireguard sin necesidad de usar scripts como pivpn. Vamos a configurar Wireguard en Windows, Linux, macOS, Android e IOS. Ya seas particular, profesional de la ciberseguridad o una empresa, este tutorial puede ser de tu interés. Intentaremos explicar como implementar el servicio con el menor número de detalles técnicos posible. Os adelantamos que va a ser más rápido y sencillo que por ejemplo con OpenVPN. Por último añadimos conclusiones además de la solución a problemas habituales. Éste es quizás el tutorial más completo disponible en español, tanto para instalar como para configurar Wireguard. Actualmente es una guía para configurar el Servidor y los clientes con cualquier sistema operativo.

 

Anteriormente y por si son de vuestro interés hemos dejado otros artículos como Software libre: Aplicaciones de Home Office, Programas gratis que no pueden faltar en tu PC, Problemas de seguridad en la APP Zoom. Hoy traemos el tutorial completo para que nuestros lectores puedan disponer de una Red Privada Virtual.

Índice de contenido

¿Qué es Wireguard?
Instalando Wireguard en el servidor.
Configurar cliente Wireguard en Windows
Instalando un cliente Linux.
Configurar una VPN con Wireguard en IOS y Android.
Configurar un cliente MacOS en Wireguard
Conclusiones

¿Qué es una VPN?

Una red privada virtual (RPV) (en inglés, Virtual Private Network, VPN) es una tecnología de red de ordenadores que permite una extensión segura de la red de área local (LAN) sobre una red pública o no controlada como Internet. Permite que el ordenador en la red envíe y reciba datos sobre redes compartidas o públicas como si fuera una red privada, con toda la funcionalidad, seguridad y políticas de gestión de una red privada. Esto se realiza estableciendo una conexión virtual punto a punto mediante el uso de conexiones dedicadas, cifrado o la combinación de ambos métodos.

FUENTE: Wikipedia.

¿Para que sirve una VPN?

Ejemplos comunes son la posibilidad de conectar dos o más sucursales de una empresa utilizando como vínculo Internet, permitir a los miembros del equipo de soporte técnico la conexión desde su casa al centro de cómputo o bien que un usuario pueda acceder a su equipo doméstico desde un sitio remoto, como por ejemplo un hotel. Todo ello utilizando la infraestructura de Internet.

La conexión VPN a través de Internet es técnicamente una unión wide area network (WAN) entre los sitios, pero al usuario le parece como si fuera un enlace privado: de allí la designación virtual private network.

FUENTE: Wikipedia.

Configurar una VPN con Wireguard.
Esquema gráfico del funcionamiento de una red privada virtual.

 

¿Qué es Wireguard?

 

WireGuard es una VPN extremadamente simple pero rápida y moderna que utiliza criptografía de última generación. Su objetivo es ser más rápida, más simple, más ágil y más útil que IPsec. Tiene la intención de tener un rendimiento considerablemente mayor que OpenVPN. WireGuard está diseñado como una VPN de propósito general para ejecutarse en interfaces integradas y supercomputadoras por igual, aptas para muchas circunstancias diferentes. Lanzado inicialmente para el kernel de Linux, ahora es multiplataforma (Windows, macOS, BSD, iOS, Android) y se puede implementar ampliamente. Actualmente se encuentra en un gran desarrollo, pero ya podría considerarse la solución VPN más segura, fácil de usar y más simple de la industria.

FUENTE: Wireguard.

 

Configurar una VPN con Wireguard.

Partimos de la base que tenéis un servidor (ya sea VPS, Raspberry Pi, etc) en el que vamos a realizar la instalación de Wireguard. Este servidor contará con una distribución basada en Debian y es el que vamos a utilizar para configurar una VPN con Wireguard.

Desde el kernel 5.4 Wireguard se encuentra en los repositorios de Linux en su versión estable. Concretamente en la versión 20.04 de Ubuntu ya disponemos de este kernel, de todas maneras la podemos instalar en su versión inestable en casi cualquier distribución basada en Debian.

Instalando Wireguard en el servidor.

Una vez nos hayamos conectado a nuestro servidor con distro basada en Debian, nos hacemos “root”:

sudo su

Antes de instalar cualquier programa en Linux es recomendable actualizar los repositorios:

apt update

Damos la siguiente orden a la terminal para instalar Wireguard:

apt install wireguard

Con esta orden instalaremos Wireguard (Ubuntu 20.04). Puede ser que en nuestra distribución no esté en los repositorios aún. Por ejemplo en Debian 10 en el momento de escrbir estas líneas. No habría problema, ejecutamos el siguiente comando en el caso de no estar en los repos:

add-apt-repository ppa:wireguard/wireguard

Una vez hecho esto ejecutaríamos nuevamente la orden apt install wireguard y comenzaría la instalación.

Instalando Wireguard inestable sobre S.O obsoleto (Debian 9) para configurar servidor VPN Wireguard.

Hemos utilizado en este caso una Orange Pi Zero y por necesidad el software más indicado que hay en su web oficial es Debian 9. Con Armbian, no hemos conseguido hacer funcionar Wireguard. Puedes descargar Debian para Orange Pi Zero desde aquí si tienes este dispositivo.

Le daremos a la terminal las siguientes órdenes:

echo “deb http://deb.debian.org/debian/ unstable main” > /etc/apt/sources.list.d/unstable.list
printf ‘Package: *\nPin: release a=unstable\nPin-Priority: 90\n’ > /etc/apt/preferences.d/limit-unstable
apt update
apt install wireguard

 

Configurar una VPN con Wireguard.
Sobre una Orange Pi Zero con Debian 9, hemos instalado una versión inestable de Wireguard para mostraros como se añade el repositorio.

 

Configurando la interfaz del servidor.

Ya con Wireguard instalado procederemos a preparar la interfaz. Para ello utilizando el comando cd nos moveremos a la siguiente ruta:

cd /etc/wireguard/

Aquí generaremos nuestro par de claves pública y privada de esta forma:

umask 077
wg genkey | tee servidor_private.key | wg pubkey > servidor_public.key

Con el comando ll podemos comprobar que se han creado las claves pública y privada. Ahora por seguridad cambiaremos el permiso de acceso a las claves para que sólo tenga acceso el usuario root. De esta manera si se viera comprometido el servidor, no podrían suplantarnos y dirigir el tráfico hacía otro servidor distinto del que hemos creado. Lo haremos de esta manera:

chmod 600 -R ../wireguard/

Creamos nuestro archivo de configuración:

touch wg0.conf

Desde la ruta en la que estamos, vamos a copiar y a pegar desde la línea de comandos nuestra clave privada. También podríamos copiarla y pegarla a golpe de click, pero nos ahorraremos algo de tiempo de esta manera:

cat servidor_private.key >> wg0.conf

Editando el archivo wg0.conf

Procedemos a editar el archivo de configuración. Utilizaré Nano, pero cada uno puede utilizar el editor de texto que le apetezca:

nano wg0.conf

Inmediatamente se abrirá el editor y observaremos que nuestra clave privada ya está dentro (recordar que la hemos copiado y pegado anteriormente con el comando cat wg private.key >> wg0.conf). Ahora editaremos el archivo y lo dejaremos con este aspecto:

[Interface]

Address = 10.0.0.1

PrivateKey = Aquí va vuestra clave privada

ListenPort = 51820 PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

 

Configurar una VPN con Wireguard.
El archivo wg0.conf quedaría así una vez añadido el cliente. Ahora sólo hemos puesto la interfaz.
Explicación paso a paso del apartado [Interface]

“Address” es la dirección en la VPN, le podéis dar la que queráis siempre y cuando no esté ocupada. Esta dirección es la que crea la red VPN, os sirve la que yo tengo perfectamente. Cada cliente deberá tener una distinta es decir, si el servidor es la 10.0.0.1 el cliente será la 10.0.0.2.

“PrivateKey” es vuestra clave privada, recordar que estaba copiada y pegada previamente.

“ListenPort” es el puerto donde va a trabajar Wireguard. Importante, por defecto 51820 UDP es el puerto en el que trabaja esta VPN, pero puede ser cualquier otro. Deberéis abrirlo en vuestro módem para que el servicio pueda funcionar.

“PostUp y PostDown” son las reglas del firewall. Sólo las necesitáis si tenéis reglas Iptables (lo lógico es que sí). Podéis copiar y pegar éstas pero deberéis conocer la interfaz, es decir la mía es eth0 pero la vuestra puede tener otro nombre. Lo podéis consultar de manera sencilla desde vuestra terminal con el comando ifconfig.

Con nuestro archivo ya editado con nano, presionamos Ctrl O para guardarlo y Ctrl X para cerrarlo. Vamos a activar Wireguard para que inicie con el sistema:

systemctl enable wg-quick@wg0

Arrancamos el servicio, comprobamos que esté activo y que se ha creado la interfaz (primero una orden y luego la otra):

systemctl start wg-quick@wg0
systemctl status wg-quick@wg0
ifconfig

Apunte importante sobre Forwarding.

Cuidado con esto porque nos puede robar tiempo. Necesitamos tener habilitado el forwarding:

sysctl -w net.ipv4.ip_forward=1

En caso de utilizar el gestor de cortafuegos UFW habilitamos los puertos de esta manera:

ufw allow 22/tcp
ufw allow 51820/udp
ufw enable

Este apunte es importante para poder tener salida a internet. Si no fuera así una vez montado el servicio, conviene revisar la ruta /etc/sysctl.d y el archivo que se llama 99-sysctl.conf. Lo abriremos con nano y buscaremos las siguientes líneas:

# Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forward=1

Observar que en inglés pone “Elimine el comentario de la siguiente línea para habilitar el reenvío de paquetes para IPv4“. Simplemente borrarremos el # de la línea que pone net.ipv4.ip_forward=1 guardamos con Ctrl O y salimos. Ya deberíamos tener salida a internet.

Configurar cliente Wireguard en Windows

Wireguard es multiplataforma. Funciona en Linux, Windows, MacOS, Android e IOS. Os voy a enseñar como configurar todos los dispositivos como clientes. Veamos como configuramos un cliente Wireguard en Windows 10.

Wireguard
Tenemos que descargar el cliente de Wireguard para Windows desde su web para configurar una VPN con Wireguard.

Desde nuestro PC Windows, nos vamos a la web de Wireguard y descargamos el programa para Windows. Lo instalamos y le damos permisos de administrador. A continuación en Add Tunnel presionamos sobre Add empty tunnel y rellenamos los datos tal y como salen en la imágenes. Las claves pública y privada ya nos las autogenera el propio programa.

Wireguard
Hacemos click e “Add Tunnel” y seguidamente “Add empty tunnel”
Wireguard
Rellenaremos los datos como en la imagen. Importante las claves pública y privada las autogenera el programa.

Configurando el servidor para añadir el cliente Windows.

Nuevamente dentro de nuestro servidor Linux y en la ruta /etc/wireguard/ vamos a modificar el archivo wg0.conf. Lo haremos así:

nano wg0.conf

Añadimos debajo de Interface el apartado Peer y queda de esta manera:

[Interface]

Address = 10.0.0.1

PrivateKey = Aquí va vuestra clave privada

ListenPort = 51820 PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]

Publickey = LA CLAVE PÚBLICA QUE GENERÓ TU CLIENTE WINDOWS

AllowedIPs =10.0.0.2/32

PersistentKeepAlive = 25

Hemos añadido el peer (nuestro cliente) con su clave pública generada previamente en el cliente windows (recordar que nos la generaba automáticamente cuando añadiamos el túnel). Tenemos también la IP 10.0.0.2 que corresponde con el cliente. Por último la línea PersistentKeepAlive = 25, es para que envíe un paquete cada 25 segundos, que es lo que recomiendan desde Wireguard.

Reiniciamos el servicio y comprobamos que se ha creado el cliente:

systemctl restart wg-quick@wg0
wg

Una vez en el cliente Windows, le daremos al botón “Activate” y ya estaría listo.

Instalando un cliente Linux.

Wireguard
Los comandos de configuración del cliente Linux, son idénticos a los del servidor.

No se puede realizar un artículo sobre Configurar una VPN en Wireguard y no hacerlo en Linux. Este programa está pensado para el S.O del pingüino así que vamos a ello.

Desde nuestro Cliente Linux y como root Instalamos Wireguard:

apt install wireguard

Es idéntico a realizar la instalación en el servidor así que no me extenderé demasiado:

Generaremos nuestro par de claves pública y privada de esta forma:

umask 077
wg genkey | tee clientelinux_private.key | wg pubkey > clientelinux_public.key

Creamos nuestro archivo de configuración del cliente Linux:

touch wg0.conf

Copiamos la clave privada de nuestro cliente Linux en el archivo de configuración:

cat clientelinux_private.key >> wg0.conf

Tecleamos nano wg0.conf para abrir el editor y dejamos el archivo de configuración de la siguiente forma:

[Interface]

Address = 10.0.0.3

PrivateKey = LA CLAVE PRIVADA DE TU CLIENTE LINUX

[Peer]

Publickey = LA CLAVE PÚBLICA DE TU SERVIDOR

AllowedIPs = 0.0.0.0/0

EndPoint= TU IP PÚBLICA:51820.

Modificando el servidor para admitir el cliente Linux.

Volvemos al servidor y en la ruta /etc/wireguard editamos nuevamente el archivo wg0.conf con nano. Lo dejamos de esta manera (observar que ya teníamos previamente el cliente Windows):

[Interface]

Address = 10.0.0.1

PrivateKey = Aquí va vuestra clave privada ListenPort = 51820 PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]

PublicKey = LA CLAVE PÚBLICA QUE GENERÓ TU CLIENTE WINDOWS

AllowedIPs = 10.0.0.2/32

PersistentKeepAlive = 25

[Peer] PublicKey = LA CLAVE PÚBLICA DE TU CLIENTE LINUX

AllowedIPs = 10.0.0.3/32

PersistentKeepAlive = 25

 

Wireguard
El archivo de configuración de nuestro “servidor” quedará así una vez añadido el cliente Linux.

Reiniciamos el servicio y comprobamos que se ha creado el cliente:

systemctl restart wg-quick@wg0
wg

Nuevamente en nuestro cliente Linux vamos a arrancar el servicio de Wireguard:

systemctl enable wg-quick@wg0
systemctl start wg-quick@wg0

Si hacemos ping y ponemos la dirección Ip de nuestro servidor, comprobaremos si funciona perfectamente. Eso sería todo para la configuración de un cliente Linux.

Configurar una VPN con Wireguard en IOS y Android.

Wireguard puede tener como clientes smartphones y teléfonos móviles que tengan como sistema operativo IOS y Android. Os mostramos como configurarlos.

Desde la consola de comandos de nuestro servidor, una vez escalado privilegios como usuario root nos dirijimos a la ruta /etc/wireguard. Recordar que para eso utilizamos la orden cd /etc/wireguard.

Vamos a crear un directorio para los clientes IOS y Android. Nos moveremos dentro de esa carpeta:

mkdir clientes_moviles
cd clientes_moviles

Para el tutorial en nuestro caso vamos a utilizar un sólo dispositivo móvil, así que no voy a generar más carpetas. Vosotros si queréis ser ordenados podéis generar una carpeta para cada teléfono móvil que queráis utilizar como cliente.

Generamos las claves pública y privada del cliente móvil:

wg genkey | tee clientemovil_private.key | wg pubkey > clientemovil_public.key

Creamos un fichero de configuración para el cliente móvil:

touch clientemovil.conf

Enviamos la clave privada de nuestro cliente móvil al archivo de configuración y además la clave pública de nuestro servidor con los siguientes comandos:

cat clientemovil_private.key > clientemovil.conf
cat ../../servidor_public.key >> clientemovil.conf

Ahora con nano clientemovil.conf vamos a editar el archivo de configuración. Recordar que la primera línea que tenemos dentro del archivo es la clave privada del cliente movil. La segunda línea es la clave pública de nuestro servidor. Con los anteriores comandos los hemos copiado y por eso están dentro. Ahora dejamos el arhivo de esta manera:

[Interface]

Address = 10.0.0.4

PrivateKey = LA CLAVE PRIVADA DE TU CLIENTE MÓVIL

ListenPort = 51820

[Peer]

Publickey = LA CLAVE PÚBLICA DE TU SERVIDOR

Endpoint = TU IP PÚBLICA:51820

AllowedIPs = 0.0.0.0/0

PersistentKeepAlive = 25

Configurar una VPN con Wireguard, añadiendo el cliente móvil al servidor.

Ahora vamos a por el archivo de configuración del servidor y lo que vamos a hacer es copiar dentro la clave pública del cliente móvil. Tener cuidado de poner bien este comando, que podéis borrar el contenido del archivo de configuración del servidor:

cat clientemovil_publica.key >> /etc/wireguard/wg0.conf

Ahora editamos con nano el archivo de configuración del servidor:

nano /etc/wireguard/wg0.conf

Al final del archivo estará la clave pública de nuestro cliente movil, dejamos el archivo de configuración de esta manera:

[Interface]

Address = 10.0.0.1

PrivateKey = Aquí va vuestra clave privada

ListenPort = 51820 PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]

PublicKey = LA CLAVE PÚBLICA QUE GENERÓ TU CLIENTE WINDOWS

AllowedIPs = 10.0.0.2/32

PersistentKeepAlive = 25

[Peer] PublicKey = LA CLAVE PÚBLICA DE TU CLIENTE LINUX

AllowedIPs = 10.0.0.3/32

PersistentKeepAlive = 25

[Peer] PublicKey = LA CLAVE PÚBLICA DE TU CLIENTE MÓVIL

AllowedIPs = 10.0.0.4/32

PersistentKeepAlive = 25

Reiniciamos Wireguard y comprobamos que el cliente móvil esté permitido:

systemctl restart wg-quick@wg0
wg
Generando código QR con Qrencode.

Qrencode es un programa que nos permite generar un código QR desde la línea de comandos. Lo instalamos de esta forma:

apt install qrencode

Generamos nuestro código QR para escanear con nuestro dispositivo Android o IOS.

qrencode -t ansiutf8 < clientemovil.conf

Wireguard en nuestro Smartphone.

Desde App Store en IOS o Play Store en el caso de Android, descargamos la aplicación de Wireguard. En ambos sistemas operativos disponemos de un botón “+”. Pulsamos ese botón volvemos a presionar sobre Escanear desde código QR, o Crear desde código QR dependiendo del S.O.

Wireguard
A la izquierda el cliente IOS Y a la derecha el cliente Android. En ambos se escanea el QR de forma idéntica.

Le damos un nombre a nuestro túnel y si todo ha ido bien, tenemos listo nuestro cliente móvil IOS o Android con su VPN Wireguard.

Configurar un cliente MacOS en Wireguard

El procedimiento para configurar una VPN con Wireguard, incluye que este programa funcione en un cliente cuyo sistema operativo sea MacOS. Para el sistema operativo de Apple la configuración es sencilla.

En el momento de escribir estas líneas, la versión mínima que debes tener es MacOS 10.14, si no es así no podrás instalar Wireguard. Verificado lo anterior nos dirijimos a la App Store y escribimos en el buscador de app “wireguard”. Obtenemos e instalamos como con cualquier otro programa.

Wireguard
Wireguard se encuentra disponible en la App Store de MacOS.

Abrimos la aplicación, presionamos en el símbolo “+” hacemos click en Add Empty Tunnel y rellenamos los apartados tal y como os muestro en la imagen de abajo. Recordar que Wireguard autogenera la clave privada del cliente MacOS y la clave pública, ésta última te hará falta para configurar el cliente en el servidor.

Wireguar
El archivo de configuración de Wireguard en MacOS. Recordar que se nos autogeneran clave pública y privada.

Nuevamente iríamos al servidor a la ruta /etc/wireguard, a crear otro Peer. Tal y como hemos explicado más arriba. Con Nano o tu editor favorito añadimos un nuevo cliente en el archivo wg0.conf con la dirección IP que le hemos asignado y la clave pública del cliente MacOS. Guardamos el archivo y reiniciamos el servicio de Wireguard escribiendo en la consola systemctl restart wg-quick@wg0.

Volvemos al cliente MacOS y desde la App de Wireguard Activamos nuestra red.

Conclusiones

Como habéis podido observar Wireguard es un cliente más sencillo de configurar que por ejemplo Open VPN. Los resultados además son muy buenos. En nuestro afán de realizar artículos que puedan ayudar a los lectores que estén teletrabajando o incluso empresas y pymes, quisimos ofrecer el artículo más completo sobre Wireguard. Con esta guía podrás configurar un Servidor Linux para que tenga una Red Privada Virtual basada en Wireguard y además añadir un cliente en casi cualquier Sistema Operativo del mercado.

Este servidor podría ser una VPS, una placa de desarrollo SBC (como por ejemplo Raspberry Pi) o un ordenador utilizado para esta labor. En cualquier caso de los pocos problemas que se os podrían plantear en el montaje, me gustaría mencionar algunos importantes.

Imposibilidad de asignar una IP Pública para configurar una VPN con Wireguard

Imposibilidad de asignar una IP pública a tu servidor porque tu ISP no te lo permite, por ejemplo. Para este caso y por ser un problema muy común, hemos realizado el artículo Duck DNS. Una dirección fija para tu IP dinámica.

Problemas para resolver DNS.

Te encuentras que tienes problemas con la resolución de nombres de dominio y aunque haces ping a los clientes desde el servidor y viceversa, no resuelve las direcciones. En este caso conviene revisar la configuración DNS de tu router. Deberían coincidir con la de tus clientes. Los utilizados por el servidor Linux se encuentran en la ruta /etc/resolv.conf. Con un editor como Nano puedes editarlos y comprobar si está ahí el problema.

En todo caso, ante cualquier duda recuerda que puedes dejarla en los comentarios y te intentaremos ayudar.

8 comentarios en «Configurar una VPN con Wireguard.»

  1. Estimado, buenas tardes.

    Disculpe la molestia pero me urge una duda.
    Cuando intento configurar el cliente en MacOS y voy a crear la conexión como lo indica en el instructivo a mi también me parece en gris el botón guardar (al igual que en la captura publicada como ejemplo), por lo cual me es imposible crear la conexión.
    Saben como se habilita esa opción o como puedo darle a Wireguard los permisos que necesita?

    Muchas gracias, saludos.

    Responder
    • Hola Esteban. A nosotros nos sale en gris porque no hemos puesto la clave privada (te la autogenera MacOS), ni tampoco la clave pública del servidor. Una vez completado esos datos te deja guardarlos, si has puesto todo correctamente debería funcionar tu red VPN.

      Responder
  2. Hola , y muchas gracias por tu información.
    Yo tengo 2 servidores wireguard, y quería si es posible que al menos uno también sea cliente.
    la idea es generar copias de seguridad programadas del uno al otro.
    Nos interesa que los dos servidores sean accesibles desde otros PCs
    Muchas gracias

    Responder
    • Hola. Si pudieras dar más detalles sería estupendo. Comentas que tienes “dos servidores”, que no “dos clientes” ¿Verdad? De ser esto así, además quieres que uno de esos servidores ¿Sea cliente? ¿Estoy entendiendo bien? Saludos.

      Responder
  3. Tengo un cliente Wireward en Windows 10 , conectado a un server wiregard sobre mikrotik. Se conecta muy rapido, pero si trabajamos en escritorio remoto atraves de la UPN creada, se producen cortes de la conexion continuos cada varios minutos (alternativos).

    ¿Alguna idea de que podria ser? Los firewall los he desconectado en el PC

    Responder
    • Hola. Con los datos que nos das es un poco difícil decirte algo, porque no conozco la infraestructura que tienes montada. Parece que el software está funcionando, por lo que comentas ¿Te has asegurado que no hay problemas en tu red? Es decir que el hardware esté funcionando correctamente (servidor, conexiones, router, clientes). Si tuvieras la posibilidad de hacer más pruebas con diferentes equipos por descartar, sería estupendo. Si nos dices más, estoy atento por si puedo ayudarte. Saludos

      Responder
  4. Hola,

    tengo un rpi con el wireguard como servidor con esta config:
    [Interface]
    Address = 192.168.1.80/29
    ListenPort = 51840
    PrivateKey = XXXXX

    PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORW>
    PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FO>

    [Peer]
    # Movil que voy a usar como cliente 1
    PublicKey = YYYYY
    AllowedIPs = 0.0.0.0/0
    PersistentKeepAlive = 25

    La configuración del cliente es:
    [Interface]
    Address = 192.168.1.101/32
    PrivateKey = ZZZZZ
    DNS = 8.8.8.8, 8.8.4.4

    [Peer]
    PublicKey = AAAAA
    AllowedIPs = 0.0.0.0/0
    Endpoint = 2dirIPPublica_router:51840
    PersistentKeepalive = 25

    Tengo activado el sudo sysctl net.ipv4.ip_forward

    al levantar el servidor Wireguard en la RPI, me quedo sin conexión a internet, aunqu es curioso, porque aunque no pueda navegar hacia fuera, parece que me acepta las conexiones VPN.

    Detalle de la salida del terminal:

    systemctl status wg-quick@wg0
    [email protected] – WireGuard via wg-quick(8) for wg0
    Loaded: loaded (/lib/systemd/system/[email protected]; enabled; vendor preset: enabled)
    Active: active (exited) since Fri 2023-12-08 01:07:25 CET; 30s 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: 3657 ExecStart=/usr/bin/wg-quick up wg0 (code=exited, status=0/SUCCESS)
    Main PID: 3657 (code=exited, status=0/SUCCESS)
    CPU: 556ms

    Dec 08 01:07:25 rpi wg-quick[3657]: [#] ip -4 address add 192.168.1.80/29 dev wg0
    Dec 08 01:07:25 rpi wg-quick[3657]: [#] ip link set mtu 1420 up dev wg0
    Dec 08 01:07:25 rpi wg-quick[3657]: [#] wg set wg0 fwmark 51820
    Dec 08 01:07:25 rpi wg-quick[3657]: [#] ip -4 route add 0.0.0.0/0 dev wg0 table 51820
    Dec 08 01:07:25 rpi wg-quick[3657]: [#] ip -4 rule add not fwmark 51820 table 51820
    Dec 08 01:07:25 rpi wg-quick[3657]: [#] ip -4 rule add table main suppress_prefixlength 0
    Dec 08 01:07:25 rpi wg-quick[3657]: [#] sysctl -q net.ipv4.conf.all.src_valid_mark=1
    Dec 08 01:07:25 rpi wg-quick[3657]: [#] nft -f /dev/fd/63
    Dec 08 01:07:25 rpi wg-quick[3657]: [#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING ->
    Dec 08 01:07:25 rpi systemd[1]: Finished WireGuard via wg-quick(8) for wg0.

    wg
    interface: wg0
    public key: NIAw/S0vuAaTNEl570KEcDn8siOk/cew8zQdge9NWBs=
    private key: (hidden)
    listening port: 51840
    fwmark: 0xca6c

    peer: E9xFybyF+vN6vScmbZIJdjqHaaTGRwPE7TuMzC+14HU=
    allowed ips: 0.0.0.0/0
    persistent keepalive: every 25 seconds

    ¿me podrías ayudar?

    Gracias.
    Un saludo

    Responder
    • Hola. La configuración parece correcta. No sé exactamente si el problema lo tienes resolviendo el dominio o también con la IP del dominio, es decir estaría bien si puedes indicar si al hacer ping desde tu servidor Wireguard por ejemplo a Google al 8.8.8.8, consigues transmitir y recibir paquetes. Si recibieras respuesta al hacer ping a 8.8.8.8, modifica con “nano” el archivo “/etc/resolv.conf” como indico en el final del artículo (haz una copia del archivo por seguridad) y pon como nameservers las direcciones 8.8.8.8 y 8.8.4.4 que veo que son las que tiene tu cliente. Podrías hacer esta prueba y ver qué ocurre. No has indicado si entre el servidor y el cliente hay comunicación, por lo que entiendo que sí.

      Responder

Deja un comentario