Estou tentando usar o servidor do Google Compute Engine como servidor VPN para todo o meu tráfego (estou morando na Rússia, temos alguns problemas de censura aqui).
Há um mini-tutorial sobre VPN no GCE , mas trata-se da rede entre dois servidores dentro do GCE e não com o OpenVPN.
Fiz todas as etapas de outro tutorial, sobre como configurar a VPN com o OpenVPN no Debian , posso conectar-me à VPN a partir do cliente, mas não consigo abrir conexões (nem consigo fazer ping no google). No servidor, posso executar ping e baixar tudo como de costume.
Eu tenho VPN no Linode com a mesma configuração e funciona bem. Portanto, o problema está no roteamento de rede GCE ou nas regras de firewall.
Eu tentei muitas variantes, mas nada funciona. Por favor, veja as configurações e me diga o que devo alterar.
// linhas de configuração removidas, porque o problema foi resolvido //
Respostas:
Antes de tudo, obrigado a @Shivox por sua resposta .
E aqui está o rápido como fazer:
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 nome de usuário e senhaEu uso o Viscosity para OS X e o OpenVPN connect for iOS como clientes. Na viscosidade, ative a opção "Enviar todo o tráfego pela conexão VPN" na guia "Rede".
fonte
Você pode resolver o problema de não conseguir navegar na Web pela VPN, apesar de poder executar ping, traceroute ... de uma das duas maneiras a seguir:
Primeiro, você pode usar o protocolo TCP em vez do UDP, alterando 'proto udp' para 'proto tcp' nos arquivos conf do cliente e do servidor.
Segundo, você pode usar o dispositivo de toque em vez do tun, alterando 'dev tun' para 'dev tap' nos arquivos conf do cliente e do servidor.
Não sei ao certo qual é o problema, parece que é um problema do final do Google.
fonte
Lembre-se de que o Google VPC está descartando pacotes que possuem
source_ip
outro IP interno de uma VM com IP externo.Este documento https://cloud.google.com/compute/docs/vpc/advanced-vpc afirma:
Portanto, se o seu openVPN estiver apenas encaminhando pacotes da outra rede, os pacotes para o público interno serão descartados, pois
source_ip
não correspondem ao IP interno de nenhuma VM existente. Por esse motivo, você precisa enviar NAT aos pacotes que saem da sua rede local, por exemplo, no seu nó VPN.O "Pritunl" mencionado na resposta OZ_ funciona, porque configura o NAT automaticamente.
fonte
Esta não é realmente uma resposta, mas o site não me permitiu adicioná-lo como um comentário à sua pergunta.
No entanto, tenho quase exatamente a mesma configuração que você detalhou acima (não configurei o dnsmaq no servidor com firmeza)
Infelizmente, a VPN não está funcionando conforme o esperado. Posso resolver um endereço, executar ping em alguns hosts da Internet e até fazer um rastreamento completo enquanto estiver conectado à VPN. No entanto, quando abro o navegador e navego para um site, a conexão é realmente lenta. Não sei o que pode estar afetando a conexão, mas é realmente um problema estranho.
Talvez alguém do Google possa nos ajudar a saber o que está acontecendo.
PS 1. Como outras pessoas sugeriram antes, você pode verificar se o encaminhamento de IP está ativado? Para mim, a única maneira de garantir que o valor de net.ipv4.ip_forward foi restaurado corretamente após a reinicialização, após o uso de uma regra personalizada no /etc/sysctl.d
Por exemplo, você pode adicionar a regra usando o seguinte comando:
PS 2. Se o encaminhamento funcionar para você, você pode testar uma rota de rastreamento para um host externo enquanto estiver conectado à VPN ?. A saída que obtive quando faço isso é um pouco estranha (por que existem vários saltos no mesmo IP ????):
PS 3. A única coisa que parece funcionar corretamente é que a VPN está usando o IP externo do meu host para acessar a Internet.
fonte
Editar
/etc/sysctl.conf
descomentando#net.ipv4.ip_forward=1
Isso deve permitir que o OpenVPN direcione seu tráfego.
fonte
Você precisa do encaminhamento de IP ativado para sua instância de VM no Google Cloud, caso contrário, os pacotes não alcançarão sua VM. Observe que isso é separado do
net.ipv4.ip_forward = 1
que você pode definir na sua VM.O encaminhamento de IP pode ser definido apenas uma vez antes de criar uma VM e não pode ser modificado posteriormente. Para habilitá-lo para uma nova VM, clique em
Management, security, disks, networking, sole tenancy
:Em seguida, na
Networking
guia, clique emNetwork Interface
e defina o Encaminhamento de IP paraON
:fonte
Você precisa adicionar uma regra que permita o tráfego para o OpenVPN:
fonte
Sobre a rede.
1) Habilite todo o tráfego da sub-rede OpenVPN (por exemplo, 10.8.0.0/24) no console
2) Eu sugiro fortemente que você adicione Masquerade à sua rede
3) Não se esqueça de habilitar o roteamento de pacotes no kernel
a) uma vez
b) para sempre em /etc/sysctl.conf:
fonte