BookinglyTech News
Software

wg-admin: UI web para administrar un host WireGuard existente

Una interfaz ligera que gestiona los archivos de configuración en /etc/wireguard sin interrumpir la interfaz activa, con soporte para agregar, editar y rotar pares y generar archivos y códigos QR de clientes.

2 min de lecturaShow HN0 vistas

wg-admin es un panel web minimalista pensado para hosts que ya ejecutan WireGuard. En lugar de crear nuevas configuraciones o reemplazar wg‑quick, lee los archivos que ya existen en /etc/wireguard, los muestra y permite modificarlos con un simple clic.

Instalación y uso

git clone https://github.com/logimaxx/wg-admin.git
cd wg-admin
sudo ./install.sh

Una vez instalado, la aplicación escucha en 127.0.0.1:8080. Se configura una contraseña de administrador y se accede a http://127.0.0.1:8080. Los archivos *.conf presentes en /etc/wireguard aparecen en la lista y pueden modificarse directamente.

Para eliminar el servicio, basta con:

sudo ./uninstall.sh

El servicio no toca los archivos de WireGuard; simplemente se elimina la unidad systemd.

Características principales

  • Gestión en vivo: cada archivo *.conf se muestra y se puede editar sin reiniciar la interfaz.
  • Aplicación sin rebote: al actualizar la configuración se escribe el archivo y, si la interfaz está activa, se ejecuta wg syncconf; si está apagada, solo se actualiza el archivo.
  • Ciclo de vida de pares: añadir, renombrar, editar, rotar claves y eliminar pares. Los pares creados en la UI generan un archivo .conf descargable y un código QR.
  • Estado en tiempo real: se muestra el último handshake, la transferencia y el endpoint de cada par.
  • Respaldo seguro: antes de cada cambio se guarda una copia bajo /var/lib/wg-admin/backups/.
  • Seguridad local: escucha solo en 127.0.0.1; se recomienda colocar un proxy con TLS (Caddy, nginx) si se necesita acceso externo.

Requisitos

  • Linux con Python 3.11+.
  • wireguard-tools (wg) para leer y aplicar la configuración.
  • Acceso root o equivalente a /etc/wireguard y CAP_NET_ADMIN.

Configuración por defecto

Los ajustes se almacenan en /etc/wg-admin.env:

WG_ADMIN_HOST=127.0.0.1
WG_ADMIN_PORT=8080
WG_ADMIN_CONFIG_DIR=/etc/wireguard
WG_ADMIN_STATE_DIR=/var/lib/wg-admin

Compatibilidad con la configuración actual

wg-admin conserva todos los valores de la sección [Interface] y de los [Peer] existentes. Los nombres de los pares se extraen de los comentarios (# Alice o # Name = Alice). Solo los pares creados o rotados a través de la UI generan archivos de cliente; los pares preexistentes no reciben claves privadas.

Desarrollo

Para probar el proyecto en modo demo:

python3 -m venv .venv
source .venv/bin/activate
pip install -e '.[dev]'
pytest ./scripts/run-demo.sh

El demo nunca invoca wg.

Contribuciones

wg-admin está bajo licencia MIT y el código está disponible en GitHub. El autor es Sergiu Voicu, cofundador de LogiMaxx Systems, una firma de servicios de TI enfocada en monitoreo y automatización operativa.

Para más información, visita la página de la empresa: LogiMaxx Systems y la discusión en Hacker News: Hacker News.