Entonces tengo un servidor con la dirección IP pública 101.102.103.104 (por ejemplo). Este servidor ejecuta un servidor OpenVPN, además de muchas otras cosas que escuchan en los puertos del dispositivo de la red IP pública.
Lo que quiero hacer es, una vez que me conecte a 101.102.103.104, enrutar todo el tráfico futuro a esta IP a través de la VPN.
Entonces, por ejemplo, si hago curl
101.102.103.104:8080, se realiza a través de la conexión VPN.
Intenté agregar un push route
a mi server.conf así:
push "route 101.102.103.104 255.255.255.255"
e incluso intenté agregar una ruta de exclusión:
push "route 101.102.103.104 255.255.255.255 net_gateway"
pero no pareció funcionar. En ejecución sudo route -n
todavía se muestra la ruta que pasa por el enrutador de mi casa:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 wlan0
10.8.0.1 10.8.0.5 255.255.255.255 UGH 0 0 0 tun0
10.8.0.5 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
101.102.103.104 192.168.1.1 255.255.255.255 UGH 0 0 0 wlan0
192.168.1.0 0.0.0.0 255.255.255.0 U 9 0 0 wlan0
¿Alguna idea sobre cómo puedo lograr esto? Pensé que el problema probablemente era el hecho de que estaba intentando enrutar el tráfico al servidor VPN, a través del servidor VPN, y así formar una especie de bucle infinito, pero eso es sólo una suposición.
Respuesta1
La tabla de enrutamiento que mostró claramente no enruta todo el tráfico a través de la VPN, como se muestra en la primera línea. En su configuración actual, todo lo que hace es permitir que el cliente tenga acceso a la LAN.
El comando para enrutar todo el tráfico del cliente a través de OpenVPN, incluido todo el tráfico a terceros (es decir, no la LAN del servidor VPN) es
push "redirect-gateway def1"
que se agregará al archivo de configuración del servidor (deberá reiniciar el programa OpenVPN para que el cambio surta efecto).
Además, dado que ha configurado un OpenVPN enrutado, no un puente, necesitará activar NATting en el servidor:
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Esto supone que la interfaz del servidor OpenVPN en Internet (es decirel que tiene dirección IP 101.102.103.104) se llamaeth0. Por favor ajuste en consecuencia.
Para verificar su configuración, una vez que se haya establecido una conexión con el servidor OpenVPN, emita el siguiente comando:
wget 216.146.39.70:80 -O - -o /dev/null
Esto generará su dirección IP aparente. Si el resultado contiene 101.102.103.104, ya está.