Both sides previous revisionPrevious revisionNext revision | Previous revision |
docu:csheet:net:relays:vpn_wireguard_vps [2023/06/30 00:58] – admin | docu:csheet:net:relays:vpn_wireguard_vps [2023/06/30 01:02] (current) – admin |
---|
wg-quick up whatever # la forma manual (tienes que programar autoejecución en el startup) | wg-quick up whatever # la forma manual (tienes que programar autoejecución en el startup) |
systemctl enable wg-quick@whatever; systemctl start wg-quick@whatever # la forma systemd (ya se autoejecuta en el startup) | systemctl enable wg-quick@whatever; systemctl start wg-quick@whatever # la forma systemd (ya se autoejecuta en el startup) |
| |
# Fijate que hemos usado el nombre de interfaz "yoursrv" en el VPS y "whatever" en el localpc para diferenciar y demostrar que podemos usar nombres distintos para las interfaces y no afectarán para nada en su funcionamiento, aunque si usas los mismos nombres funcionará igualmente. Es más, quizás sea más recomendado, para no liarse, pero esto es para que se entienda. | |
</code> | </code> |
| Fijate que hemos usado el nombre de interfaz "yoursrv" en el VPS y "whatever" en el localpc para diferenciar y demostrar que podemos usar nombres distintos para las interfaces y no afectarán para nada en su funcionamiento, aunque si usas los mismos nombres funcionará igualmente. Es más, quizás sea más recomendado, para no liarse, pero esto es para que se entienda. |
| |
\\ | \\ |
Y finalmente, para terminar, necesitamos enrutar tráfico para que funcione. Vamos a hacer un ejemplo con enrutamiento de HTTP (que es lo más común) pero esto se usaría igual para cada servicio que queramos enrutar a nuestra IP interna. Para ello, ejecutaremos estos comandos de iptables (debemos tenerlo instalado): | Y finalmente, para terminar, necesitamos enrutar tráfico para que funcione. Vamos a hacer un ejemplo con enrutamiento de HTTP (que es lo más común) pero esto se usaría igual para cada servicio que queramos enrutar a nuestra IP interna. Para ello, ejecutaremos estos comandos de iptables (debemos tenerlo instalado): |
<code bash> | <code bash> |
# ejecutar en "VPS": enruta el tráfico de entrada a la IP pública del VPS, en los puertos TCP 80 y 443, al destino 10.5.0.2 (que en este ejemplo sería la IP de localpc en la VPN). | # ejecutar en "VPS": enruta el tráfico de ENTRADA a la IP pública del VPS, en los puertos TCP 80 y 443, al destino 10.5.0.2 (que en este ejemplo sería la IP de localpc en la VPN). |
iptables -t nat -A PREROUTING -d <ip_public_del_VPS> -p tcp -m multiport --dports 80,443 -j DNAT --to-destination 10.5.0.2 | iptables -t nat -A PREROUTING -d <ip_public_del_VPS> -p tcp -m multiport --dports 80,443 -j DNAT --to-destination 10.5.0.2 |
| |
# ejecutar en "VPS": enmascara (cambia la IP) del tráfico en la SALIDA cuando el tráfico (bien establecido o nuevo) sale de localpc a internet por la VPN, ya que si salimos con una IP interna (de la VPN), el siguiente gateway no sabría como enrutar de vuelta, y menos todavía la IP de destino final (que es otra IP en internet). | # ejecutar en "VPS": enmascara (cambia la IP) del tráfico en la SALIDA cuando el tráfico (establecido o nuevo) sale de localpc a internet por la VPN, ya que si salimos con una IP interna (de la VPN), el siguiente gateway no sabría como enrutar de vuelta, y menos todavía la IP de destino final (que es otra IP en internet). |
iptables -t nat -A POSTROUTING -s 10.5.0.2/32 -o <nombre_interfaz_VPS_ip_publica> -j MASQUERADE | iptables -t nat -A POSTROUTING -s 10.5.0.2/32 -o <nombre_interfaz_VPS_ip_publica> -j MASQUERADE |
| |
iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu | iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu |
| |
# Opcionalmente, si tenemos una política DROP en nuestro filter de iptables "FORWARD", debes añadir esto: | # ejecutar en "VPS": Opcionalmente, SOLO si tenemos una política DROP en nuestro filter de iptables "FORWARD", debes añadir esto: |
iptables -A FORWARD -i <nombre_interfaz_VPS_ip_publica> -d 10.5.0.2/32 -p tcp -m multiport --dports 80,443 -j ACCEPT | iptables -A FORWARD -i <nombre_interfaz_VPS_ip_publica> -d 10.5.0.2/32 -p tcp -m multiport --dports 80,443 -j ACCEPT |
iptables -A FORWARD -i <yoursrv> -o <nombre_interfaz_VPS_ip_publica> -j ACCEPT | iptables -A FORWARD -i <yoursrv> -o <nombre_interfaz_VPS_ip_publica> -j ACCEPT |