WireGuard
Con este articulo en formato de guía por pasos, voy a configurar una VPN con WireGuard, tanto el servidor, como un par de clientes (Windows y IOS)
Podemos obtener toda la documentación de su página oficial en https://www.wireguard.com/
Lo primero que debemos hacer es instalar WireGuard en una máquina Linux con el siguiente comando:
~# apt install wireguard
Una vez instalado y antes de empezar con la configuración, vamos a abrir el puerto del rooter, en mi caso he abierto el siguiente puerto:
Configuración del archivo del servidor
1. Creamos el par de claves para el servidor con el comando que se ve en la siguiente imagen:
2. Protegemos el acceso a la carpeta donde vamos a almacenar todas las claves, empezando por las que creamos en el punto anterior:
3. A continuación, creamos el fichero wg0.conf y volcamos dentro el contenido de la clave privada que hemos creado para el servidor, para ello ejecutamos los siguientes comandos:
4. Editamos el archivo wg0.conf(*) con nuestro editor preferido y empezamos a organizar de la siguiente forma:
*Cuando entremos por primera vez, solo encontraremos la clave privada que hemos introducido anteriormente.
5. A continuación, habilitamos el servicio de wireguard con el siguiente comando:
6. Comprobamos que el servicio está corriendo:
7. Lo siguiente que vamos a mirar es que se a creado una nueva interfaz llamada wg0, donde podremos ver como IP la que pusimos en el archivo de configuración que creamos:
8. Por último, si queremos tener navegación cuando estemos conectados a la VPN, debemos de añadir en la parte de interface dentro de wg0.conf las siguientes reglas de iptables:
Configuración de Cliente Móvil
1. Creamos dentro de la carpeta wireguard la carpeta clientes:
2. Y dentro de esta vamos a crear una para nuestro cliente móvil, en mi caso para un dispositivo IOS, donde generaremos de nuevo un par de claves:
3. Una vez hecho el paso anterior, vamos a crear un archivo movil.conf donde volcaremos la clave que acabamos de crear y cogeremos también la clave pública del archivo servidor_publica.key como podemos ver en la siguiente imagen:
4. En el siguiente paso, nos metemos a editar el archivo móvil.conf, donde agregaremos la clave pública del servidor, el puerto de escucha, además de, la ip pública(Endpoint), así como el puerto de destino:
5. Ahora, mandamos la clave pública del dispositivo al archivo de configuración del servidor de wireguard:
6. Y configuramos el cliente en el archivo del servidor de la siguiente forma:
7. Una vez realizado esto, reiniciamos el servicio de wireguard:
8. Ahora vemos con el comando wg que la configuración funciona corretamente:
En los siguientes pasos, lo que vamos a hacer es mandar la configuración que hemos creado para el dispositivo móvil mediante un código QR, para ello debemos de instalar el siguiente programa:
9. Una vez instalado, generemos el código QR con el siguiente comando:
10. Ahora lo que debemos de hacer es ir al dispositivo móvil y leer el código QR generado, donde se nos hará una serie de preguntas y veremos como se carga la configuración del perfil en el dispositivo móvil:
Permitimos que añada la configuración de la VPN
Le ponemos el nombre que queramos a la VPN
Y por último comprobamos que la configuración es la correcta
11. Por último, comprobamos que podemos acceder al servicio apache instalado en la misma máquina donde esta wireguard desde el dispositivo móvil:
Como se puede ver, podemos acceder al servicio apache, aunque no se vea en la imagen que el servicio VPN en el móvil esta activado, si lo está, como se puede ver estoy conectado por 4G, pero por la propia visualización que hacen los dispositivos IOS no se ve en la propia pantalla si estas conectado a la VPN.
Configuración de Cliente Windows
1. Lo primero que debemos de hacer una vez instalado el cliente de wireguard para Windows, es crear un túnel, para ello le damos a la opción de abajo a la izquierda Add Tunnel y después a Add empty tunnel:
2. A continuación, añadimos los siguientes parámetros al nuevo túnel que vamos a crear:
3. Pasamos la clave pública al servidor de wireguard y reiniciamos el servicio
4. Por último, activamos la VPN y probamos a conectarnos:
Con esto tendríamos configurado tanto el servidor WireGuard con un cliente Windows y uno IOS.
En un futuro agregare como hacerlo en una RasberryPi.