Configuré un servidor OpenVPN (IP VPN = 10.8.0.1) en un servidor con IP pública. Y tengo una estación de trabajo (Ubuntu) en mi laboratorio con IP escolar que puede acceder a los recursos de intranet de la escuela.
Quiero que mi teléfono Android y mi PC con Windows puedan acceder a esos recursos. Asique:
Configuración del servidor OpenVPN:
dev tun
topología
servidor de subred 10.8.0.0 255.255.255.0
client-config-dir /etc/openvpn/server/ccd
push "route 10.8.0.0 255.255.255.0"
push "route-gateway 10.8.0.3"Conecte mi estación de trabajo al servidor y obtenga una IP 10.8.0.3, su configuración ccd (equivalente a la configuración del cliente) es:
ifconfig-push 10.8.0.3 255.255.255.0
En la estación de trabajo, usé iptables y agregué algunos elementos:
$ sudo iptables -t filter -S
-P ENTRADA ACEPTAR
-P ADELANTE ACEPTAR
-P SALIDA ACEPTAR
$ sudo iptables -t nat -S
-P PRERRUTAMIENTO ACEPTAR
-P ENTRADA ACEPTAR
-P SALIDA ACEPTAR
-P POSTROUTING ACEPTAR
-A POSTROUTING -s 10.8 .0.0/24 -o wlx0810752b55c9 -j MASCARADALa configuración ccd de mi pc en casa es:
ifconfig-push 10.8.0.5 255.255.255.0
push "route-gateway 10.8.0.3"
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"Resultado1 La PC no puede conectarse a Internet. La tabla de rutas de esa pc es:
impresión de ruta -4
0.0.0.0 0.0.0.0 192.168.1.254 192.168.1.21 35
0.0.0.0 128.0.0.0 10.8.0.3 10.8.0.5 291
128.0.0.0 128.0.0.0 10.8.0.3 10. 8.0.5 291
los dos últimos elementos son los que agregó "redirect-gateway def1", sin eliminar la puerta de enlace predeterminada original. Tengo curiosidad de saber por qué def1 funciona para redirigir el tráfico. Debido a que la puerta de enlace predeterminada original todavía está ahí y con una mejor métrica, ningún tráfico pasaría a través de VPN.
Resultado 2 Mi teléfono Android tampoco puede hacerlo.
$ ruta IP de Busybox mostrar tabla todo
predeterminado a través de 10.183.93.203 dev ccmni0 tabla 1002
predeterminado dev tun0 src 10.8.0.4
10.8.0.0/24 dev tun0 tabla 1015
10.8.0.0/24 dev tun0 src 10.8.0.4...
Me aseguré de que la estación de trabajo no recibiera el tráfico:
$ sudo tcpdump -i tun0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 262144 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel
$
He repasado muchos temas sobre esto sin una solución que funcione. Entonces, cualquiera puede ayudarme, ¡se agradece cualquier sugerencia!
Respuesta1
En el directorio ccd del servidor, el archivo de la estación de trabajo debe contener iroute. Inténtelo, estoy intentando hacer lo mismo sin utilizar el servidor de acceso y utilizar un cliente Linux como puerta de enlace, como se muestra aquí. https://www.youtube.com/watch?v=b7qr0laM8kA