site-to-site
Supón que tienes un servidor cloud, con una IP publica, una serie de equipos en la red A, y una serie de equipos en la red B, pues con esto y un bizcocho:
En la imagen no se aprecia, pero ambos monigotes están tristes, por que cada uno esta en su red aislada y no puede comunicarse con el otro.
👇 Para cambiarlo 👇
En el servidor#
Para cada nodo de la vpn hay que generar 2 claves, una publica y una privada, se pueden generar de golpe con:
sudo wg genkey | tee /home/ubuntu/VPN/srv_privatekey | wg pubkey > /home/ubuntu/VPN/srv_publickey
En el servidor hay que redireccionar el trafico entre puertos de los distintos clientes, así que suponiendo que usamos iptables
sudo iptables -I FORWARD -i wg0 -o wg0 -j ACCEPT
Ahora toca crear la configuración en /etc/wg/wg0.conf (En vez de wg0, puede ser cualquier nombre que le queramos dar a la conexión)
[Interface]
Address = 11.1.0.1/32 # Dirección IP del servidor en la VPN
ListenPort = 454244 # Puerto que usara Wireguard
PrivateKey = wwzzxx..
# Configuración de los clientes (agregar una sección [Peer] por cada cliente)
# Cliente A
[Peer]
PublicKey = xxzzww..
AllowedIPs = 11.1.0.2/32
# Cliente B
[Peer]
PublicKey = xxzzww..
AllowedIPs = 11.1.0.3/32
Para agregar mas clientes a la VPN basta con crear mas claves y generar sus correspondientes entradas dentro de la configuración del servidor, así como generar las configuraciones para cada cliente.
Una cosa es que si el cliente es un móvil, con la app de Wireguard y el siguiente comando se puede pasar la configuración del cliente de un viaje:
Clientes:#
Para cada cliente hay que generar un archivo, la mima tesitura que en el servidor, pero cambiando un par de cosas, un ejemplo seria este:
[Interface]
Address = 11.1.0.2/32 # IP del cliente
PrivateKey = wwzzxx.. # Clave privada del cliente
[Peer]
PublicKey = xxzzww.. # La clave publica del servidor
Endpoint = 123.125.126.123:41234 # La ip+puerto del servidor cloud
AllowedIPs = 11.1.0.0/24 # La red de la VPN
PersistentKeepalive = 25 # Para mantener la conexión activa
Para instalar Wireguard en el cliente: Documentación Oficial
Una vez instalado, en el caso de cliente Linux se configura con:
# Editar el archivo de configuración, y meter ahi el contenido
sudo nano /etc/wg/wg0.conf
Si nos interesa que la VPN sea persistente en caso de reinicios o algún otro imprevisto:
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
# El nombre del servicio puede cambiar en función del nombre del archivo de conf
# wg-quick@wg-vpn / wg-quick@wg123
Y con esto debería estar:
Las flechas son una sugerencia de presentación, no representan ningún trafico real, y cualquier parecido con trafico real es pura coincidencia