Para poder gestionar WireGuard de forma gráfica existe una interfaz web creada en Go que nos va a permitir crear usuarios nuevos, eliminarlos, etc. En este tutorial os explicamos como configurarlo en Ubuntu 20.04.
Instalación previa de WireGuard
Para usar WireGuard-UI es necesario tener instalado WireGuard, para ello ejecutaremos lo siguiente:
# apt install wireguard # modprobe wireguard
Instalación usando el binario compilado
Lo primero que haremos será ir al apartado de Releases de GitHub para descargar la versión más reciente. Cuando escribimos este tutorial van por la versión v0.3.7.
# wget https://github.com/ngoduykhanh/wireguard-ui/releases/download/v0.3.7/wireguard-ui-v0.3.7-linux-amd64.tar.gz
Y descomprimimos:
# tar zxf wireguard-ui-v0.3.7-linux-amd64.tar.gz
Ahora ejecutamos el binario descargado:
# ./wireguard-ui
Y nos aparecerá lo siguiente:
Wireguard UI
App Version : v0.2.7
Git Commit : b8142b80c235753e501376e21d3694cd066d977c
Git Ref : refs/tags/v0.2.7
Build Time : 02-03-2021 10:46:34
Git Repo : https://github.com/ngoduykhanh/wireguard-ui
Authentication : true
Bind address : 0.0.0.0:5000
⇨ http server started on [::]:5000
Ahora podremos acceder al panel con la IP Pública del servidor y puerto 5000:
Importante
Para poder acceder al puerto 5000 debéis de tener este puerto abierto en vuestro perfil de Firewall.
El acceso a WireGuard-UI es el siguiente:
- Usuario: admin
- Contraseña: admin
Es muy recomendable cambiar la contraseña de acceso, lo podéis hacer modificando el fichero db/server/users.json
Importante!
Recuerda que una vez configurado los clientes, debes de matar el proceso de WireGuard-UI.
Instalación desde el código fuente
Para compilar de forma manual WireGuard-UI es necesario instalar los siguientes paquetes:
- Primero es necesario tener Yarn:
# curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - # echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list # apt update # apt install yarn
- Segundo hay que tener instalado Go
# apt-get install golang-rice golang-go gcc g++ make
- Tercero también es necesario NodeJS
# curl -sL https://deb.nodesource.com/setup_15.x | bash -
# apt-get install -y nodejs
Descargamos el repositorio de GitHub:
# git clone https://github.com/ngoduykhanh/wireguard-ui.git
Y ejecutamos el script para preparar los assets:
# ./prepare_assets.sh
Y compilamos el código fuente:
# rice embed-go
# go build -o wireguard-ui
Tras el proceso, tendremos nuestro binario para poderlo ejecutar.
# ./wireguard-ui
Importante!
Recuerda que una vez configurado los clientes, debes de matar el proceso de WireGuard-UI.
Configurar WireGuard desde WireGuard-UI
Nos vamos al apartado WireGuard Server y allí configuramos lo siguiente:
Tendremos que añadir la interfaz web privada del servidor 10.0.8.1/24, deberemos de abrir el puerto 51820 UDP en el Perfil de Firewall del servidor y luego añadir el Post Up Script y el Post Down Script:
- PostUp Script: iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
- PostDown Script: iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
Le damos a Save y luego arriba a la derecha Apply Config y reiniciamos el servicio de WireGuard.
Crear cliente de WireGuard
Nos vamos a WireGuard Client y luego hacemos clic sobre New Client:
En Allowed IPs tendremos que añadir las dos rutas 10.0.8.0/24 y 10.20.10.0/24, una vez hemos enviado los cambios tenemos que hacer clic arriba a la derecha Apply Config. Tras crear el usuario tendremos opción de leer el Código QR para configurar el dispositivo o descargar el fichero de configuración para importarlo al Cliente de WireGuard.