Skip to content

Wireguard

Pablo Umanzor A. edited this page Nov 25, 2025 · 78 revisions

En esta WIKI obtendras información técnica de como conectar desde diferentes tipos de clientes (Linux, Windows, Mikrotik Router u otros) hasta nuestros servicios de IP Publica fija mediante una conexión VPN cifrada con el software Wireguard.

Linux

Este pagina indica los pasos para conectar a nuestro servicio de IP Publica Fija via cliente Wireguard desde una maquina con Debian 11 Bullseye

En primer lugar iniciar como root o ejecutar con sudo los siguientes comandos para actualizar el repo e instalar wireguard

apt-get update

apt-get install wireguard

Posteriormente, Ingresar al directorio

/etc/wireguard

en este momento se va a crear la llave privada con el siguiente comando (preferentemente como usuario root)

wg genkey | tee /etc/wireguard/private.key

chmod go= /etc/wireguard/private.key

El comando anterior elimina cualquier permiso en el archivo para usuarios y grupos que no sean el usuario raíz para garantizar que solo él pueda acceder a la clave privada.

Luego ya existiendo la clave privada se procede a crear la clave publica

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

A continuación para revisar los archivos creados hacer un ls -la en el directorio /etc/wireguard

cd /etc/wireguard ls -al

-rw-------   1 root root    45 jun 19 20:54 private
-rw-------   1 root root    45 jun 19 20:54 public

Posteriormente crear un archivo con este nombre en el siguiente directorio

/etc/wireguard

con el siguiente contenido

[Interface]
PrivateKey = el_contenido_del_archivo_private
Address = 10.X.Y.Z/24
DNS = 8.8.8.8

[Peer]
PublicKey = 4MknZteup+Q9NC27mYQIBkYYxyX6aNDtOvVnm2vDUws=
AllowedIPs = 0.0.0.0/0
Endpoint = IP_DEL_GATEWAY:PUERTO
PersistentKeepalive = 30

Con respecto a la seccion, [Interface]

En el campo , PrivateKey = - debe especificar la clave privada que se genero en el paso previo y que se encuentra en el archivo

/etc/wireguard/private

En el campo, Address = - esta dirección sera asignada al momento de la contratación como tambien se requerira el contenido del archivo

/etc/wireguard/public.key

que fue creado previamente y se enviara la IP Pública fija con la fecha de expiración del plan contratado para que lo registremos como usuario.

En la seccion [Peer] todo lo que aparece es de produccion por lo tanto puede ser usando tal como se muestra

Por ultimo iniciar el servicio con el siguiente comando

wg-quick up wg0

y verificar de que la nueva intefaz wg0 se encuentra activa y conectada a la red, ejecute este comando

wg

y compare la información que aparecera por pantalla con esta salida

 peer: 4MknZteup+Q9NC27mYQIBkYYxyX6aNDtOvVnm2vDUws=
   endpoint: 190.97.171.10:52962
   allowed ips: 0.0.0.0/0
   latest handshake: 4 seconds ago
   transfer: 15.23 KiB received, 23.57 KiB sent
   persistent keepalive: every 30 seconds

Lo cual es indicativo de que la interfaz esta arriba conectada y de que existe trafico bi-direccional (fluctuacion en aumento de transfer y received)

Con este comando

wg-quick down wg0

detiene el servicio wireguard junto con la interface

Recuerde que una vez conectado a alguno de nuestros gateways VPN (Wireguard), todos los puertos TCP y UDP que ud tenga listando como servicio en el equipo que va a levantar el tunel estaran sirviendo directamente a Internet por lo que se aconseja tomar todas los resguardos necesarios para evitar problemas de seguridad

Split Tunel

La siguiente configuracion adicional es para habilitar que solo el trafico que va hacia la IP publica fija via tunel sea procesado por la interfaz vpn wireguard y todo lo demas siga utilizando el gateway original de la red.

[Interface]
PrivateKey = XXXX...
Address = 172.X.Y.Z/30
DNS = 8.8.8.8
Table = 64111
PostUp = ip -4 rule add from 172.X.Y.Z table 64111
PostUp = iptables -I OUTPUT -s 172.X.Y.Z ! -o %i -j DROP
PostDown = ip -4 rule del from 172.X.Y.Z table 64111
PostDown = iptables -D OUTPUT -s 172.X.Y.Z ! -o %i -j DROP


[Peer]
PublicKey = XXXX... 
AllowedIPs = 0.0.0.0/0
Endpoint = IP_DEL_GW_Wireguard:53241
PersistentKeepalive = 30

De esta manera por ej. si desde la maquina donde se esta levantando el tunel quisiera navegar a algun sitio de Internet entonces va a salir con su IP original la cual fue provista por el actual ISP (ip dinamica), PERO si por ejemplo esta misma maquina lista un servicio web u otro servicio el trafico de vuelta se enrutara por el tunel saliendo con la IP publica fija que le hemos asignado.

Split tunnel mikrotik

Este setup funciona en ROS7.X, la idea es que solo el trafico hacia la interfaz con la ip publica ingrese y se devuelva por el tunel wireguard y que todo el demas trafico siga por el actual acceso a Internet, en el ejemplo

  • interfaz wireguard: wg1
  • direccion IP de interface wg1=172.16.1.2/30
  • direccion IP gateway tunel 172.16.1.1
  • /routing/table/add name=via_wireguard fib
  • /ip/firewall/mangle/add chain=prerouting in-interface=wg1 action=mark-connection new-connection-mark=wg_conn passthrough=yes
  • /ip/firewall/mangle/add chain=output connection-mark=wg_conn action=mark-routing new-routing-mark=via_wireguard passthrough=no
  • /ip/route/add dst-address=0.0.0.0/0 gateway=172.16.1.1 routing-table=via_wireguard distance=10
  • /interface/wireguard/peers/set allowed-address="0.0.0.0/0" interface=wg1

Windows

Compatibilidad Windows 7, 8.1, 10, 11, 2008R2, 2012R2, 2016, 2019, 2022

Configurar el paquete de software VPN Wireguard en Windows requiere del siguiente instalador el cual puede descagar desde aqui

https://www.wireguard.com/install/

Una vez descargado e instalado siga las instrucciones del wizard

Mikrotik ROS7.X

En esta sección se realizaran configuraciones para conectar con nuestro servicio VPN Wireguard mediante un Router Mikrotik con ROS7.X, para ello es necesario contar con acceso via winbox o via ssh al equipo a configurar, suponiendo que el router Mikrotik posee:

  • IP via DHCP en el segmento 192.168.1.0/24
  • IP gateway de la red interna 192.168.1.1
  • IP asignada luego de la contratacion de algun plan: ej. 10.128.1.15/24

Ingresar al CLI de ROS Mikrotik (New Terminal) y ejecutar

/interface/wireguard/add

el comando anterior va a crear una nueva interface con el nombre wireguard1 con su correspondiente clave pública y privada ademas del puerto escucha de manera automatica

Luego ejecutar

/interface/wireguard/peers

add endpoint-address=190.97.171.10 endpoint-port=52962 interface=wireguard1 public-key="4MknZteup+Q9NC27mYQIBkYYxyX6aNDtOvVnm2vDUws="

este comando agrega nuestro gateway endpoint VPN wireguard, indica el puerto , la interface y la clave publica del endpoint (el comando va todo en una sola linea, se muestra cortado aqui dado el ancho fijo que provee la pagina del wiki)

A continuacion corresponde asignar la direccion IP de la interface wireguard1 y que fue asignada al principio de esta sección:

/ip/address

add address=10.128.1.15/24 interface=wireguard1

Por ultimo se debe crear una ruta estatica para enviar todo el trafico por la ip del gw que soporta la interface wireguard

/ip/route

add dst-address=0.0.0.0/0 gateway=10.128.1.1

y asignarle una distancia 2 al gateway por default que asigno el dhcp-client

/ip/dhcp-client

set default-route-distance=2

Para finalizar agregar esta ruta estatica para asegurar que el EndPoint wireguard sea alcanzado por la default de la red interna

/ip/route

add dst-address=190.97.171.10 gateway=192.168.1.1

iOS iPhone

En Desarrollo

pfSense 2.6 CE

Instalar el paquete wireguard desde

System / Package Manager / Available Packages

luego ir al menu de VPN-->Wireguard, click boton verde "Add Tunnel", click boton azul "Generate" New Keys, una vez generadas las nuevas keys hacer click en "Public key for this tunnel. (Copy)" Copy y enviar esta llave publica por email (hostmaster [at] redlibre.cl)

Luego en "Interface addresses" escribir la direccion IP asignada al tunel que sera enviada via email. finalmente "save tunnel"

Posteriormente ir a

VPN / WireGuard / Peers

click en boton verde "Add Peer", en el combo box "Tunnel" seleccionar el tunel recientemente creado, luego DES-Seleccionar "Dynamic Endpoint", en "Endpoint" colocar la IP de nuestro GW: 190.97.171.100, Keep Alive :30 , publick key escribir la llave publica que sera enviada por email, por ultimo en "Allowed IPs" escribir

0.0.0.0/0

Click boton azul "Save Peer"

En el menu:

Interfaces / Interface Assignments

Asignar la interface del nuevo tuneel a OPT1, click en "save"

Finalmente ir a:

System / Routing / Gateways

Gateways boton verde "Add"

Interface "OPT1"

Gateway: la ip del gw que sera enviada por email

click en boton celeste "Display Advanced" y DES-seleccionar "Use non-local gateway", Save

Clone this wiki locally