Wireguard Easy, Servidor VPN en Docker con interfaz web para administrar

Linux Raspberry PI Tutorial

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í

(2) Acceder a tu servidor desde Internet con NGINX PROXY MANAGER , LET’S ENCRYPT y DUCKDNS con DOCKER – YouTube

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í

Pantalla Login Wireguard Easy

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.

3 comentarios en «Wireguard Easy, Servidor VPN en Docker con interfaz web para administrar»

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.