Configurar WireGuard en EdgeRouter 4 / 6P

Vamos a configurar la VPN de WireGuard en el EdgeRouter 4 (válido para el 6P).
Primero de todo, nos conectamos por terminal al router
$ ssh ubnt@ip_router
_____ _
| ____|__| | __ _ ___ (c) 2010-2020
| _| / _ |/ _ |/ _ \ Ubiquiti Networks, Inc.
| |__| (_| | (_| | __/
|_____\__._|\__. |\___| https://www.ubnt.com
|___/
Welcome to EdgeOS
By logging in, accessing, or using the Ubiquiti product, you
acknowledge that you have read and understood the Ubiquiti
License Agreement (available in the Web UI at, by default,
http://192.168.1.1) and agree to be bound by its terms.
[email protected]'s password:
Linux EdgeRouter-4 4.9.79-UBNT #1 SMP Thu Jun 15 11:34:36 UTC 2023 mips64
Welcome to EdgeOS
ubnt@EdgeRouter-4:~$
Con el fin de tener todo organizado, creamos una carpeta de nombre wireguard
en /home/$user
mkdir wireguard && cd wireguard
Descargar e instalar wireguard
Ahora, descargamos el paquete de wireguard para el EdgeRouter 4 (válido para el 6P, también hay otros modelos disponibles)

Repositorio oficial de WireGuard para EdgeOS: https://github.com/WireGuard/wireguard-vyatta-ubnt/releases
curl -OL https://github.com/WireGuard/wireguard-vyatta-ubnt/releases/download/1.0.20220627-1/e300-v2-v1.0.20220627-v1.0.20210914.deb
Ya con el paquete descargado, lo instalamos
sudo dpkg -i e300-v2-v1.0.20220627-v1.0.20210914.deb
y verificamos la instalación
ubnt@EdgeRouter-4:~$ sudo wg --version
wireguard-tools v1.0.20210914 - https://git.zx2c4.com/wireguard-tools/
Generar claves

Generamos las clave privada y pública y tambien la preshared-key
wg genkey | tee /config/auth/wireguard.key | wg pubkey > /config/auth/wireguard.pub
wg genpsk | tee /config/auth/wireguard.psk
Comprobamos las claves
ubnt@EdgeRouter-4:~$ ls -l /config/auth/
total 12
-rw-r--r-- 1 ubnt vyattacf 45 Dec 31 02:13 wireguard.key
-rw-r--r-- 1 ubnt vyattacf 45 Dec 31 02:13 wireguard.psk
-rw-r--r-- 1 ubnt vyattacf 45 Dec 31 02:13 wireguard.pub
Definir reglas
Ahora definiremos las reglas.
configure
set firewall name WAN_LOCAL rule 20 description 'Allow WireGuard'
set firewall name WAN_LOCAL rule 20 action accept
set firewall name WAN_LOCAL rule 20 protocol udp
set firewall name WAN_LOCAL rule 20 destination port 51820
commit ;save
El puerto 51820
, es por defecto, pero mejor utiliza otro.
Configurar Interface
configure
set interfaces wireguard wg0 description "WireGuard"
set interfaces wireguard wg0 private-key /config/auth/wireguard.key
set interfaces wireguard wg0 address 10.1.1.1/24
set interfaces wireguard wg0 listen-port 51820
set interfaces wireguard wg0 route-allowed-ips false
commit ;save
En address
, introduce la IP que quieras usar como servidor de wireguard, y asegurate de seleccionar el puerto que has definido en las reglas en el paso anterior.
Te habrás fijado que la opción route-allowed-ips
está en false, es porque vamos a establecer acceso a la LAN.
Configuración de peers
Ya tenemos la parte de la red configurada, ahora toca generar los clientes.
Generamos la clave privada y pública de nuestra peer, (aquí podemos generar tantas como queramos.)
wg genkey | tee /home/ubnt/wireguard/peer.key | wg pubkey > /home/ubnt/wireguard/peer.pub
Necesitaremos la clave privada (peer.key
) que usaremos luego para configurar nuestra App.
Hacemos un cat a nuestra clave pública de nuestra peer
cat /home/ubnt/wireguard/peer.pub
y copiamos nuestra clave.
Ahora configuraremos nuestro peer, adaptarlo a vuestra configuración.
configure
set interfaces wireguard wg0 peer {your peer pub key} description "Android"
set interfaces wireguard wg0 peer {your peer pub key} allowed-ips 192.168.1.0/24
set interfaces wireguard wg0 peer {your peer pub key} endpoint {your_sub_domain.domain.com}:51820
set interfaces wireguard wg0 peer {your peer pub key} persistent-keepalive 15
set interfaces wireguard wg0 peer {your peer pub key} preshared-key /config/auth/wireguard.psk
commit ;save
En allowed-ips
, le indicamos el rango de ips permitido a ese peer, podemos poner el comodin 0.0.0.0/0
o un rango específico, cambiar el rango si fuera necesario.
Debereis indicar también vuestro endpoint para poder acceder remotamente a vuestra red y el puerto definido en la regla
Entramos en el interfaz web del router, y veremos nuestro nuevo interfaz.

Configuración para MacOS / Linux y Win
Creamos un fihcero de texto que guardaremos como peer.conf
[Interface]
Address = {IPv4 del rango definido en "Configurar interface"}
DNS = 1.1.1.1,1.0.0.1 (o la IP del host donde tengamos AdGuardHome / PiHole)
ListenPort = {Puerto definido en "Configurar interface"}
PrivateKey = {Pegar contenido de /home/ubnt/wireguard/peer.key}
[Peer]
AllowedIPs = 192.168.1.0/24
Endpoint = {domain.com}:{port}
PersistentKeepalive = 15
PreSharedKey = {Pegar contenido de /config/auth/wireguard.psk}
PublicKey = {Pegar contenido de /config/auth/wireguard.pub}
Configurar cliente App WireGuard
Nos descargamos la App para nuestro dispositivo. Google Play o App Store
Creamos una nueva configuración desde 0.
Nombre: El que queramos.
Clave privada: Pegamos el contenido de
/home/ubnt/wireguard/peer.key
Clave pública: Se rellena automáticamente al poner la privada. (Que coincidirá con el
peer.pub
)Direcciones: Una IPv4 del rango que definimos "Configurar interface", en este tutorial
10.1.1.1/24
, pero no la10.1.1.1,
que esa es reservada del wireguard, elige otra dentro del rango.Puerto: El que hemos definimos anteriormente.
Servidor DNS: podemos usar uno público, ejemplo
1.1.1.1,1.0.0.1
de Cloudflare, de Google8.8.8.8,8.8.4.4
o mejor... si tenemos montado un AdGuardHome o un PiHole, podemos poner la IP del host donde lo tenemos, así evitamos tener publicidad también por la VPN 😎MTU: lo dejamos en auto

Le añadimos un Par.
Clave pública: Pegamos el contenido de
/config/auth/wireguard.pub
Clave precompartida: Pegamos el contenido de
/config/auth/wireguard.psk
Keepalive: El tiempo que definimos anteriormente en "Configuración de Peers"
EndPoint: EL dominio y puerto, el puerto es el definido en "Definir reglas",
{domain}:{port}
que tengamos configurado para poder acceder al el, si tenemos un DDNS, lo pondremos en este campo.IPs permitidas: Aqui pondremos los rangos separados por "
,
" que queramos tener acceso, en lugar de poner el comodin0.0.0.0/0
, podemos poner el rango de nuestra LAN, por ejemplo192.16.1.0/24
, la que definimos en "Configuración de peers"

Resultados

En esta captura, vemos como conectado en la red móvil, con la VPN, filtramos la publicidad y además tenemos habilitado y . 😎

Test de velocidad.
Red movil: 4G
Operador: Simyo
VPN: Conectado

A disfrutar! 😊
₿1K7BU83LW1LXZN2DKWRLRWJA51HDPFYZWM
Last updated
Was this helpful?