El reenvío de puertos no funciona cuando el cliente OpenVPN está activo

El reenvío de puertos no funciona cuando el cliente OpenVPN está activo

Configuré exitosamente el cliente OpenVPN en mi enrutador ejecutando ddwrt y también lo configuré para habilitar OpenVPN al inicio.

red doméstica => enrutador ddwrt con cliente OpenVPN => web

Puedo ver la interfaz web del enrutador y hacer ssh en cualquiera de mis cajas Unix domésticas si el cliente OpenVPNno escorrer. Entonces me pregunto cómo puedo hacer lo mismo si el cliente OpenVPNescorrer.

Estoy seguro de que la conexión a la red de mi hogar está activa porque estoy escribiendo esto ahora mismo en mi Macbook que está conectada a mi enrutador mediante wifi y mi otra Macbook está conectada a la red a través del punto de acceso personal del iPhone. Estoy haciendo pruebas en la segunda Macbook.

Informacion IMPORTANTE:

El firewall del enrutador está desactivado.

información de enrutamiento IP

root@myrouter:~# ip route list
0.0.0.0/1 via 10.208.185.5 dev tun1 
default via my-wan-gateway-ip-here dev ppp0 
my-wan-gateway-ip-here dev ppp0  proto kernel  scope link  src my-real-ip-here
10.208.0.1 via 10.208.185.5 dev tun1 
10.208.185.5 dev tun1  proto kernel  scope link  src 10.208.185.6 
127.0.0.0/8 dev lo  scope link 
128.0.0.0/1 via 10.208.185.5 dev tun1 
169.254.0.0/16 dev br0  proto kernel  scope link  src 169.254.255.1 
192.168.1.0/24 dev br0  proto kernel  scope link  src 192.168.1.1 
my-vpn-ip via my-wan-gateway-ip-here dev ppp0

Mi configuración de OpenVPN ejecuta el router-up.sh predeterminado creado por dd-wrtautomáticamente. Inorealice cualquier cambio en este script.

root@myrouter:/tmp# cat /tmp/openvpncl/route-up.sh 
#!/bin/sh
iptables -D POSTROUTING -t nat -o tun1 -j MASQUERADE
iptables -I POSTROUTING -t nat -o tun1 -j MASQUERADE
iptables -D INPUT -i tun1 -j ACCEPT
iptables -I INPUT -i tun1 -j ACCEPT

Mis servidores DNS (usando Comodo y OpenDNS)

root@myrouter:/tmp# cat resolv.dnsmasq
nameserver 8.26.56.26
nameserver 8.20.247.20
nameserver 208.67.222.222

También utilicé un script que encontré en la red para que ciertas IP puedan evitar la VPN. Este script es parte de mi script de inicio (rc_startup). Necesito esto para poder jugar este juego específico en mis tabletas.

#!/bin/sh
sleep 30
NO_VPN_LST="192.168.1.11 192.168.1.2"
[ -z "$NO_VPN_LST" ] && exit 0
WAN_GWAY="0.0.0.0"
while [ $WAN_GWAY == "0.0.0.0" ]; do
sleep 3
WAN_GWAY=`nvram get wan_gateway`
done
ip route add default via $WAN_GWAY table 10
for ipa in $NO_VPN_LST; do
ip rule add from $ipa table 10
done
ip route flush cache
exit 0

Respuesta1

El problema al que se enfrenta probablemente sea uno de enrutamiento predeterminado/de origen.

Cuando la VPN no está encendida, las cosas funcionan porque la puerta de enlace predeterminada no está en su conexión a Internet, pero cuando inicia la VPN, se agregan un par de rutas nuevas "0.0.0.0/1 a través de 10.208.185.5 dev tun1 y 128.0.0.0/1 via 10.208.185.5 dev tun1 " Esto tiene el efecto neto de hacer que la puerta de enlace predeterminada sea el punto final de VPN en lugar de su conexión habitual.

Entonces hay 2 soluciones, dependiendo de lo que necesites hacer:

La solución más sencilla es deshacerse de esas 2 líneas que crean la puerta de enlace predeterminada y programar (o hacer que su proveedor programe) rutas específicas en su conexión VPN a las que desea acceder a través de VPN. Esta es solo una opción si está utilizando una VPN para un propósito específico, por ejemplo, conectarse a la red de una empresa, pero no funcionará bien si está intentando ocultar su identidad en Internet.

La solución más difícil es hacer un "enrutamiento basado en fuente", lo que significa configurar 2 tablas de enrutamiento; la actual es una tabla predeterminada, con una segunda tabla para responder a las cosas que llegan directamente a través de su conexión habitual, con una ruta predeterminada diferente. . Esto no es trivial, pero hay varios enlaces sobre cómo hacerlo, incluidoaquíyaquí (Las palabras clave para Google serían "enrutamiento de origen" o "enrutamiento de políticas". Sin embargo, si realmente quieres convertirte en un experto en este tema, probablemente necesites familiarizarte con elLART- El capítulo 4 cubre el enrutamiento de políticas)

información relacionada