OpenVPN: apenas rotear endereços IP específicos através da VPN?

44

Em uma rede privada remota, existem dois servidores - um servidor de arquivos e um servidor de banco de dados (ambos são máquinas Win, caso isso importe).

O servidor de arquivos possui seus próprios mecanismos de autenticação bastante robustos e me permite conectar diretamente de um local remoto.

O servidor de banco de dados usa um nome de usuário e senha simples; portanto, para impedir o acesso não autorizado, ele é bloqueado na rede local - o tráfego externo é bloqueado.

Para acessar o servidor de banco de dados, estou usando o cliente OpenVPN no Windows para conectar-me a um servidor VPN na rede privada.

Por padrão, o OpenVPN roteia todos os pacotes de rede destinados à rede remota na qual o servidor VPN reside, através da VPN. Infelizmente, o acesso ao servidor de arquivos pela VPN é extremamente lento!

Questão:

Como posso configurar o cliente OpenVPN para rotear APENAS o tráfego através da VPN destinada a um único endereço IP específico - ou seja, o servidor de banco de dados?

Brian Lacy
fonte
É simples, veja aqui como fazê-lo superuser.com/a/178675/96461
Sameer

Respostas:

49

A configuração correta para o OpenVpn é:

route-nopull 
route 192.168.0.0 255.255.255.0

Essas entradas pertencem ao seu arquivo .ovpn e direcionarão todo o tráfego de sub-rede 192.168.0. * Através da VPN.

Apenas para um IP (192.168.0.1):

route-nopull 
route 192.168.0.1 255.255.255.255
Thomas
fonte
Somos principalmente falantes de inglês e não sabemos necessariamente alemão. Por favor, traduza sua resposta.
precisa saber é o seguinte
11
+1. Isso é exatamente o que eu precisava. Estou usando clientes ovpn no meu linux e, portanto, você responde apenas me salvou. Obrigado.
Slayedbylucifer
Posso apenas rotear um site para VPN? Por exemplo, apenas www.facebook.com
Nicola Peluchetti
No meu caso, o roteamento de ip único através de VPN parece funcionar bem. Mas, ao usar a máscara de sub-rede, ela não funciona. Alguma idéia do porquê?
running.t
Ainda não sei responder à minha pergunta (acima), mas fiz alguma investigação e criei um tópico separado sobre ela: superuser.com/questions/854194/…
running.t
24

Objetivos

  • Use a conexão simples à Internet para todo o tráfego da Internet por padrão, mesmo quando a VPN estiver conectada.
  • Encaminhe o tráfego para um endereço IP específico através da VPN.

Passos

  1. Pressione Win+ Re execute ncpa.cpl.

  2. Clique com o botão direito do mouse na conexão VPN e vá para Propriedades → Rede .

  3. Selecione Internet Protocol Version 4 e vá para Propriedades → Avançado ... .

  4. Desmarque Usar gateway padrão na rede remota e clique em OK .

  5. (opcional) Repita as etapas anteriores para o Internet Protocol Versão 6 .

  6. (Re) conecte-se à sua VPN.

  7. Abra um prompt de comando e execute route print -4.

  8. Localize a interface da VPN na lista Interface e seu gateway nas Rotas ativas .

    Na minha máquina, tenho:

    Interface List
     32...........................Super Free VPN
    
    [...]
    
    Active Routes:
    Network Destination        Netmask          Gateway       Interface  Metric
              0.0.0.0          0.0.0.0         On-link        10.6.6.127     31
             10.0.0.0        255.0.0.0        10.88.1.1      10.88.1.102     31
    

    Aqui, o gateway da VPN é 10.88.1.1, já que é o gateway do 10.xxx.xxx.xxxbloco.

  9. Adicione uma rota persistente que será anexada às rotas ativas sempre que houver uma conexão com a VPN:

    route -p add 23.22.135.169 10.88.1.1 if 32
    

    Neste exemplo, 23.22.135.169é o IP de whatismyip.org, 10.88.1.1é o IP do gateway e 32o número da interface.

  10. (opcional) Repita as etapas anteriores para route print -6.

  11. Teste a instalação.

    Se tudo der certo, whatismyip.org e www.whatismyip.cx exibem IPs diferentes agora.

Dennis
fonte
11
Certamente há uma maneira mais simples?
Brian Lacy
11
Você sabe como conseguir isso no Linux (Ubuntu)?
Елин Й.
11
@ ЕлинЙ. se você estiver usando o Network Manager, selecione "Usar esta conexão apenas para recursos nesta rede".
leif81
11
+1 ... mas poderia jogar isso?
Olivier Dulac
11

Para sua configuração de cliente OpenVPN, adicione uma linha como:

route The.IP.To.Go 255.255.255.255

(Onde The.IP.To.Go é o IP que você deseja rotear pela VPN)

Isso instrui o OpenVPN a criar a entrada na tabela de roteamento do seu sistema operacional.

Como alternativa, o servidor OpenVPN poderia "enviar" essa configuração de roteamento aos clientes, adicionando à configuração do servidor:

push "route The.IP.To.Go 255.255.255.255"

EDIT: Uma coisa que eu perdi no endereçamento - o encaminhamento padrão de todo o tráfego ... Ele pode ser desativado no servidor ou os clientes podem optar por ignorar as diretivas "enviadas" (para que nossa segunda opção "empurrar" a rota não funcione) ) através da:

route-nopull
Adão
fonte
-2
iptables -A PREROUTING -t mangle -i <LAN_interface> \
-d <remote_network>/<remote_netmask> -j ROUTE --gw <openvpn_host_ip>
Dharmesh
fonte
Por favor, explique o que esse comando faz. Apenas um comando sem explicação não é tão útil. Verifique também a formatação da sua postagem - todas <brackets>elas não são visíveis se não estiverem marcadas como código.
slhck