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?


É 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

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.


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

-2
iptables -A PREROUTING -t mangle -i <LAN_interface> \
-d <remote_network>/<remote_netmask> -j ROUTE --gw <openvpn_host_ip>

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.