Estoy tratando de hacer que mi cliente reenvíe todo el tráfico a través de un VPS con OpenVPN. Como puede ver, permitirá pings tanto en dominios como en direcciones IP sin procesar, pero no permitirá tráfico como el que se realiza a través de curl y traceroute no produce nada. El tráfico funciona correctamente cuando no está conectado a la VPN.
Toda la información está aquí: https://pastebin.com/tGspNefn
Gracias.
Configuraciones de trabajo gracias a la solución a continuación:
Servidor:
port <integer>
proto udp
dev tun
ca ca.crt
cert vpnserver.crt
key vpnserver.key # This file should be kept secret
dh dh4096.pem
tls-auth ta.key 0
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway autolocal"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 10 120
cipher AES-256-CBC
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
Cliente:
client
dev tun
proto udp
remote x.x.x.x <port number>
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert vpnclient.crt
key vpnclient.key
tls-auth ta.key 1
ns-cert-type server
cipher AES-256-CBC
comp-lzo
verb 3
/sbin/route add -net 0.0.0.0 netmask 128.0.0.0 gw 10.8.0.5
¿Por qué netmask 128.0.0.0?Respuestas:
Hay dos partes en la solución:
1. Redirige todo el tráfico hacia el túnel
La solución más fácil: use la
--redirect-gateway autolocal
opción de OpenVPN (o póngala en el archivo de configuración comoredirect-gateway autolocal
.2. Manejar el tráfico en el servidor OpenVPN
Ahora que el túnel está arriba, todo el tráfico va al túnel y aparece en el extremo del servidor desde la
tun0
interfaz.Necesita configurar dos cosas para que funcione:
a. Habilitar el reenvío de paquetes
Por defecto en la mayoría de las distribuciones, el reenvío de paquetes está deshabilitado, por lo tanto, los paquetes de la interfaz del túnel nunca llegan a la interfaz pública. Debe habilitar el reenvío con:
Una vez probado, haga el cambio permanente en
/etc/sysctl.conf
También asegúrese de que
iptables
no estén bloqueando el tráfico reenviado:Esto es lo suficientemente bueno para las pruebas: en producción querrá hacer que las reglas del firewall sean un poco más específicas, pero eso está fuera de alcance aquí.
si. NAT los paquetes salientes del túnel
Con el reenvío habilitado, los paquetes se reenvían de manera predeterminada con su dirección de origen sin cambios, es decir, en este caso
10.8.0.6
, dichos paquetes se descartan en la puerta de enlace del ISP o incluso si llegan al destino, la respuesta nunca encuentra el camino de regreso. Estas direcciones privadas no son enrutables en Internet.La solución es NAT el tráfico de salida, es decir, reemplazar la
10.8.0.6
dirección privada con la IP pública del servidor VPN. Eso asegurará que las respuestas lleguen al servidor VPN y allí serán enviadas nuevamente al túnel.3. Pruébalo
Ahora intente
ping 8.8.4.4
desde su cliente VPN. Deberías ver una respuesta. Háganos saber si no :)fuente
Redirect all the traffic into the tunnel
paso en la configuración del cliente?