Ya hablamos hace un tiempo del servidor VPN Wireguard, este fantástico servidor que nos permite conectar a la red de casa de manera segura y rápida cuando estamos fuera, bueno yo digo casa pero es un servidor lo suficiente potente para tenerlo incluso en una empresa.
En su momento, cuando vimos las instalación de Wireguard, hicimos una instalación y una primera configuración de un usuario, si recordáis, había que entrar a la consola y escanear el código de barras o descargar el fichero de configuración.
Hoy os traigo una versión modificada de Wireguard que incorpora una interfaz web para añadir usuarios, eliminar, escanear los códigos de barra o descargar los ficheros de configuración de este usuario.
Añadir que también podemos ver la IP asignada, así como el tráfico que esta generando una vez conectado el cliente.
Como siempre haremos la instalación en docker.
Para finalizar la introducción, en mi caso he escogido Wireguard Easy porque tiene versión docker para ARM, empecible si lo queremos meter en una Raspberry PI, si no utilizáis una Raspberry PI, sigue siendo buena opción pero si no os gusta tenéis más posibilidades con otros proyectos.
Para empezar dos requisitos, tener un dominio que puede ser de duckdns y abrir los puertos en el router, en este caso será necesario el 51820 UDP y redirigirlo al equipo que tiene instalado Wireguard.
Para instalar y configurar duckdns podeis ir aquí
A partir del segundo 42 hablo de como configurar una cuenta duckdns y como crear el docker para que vaya actualizando la IP en nuestro dominio duckdns, os podeis saltar la parte de Nginx Proxy Manager.
Una vez tengamos el puerto en el router abierto y redireccionado y duckdns funcionando vamos con la parte Wireguard.
Para empezar crearemos un directorio para guardar la configuración y el docker-compose
mkdir wireguard
Entramos
cd wireguard
Y creamos el docker-compose yml
nano docker-compose.yml
Y pegamos este código
version: "3.8"
services:
wg-easy:
environment:
# ⚠️ Required:
# Change this to your host's public address
- WG_HOST=midominio.duckdns.org
# Optional:
- PASSWORD=admin
#- WG_PORT=51820
# - WG_DEFAULT_ADDRESS=10.8.0.x
- WG_DEFAULT_DNS=1.1.1.1
# - WG_MTU=1420
# - WG_ALLOWED_IPS=192.168.15.0/24, 10.0.1.0/24
# - WG_PRE_UP=echo "Pre Up" > /etc/wireguard/pre-up.txt
# - WG_POST_UP=echo "Post Up" > /etc/wireguard/post-up.txt
# - WG_PRE_DOWN=echo "Pre Down" > /etc/wireguard/pre-down.txt
# - WG_POST_DOWN=echo "Post Down" > /etc/wireguard/post-down.txt
image: weejewel/wg-easy
container_name: wg-easy
volumes:
- ./config:/etc/wireguard
ports:
- "51820:51820/udp"
- "51821:51821/tcp"
restart: unless-stopped
cap_add:
- NET_ADMIN
- SYS_MODULE
sysctls:
- net.ipv4.ip_forward=1
- net.ipv4.conf.all.src_valid_mark=1
Os lo explico:
Este docker-compose lo podeis copiar también de la web de proyecto en github
https://github.com/WeeJeWel/wg-easy
En el código podéis encontrar el mismo docker-compose.yml
Como parámetro principal a cambiar
WG_HOST=midominio.duckdns.org
Aquí tenéis que poner vuestro domino DuckDNS
El resto se puede dejar igual para empezar, pero siguiendo las instrucciones podéis modificar algunos parámetros como el DNSo las IPs a las que se puede acceder, entre otros.
Lanzamos el contenedor
docker-compose up -d
Ahora nos podemos ir al navegador y escribir la IP del equipo que tiene Wireguard instalado, seguido del puerto 51821
http://IP_sistema_wireguard:51821
Nos saldrá una pantalla así

En el docker-compose hay un parámetro que ponía
– PASSWORD=admin
Este es el password a menos que lo hayáis cambiado, recomendable cambiarlo.
Ponemos la contraseña y ya podemos crear nuestro primer usuario de Wireguard.
Genial, eres un crack
Gracias!!! He añadido video.
Graciasss me ha servido