WireGuard es un cliente-servidor VPN fácil de instalar y configurar, rápido y además moderno, ya que incorpora los últimos algoritmos criptográficos para dotar de la máxima seguridad posible a las comunicaciones. Según sus desarrolladores, es más rápida y simple que cualquier túnel IPSec y además sin tener que rompernos la cabeza con sus complicadas configuraciones. Respecto a OpenVPN, proporciona mayor rendimiento debido a sus algoritmos de última generación que utiliza.
En esta guía vamos a aprender a configurar wireguard tanto en nuestro servidor como en el móvil y en windows. Lo primero es agradecer a @SirNoish por hacerme de conejillo de indias y despues descargarnos el paquete correspondiente a nuestra version de boot.
Para el boot 1.03 usaremos la versión «bromolow» descargandola desde AQUI
Para el boot 1.04 usaremos la versión «apollolake» descargandola desde AQUI
Antes de comenzar, hay que abrir el puerto UDP 51820 para poder accedes desde el exterior.
La instalación se hace como cualquier otro paquete, en centro de paquetes, instalación manual… Una vez instalado nos tiene que aparecer en nuestro centro tal que así
Ya tenemos lo facil, ahora vamos a lo dificil. Se necesita un cliente instalado ya sea en windows, android, linux o mac. Para la guia se va a usar windows.
Nos dirijimos a la web oficial de wireguard y bajamos la version que vayamos a usar en https://www.wireguard.com/install/
Una vez instalado en nuestro pc, lo abrimos, vamos a «add tunnel» y «add empty tunnel»
Se nos abre una ventana nueva con los datos necesarios para crear el servidor. ES MUY IMPORTANTE no perderlos por si queremos ir añadiendo clientes con el paso del tiempo. En la imagen se ve la public key y la private key. Apuntadlas donde no se pierdan.
** Estas son solo a modo orientativo para el tutorial hacerlo mas facil. NO useis estas keys por vuestra seguridad.
PUBLIC KEY = 29BFvFxtrnNCaFkTVkY4xEbn5PpjWEyqWYzVnlbybxk=
PRIVATE KEY = sEnRMvES8599/RMgmQYWSJnN5ejCrsn4oTj51EgECkM=
Una vez apuntados, cerramos y le damos de nuevo a generar un nuevo tunel. Ponemos el nombre que queramos a la conexion y guardamos
Ahora nos conectamos a nuestro xpenology por ssh y creamos la siguiente carpeta
sudo mkdir /etc/wireguard
accedemos a la carpeta
cd /etc/wireguard
En este paso, cada uno puede elegir el editor que prefiera, ya sea nano, vim, … Yo usaré vim porque es el que viene por defecto en el servidor. Creamos el archivo de configuración
sudo vi wg0.conf
Se os abre un cuadro de texto en el cual para poder escribir hay que pulsar la tecla INSERT. Pegar la configuración minima y basica
[Interface]
Address = 10.0.0.1
# SACADA DEL CLIENTE WINDOWS QUE GUARDAMOS EN EL PRIMER PASO
PrivateKey = sEnRMvES8599/RMgmQYWSJnN5ejCrsn4oTj51EgECkM=
ListenPort = 51820
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o ovs_eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ovs_eth0 -j MASQUERADE
[Peer]
#pc
# SACADA DEL CLIENTE DE WINDOWS EN EL SEGUNDO PASO
Publickey = 2Ys6tpGgto7j2yYPYrl/Gd6pgzw3LpB28k0q3Si5BkA=
AllowedIPs = 10.0.0.2
Para guardar el archivo, pulsamos ESC y escribimos en cualquier parte de la pantalla :wq
IMPORTANTE
El recuadro en rojo (ovs_eth0) es el nombre de vuestra conexión. No me he encontrado aun ningún caso en xpenology que no se llame así, pero para comprobarlo basta con poner por ssh ip a y nos muestra el nombre. Si en vuestro caso es otro lo modificáis y guardáis.
Aquí se acaba la configuración de la parte del servidor. Ahora volvemos al cliente de windows y hacemos la configuración. Le damos a edit y completamos
[Interface]
PrivateKey = KKxAV3A+CsRHvfKor0Qp+cqHQT3dy2slK+Sj/xuhH08=
Address = 10.0.0.2/32
DNS = 1.1.1.1
[Peer]
# SACADA DEL CLIENTE WINDOWS QUE GUARDAMOS EN EL PRIMER PASO
PublicKey = 29BFvFxtrnNCaFkTVkY4xEbn5PpjWEyqWYzVnlbybxk=
AllowedIPs = 0.0.0.0/0
Endpoint = tu.ddns.net:51820
Salvamos y volvemos al servidor por ssh. Enviamos este comando
sudo sysctl -w net.ipv4.ip_forward=1
Y ya está. Solo nos falta lanzar la conexión y hacer la prueba. Por ssh lanzamos el siguiente comando. Si todo ha ido como viene en el tutorial deberiais ver una imagen como la siguiente.
sudo wg-quick up wg0
Volvemos al cliente de windows. Pinchamos en activate y conectará con el servidor.
Comprobamos por ssh que funciona
sudo wg
Para rematar la faena, vamos a crear una tarea activada para que se inicie wireguard cada vez q encienda el servidor.
En la próxima entrada aprenderemos a crear la conexión con un móvil android.