2025-01-21
Configurando Wireguard: Scripts de Administración para tu VPN
Scripts de Administración de Wireguard
Ambos scripts están copiados y desarrollados a partir de David Gross — ¡todos los créditos para él!
Scripts para aprovisionar clientes de Wireguard. Escritos para ejecutarse en el mismo equipo Linux que el servidor Wireguard. El enfoque está en el uso diario de lo básico: añadir y eliminar peers/clientes.
Hay principalmente 1 script bash y 2 scripts de plantilla:
- make_install.sh — permite al usuario configurar con sus propias IPs, rutas de archivos y más
- add-client-template.sh
- delete-client-template.sh
El make_install.sh genera dos scripts basados en la entrada del usuario:
- add-client.sh
- delete-client.sh
Y un directorio llamado clients que contiene:
- last-ip.txt — mantiene el estado de la última IP usada
- wg0-template.conf — plantilla para generar la configuración básica del peer
- wg0-template-prekey.conf — plantilla con clave precompartida
Consideraciones
He tenido GRANDES dolores de cabeza intentando configurar un servidor VPN autoalojado. Para ayudar, aquí van algunos consejos:
- No uses una VPN mientras configuras Wireguard — solo complica las cosas.
- Comprueba que tus puertos del servidor están habilitados y configurados (generalmente 51820 por defecto).
- Comprueba que tienes una dirección IP estática o un DNS estático. Esto se puede configurar con tu ISP.
- Para comprobar si tienes una IP CGNET, mira la IP WAN en tu dashboard de Unifi. Si está entre
100.64.0.0y100.127.255.255, tienes una dirección CGNET. - Asegúrate de ajustar tu DNS del servidor. Si lo has cambiado (ej. Cloudflare:
1.1.1.1,1.0.0.1), añádelo al archivo de configuración.
Pre-requisitos
- Wireguard instalado en el servidor con wg0 básico configurado
- qrencode para configuración fácil en móvil:
apt install qrencode
add-client
Script para generar claves de cliente, archivos de configuración y configurarlo en el servidor Wireguard. Genera un código QR en la terminal para configuración fácil en móvil.
WG_DIR='/etc/wireguard'
SERVER_ADDRESS='ip pública'
SERVER_PORT='51820'
SERVER_WG_IF='wg0'
CLIENT_DIR='/etc/wireguard/clients'
CLIENT_IP='192.168.5.'
delete-client
Script para eliminar un cliente del servidor Wireguard, incluyendo todos los archivos de configuración generados.
Contribuir
Estoy abierto a cualquier feedback. Si tienes preguntas, ¡no dudes en preguntar!