Estoy tratando de usar el servidor Google Compute Engine como servidor VPN para todo mi tráfico (vivo en Rusia, tenemos algunos problemas con la censura aquí).
Hay un mini tutorial sobre VPN en GCE , pero se trata de la red entre 2 servidores dentro de GCE y no con OpenVPN.
Realicé todos los pasos de otro tutorial, sobre cómo configurar VPN con OpenVPN en Debian , puedo conectarme a VPN desde el cliente, pero luego no puedo abrir conexiones (ni siquiera puedo hacer ping a google). En el servidor puedo hacer ping y descargar todo como de costumbre.
Tengo VPN en Linode con la misma configuración y funciona bien. Entonces, el problema está en las reglas de enrutamiento de red GCE o firewall.
He probado muchas variantes pero nada funciona. Por favor, mira la configuración y dime qué debo cambiar.
// líneas de configuración eliminadas, porque el problema está resuelto //
Respuestas:
En primer lugar, gracias a @Shivox por su respuesta .
Y aquí está el procedimiento rápido:
sudo su
apt-key update && apt-get update && apt-get -y upgrade && apt-get -y install python-software-properties && apt-get -y install software-properties-common && add-apt-repository -y ppa:pritunl && apt-get update && apt-get -y install pritunl
https://instance_ip:9700
pritunl
como nombre de usuario y contraseñaYo uso Viscosity para OS X y OpenVPN connect para iOS como clientes. En Viscosidad, active la opción "Enviar todo el tráfico a través de la conexión VPN" en la pestaña "Redes".
fuente
Puede resolver el problema de no poder navegar por la web a través de la VPN a pesar de poder hacer ping, traceroute ... de una de las dos formas siguientes:
Primero, puede usar el protocolo TCP en lugar de UDP, cambiando 'proto udp' a 'proto tcp' en los archivos conf de cliente y servidor.
En segundo lugar, puede usar el dispositivo tap en lugar de tun, cambiando 'dev tun' a 'dev tap' en los archivos conf de cliente y servidor.
Sin embargo, no estoy seguro de cuál es el problema, parece que es un problema del final de Google.
fuente
Recuerde que Google VPC está descartando paquetes que tienen
source_ip
una IP diferente de una VM con IP externa.Este documento https://cloud.google.com/compute/docs/vpc/advanced-vpc dice:
Entonces, si su openVPN solo está reenviando paquetes desde la otra red, entonces los paquetes al público interno se descartarán, ya
source_ip
que no coincide con ninguna IP interna de la VM existente. Por esta razón, necesita NAT los paquetes que salen de su red local, por ejemplo, en su nodo VPN."Pritunl" mencionado en la respuesta OZ_ funciona porque configura el NAT automáticamente.
fuente
Esto no es realmente una respuesta, pero el sitio no me permitió agregarlo como un comentario a su pregunta.
Sin embargo, tengo casi la misma configuración que detalló anteriormente (no configuré el dnsmaq en el servidor resistente)
Desafortunadamente, la VPN no funciona como se esperaba. Puedo resolver una dirección, hacer ping a algunos hosts de Internet e incluso hacer un seguimiento completo mientras estoy conectado a la VPN. Sin embargo, cuando abro el navegador y navego a un sitio, la conexión es realmente lenta. No sé qué puede estar afectando la conexión, pero es realmente un problema extraño.
Quizás alguien de Google pueda ayudarnos a saber qué está pasando.
PD 1. Como otras personas han sugerido antes, ¿puede verificar si el reenvío de IP está habilitado? Para mí, la única forma de garantizar que el valor de net.ipv4.ip_forward se haya restaurado correctamente después de un reinicio fue después de usar una regla personalizada en /etc/sysctl.d
Por ejemplo, puede agregar la regla con el siguiente comando:
PD 2. Si el reenvío funciona para usted, ¿puede probar una ruta de seguimiento a un host externo mientras está conectado a la VPN? El resultado que obtuve cuando hago esto es un poco extraño (¿Por qué hay varios saltos en la misma IP ????):
PD 3. Lo único que parece funcionar correctamente es que la VPN está utilizando la IP externa de mi host para acceder a Internet
fuente
Editar
/etc/sysctl.conf
descomentando#net.ipv4.ip_forward=1
Eso debería permitir que OpenVPN dirija su tráfico.
fuente
Necesita el reenvío de IP habilitado para su instancia de VM en Google Cloud, de lo contrario, los paquetes no llegarán a su VM. Tenga en cuenta que esto es independiente de lo
net.ipv4.ip_forward = 1
que puede configurar en su VM.El reenvío de IP solo se puede configurar una vez antes de crear una VM, y no se puede modificar después. Para habilitarlo para una nueva VM, haga clic en
Management, security, disks, networking, sole tenancy
:Luego, en la
Networking
pestaña, haga clic enNetwork Interface
y configure Reenvío de IP enON
:fuente
Debe agregar una regla que permita el tráfico para OpenVPN:
fuente
Sobre la red.
1) Habilite todo el tráfico de la subred OpenVPN (por ejemplo, 10.8.0.0/24) en la consola
2) Te sugiero que agregues Masquerade a tu red
3) No olvide habilitar el enrutamiento de paquetes en el núcleo
a) una vez
b) para siempre en /etc/sysctl.conf:
fuente