Cliente OpenVPN em um windows 7, pacotes não roteados

3

Eu tenho um cliente OpenVPN em um Windows 7, que se conecta a um servidor OpenVPN com o toque.
O túnel estabelece corretamente.
AFAIK, tap significa que meu adaptador virtual está 'virtualmente' conectado à LAN remota, obtém um ip de LAN remoto e participa da transmissão LAN domani e assim por diante.
Quando o túnel é estabelecido, meu adaptador virtual obtém o IP correto.
Mas não consigo pingar os outros hosts na rede remota.
Pode ser um problema no lado do servidor, mas antes de verificar, notei algo estranho no lado do cliente, na maneira como o Windows lida com a interface virtual.
Vamos começar.
Quando o túnel está ativo, a interface virtual também está ativa. Na minha tabela de roteamento eu posso ver minha rede física 192.168.2.0, na verdade meu IP local é 192.168.2.134.
Então eu posso ver a rede remota 172.16.1.0, diretamente conectada à minha interface 172.16.1.40. Por enquanto, tudo bem. (eu removi entradas de loopback)

          0.0.0.0          0.0.0.0      192.168.2.1    192.168.2.134     25
       172.16.1.0    255.255.255.0         On-link       172.16.1.40    276
      172.16.1.40  255.255.255.255         On-link       172.16.1.40    276
     172.16.1.255  255.255.255.255         On-link       172.16.1.40    276
      192.168.2.0    255.255.255.0         On-link     192.168.2.134    281
    192.168.2.134  255.255.255.255         On-link     192.168.2.134    281
    192.168.2.255  255.255.255.255         On-link     192.168.2.134    281
        224.0.0.0        240.0.0.0         On-link       172.16.1.40    276
        224.0.0.0        240.0.0.0         On-link     192.168.2.134    281
  255.255.255.255  255.255.255.255         On-link       172.16.1.40    276
  255.255.255.255  255.255.255.255         On-link     192.168.2.134    281

Assim, os clientes na rede remota não devem ser alcançados via gateway, mas através de roteamento direto através da interface virtual fornecida pelo openvpn.
Mas Quando eu traço a rota para um host na rede remota (que meu PC deve ver como local) meu cliente roteia no gateway e, obviamente, se perder.

C:\Users\agostinox>tracert 172.16.1.17
  1     1 ms     1 ms     1 ms  192.168.2.1
  2    14 ms    96 ms   101 ms  192.168.1.1
  3     *        *        *     Richiesta scaduta.
  4    24 ms    12 ms    12 ms  172.17.129.137
  5     *        *        *     Richiesta scaduta.

E aqui parece que o sistema roteia os pacotes diretamente para o gateway , pois não viu o adaptador de rede conectado diretamente. Por que isso acontece?

Editar 1 - detalhes da configuração do meu cliente OpenVPN

C:\Users\agostinox>openvpn --version
OpenVPN 2.3.6 x86_64-w64-mingw32 [SSL (OpenSSL)] [LZO] [PKCS11] [IPv6] built on Mar 19 2015
library versions: OpenSSL 1.0.1m 19 Mar 2015, LZO 2.08

E minha configuração do cliente:

remote xxx.xxx.xxx.xxx
cipher AES-128-CBC
port 1194
proto tcp-client
dev tap
ifconfig 172.16.1.40 255.255.255.0
dev-node "Connessione alla rete locale (LAN) 3"
secret a_file_containing_my_preshared_key.key
ping 10
comp-lzo
verb 4
mute 10

Editar 2, detalhes da configuração do meu servidor

Aqui está o "backup" da configuração do meu servidor (pfsense).
Como você pode ver, a configuração está no mínimo possível.

<openvpn>
  <openvpn-server>
  <vpnid>2</vpnid> 
  <mode>p2p_shared_key</mode> 
  <protocol>TCP</protocol> 
  <dev_mode>tap</dev_mode> 
  <ipaddr /> 
  <interface>wan</interface> 
  <local_port>1194</local_port> 
  <description><![CDATA[ test tap OpenVPN server]]> 
  </description>
  <custom_options /> 
  <shared_key>... my shared key, omitted ...</shared_key> 
  <crypto>AES-128-CBC</crypto> 
  <engine>none</engine> 
  <tunnel_network /> 
  <tunnel_networkv6 /> 
  <remote_network /> 
  <remote_networkv6 /> 
  <gwredir /> 
  <local_network /> 
  <local_networkv6 /> 
  <maxclients /> 
  <compression>yes</compression> 
  <passtos /> 
  <client2client /> 
  <dynamic_ip /> 
  <pool_enable>yes</pool_enable> 
  <topology_subnet /> 
  <serverbridge_dhcp /> 
  <serverbridge_interface /> 
  <serverbridge_dhcp_start /> 
  <serverbridge_dhcp_end /> 
  <netbios_enable /> 
  <netbios_ntype>0</netbios_ntype> 
  <netbios_scope /> 
  </openvpn-server>
</openvpn>

Editar 3, saída de ipconfig / all

Quando o túnel está em alta, esta é a saída de

ipconfig /all
Scheda Ethernet TAP-Interface:

   Suffisso DNS specifico per connessione:
   Descrizione . . . . . . . . . . . . . : TAP-Windows Adapter V9
   Indirizzo fisico. . . . . . . . . . . : 00-FF-7B-FB-32-C0
   DHCP abilitato. . . . . . . . . . . . : Sì
   Configurazione automatica abilitata   : Sì
   Indirizzo IPv6 locale rispetto al collegamento . : fe80::3838:3c0c:c3c6:fcca%35(Preferenziale)
   Indirizzo IPv4. . . . . . . . . . . . : 172.16.1.40(Preferenziale)
   Subnet mask . . . . . . . . . . . . . : 255.255.255.0
   Lease ottenuto. . . . . . . . . . . . : giovedì 16 aprile 2015 09:57:32
   Scadenza lease . . . . . . . . . . .  : venerdì 15 aprile 2016 09:57:32
   Gateway predefinito . . . . . . . . . : fe80::20c:29ff:fe92:2272%35
   Server DHCP . . . . . . . . . . . . . : 172.16.1.0
   IAID DHCPv6 . . . . . . . . . . . : 1107361659
   DUID Client DHCPv6. . . . . . . . : 00-01-00-01-14-AE-89-EA-F0-4D-A2-63-11-97
   Server DNS . . . . . . . . . . . . .  : fec0:0:0:ffff::1%1
                                           fec0:0:0:ffff::2%1
                                           fec0:0:0:ffff::3%1
   NetBIOS su TCP/IP . . . . . . . . . . : Attivato
    
por AgostinoX 12.04.2015 / 13:04

3 respostas

1

Localize os arquivos OpenVPNgui.exe, openvpn.exe e openvpnserver.exe na pasta bin da sua instalação vpn aberta. Clique com o botão direito do mouse nos executáveis, selecione as propriedades e, em seguida, a guia de compatibilidade. Clique na caixa de seleção "Executar este programa como administrador" e feche o painel de propriedades. Completamente fora do OpenVPN (use o gerenciador de tarefas para confirmar que nenhum dos executáveis ainda está em execução). Inicie o OpenVPN novamente e tente novamente.

    
por 21.04.2015 / 02:05
1

Não sendo muito experiente em Windows. OpenVPN, FWIW, aqui está minha proposta sobre o que o culpado pode estar aqui:

  • Olhando para a saída do seu comando de rota do Windows, parece que você está perdendo uma entrada de gateway para a rede OpenVPN. É verdade que você tem um endereço na rede VPN (o endereço 172.16.1.40), mas nenhum gw é definido para essa rede. Na minha caixa, tenho acesso a várias redes, cada uma com seu próprio GW assim:

     0.0.0.0          0.0.0.0      172.20.68.2      172.20.69.3     20
    10.0.3.0    255.255.255.0      172.20.68.5      172.20.69.3     21
    

Para corrigir isso, abra sua configuração do servidor openvpn e adicione uma linha como esta:

 push "route 172.16.1.0 255.255.255.0"

para isso. Isso garante que uma rota adequada seja enviada ao cliente sempre que a conexão com o servidor estiver ativa.

  • Você também pode estar faltando a rota de retorno - às vezes (nem sempre por razões que eu não entendo) você precisa adicionar um iroute à entrada de configuração que você tem para um determinado cliente no diretório ccd do servidor (%código%). Isso traz a rota inversa quando um cliente se conecta ao servidor. o conteúdo de um dos meus arquivos /etc/openvpn/ccd/<vpn>/<client-id> é assim:

    iroute 192.168.87.0 255.255.255.0
    

Isso garante que o servidor OpenVPN possa encaminhar corretamente as coisas de volta ao cliente

  • Acho que você também pode adicionar ccd s à configuração principal do servidor, mas eles serão definidos mesmo que o cliente não esteja conectado. Isso ficaria assim:

    route 192.168.87.0 255.255.255.0 192.168.11.1
    
  • EDIT: Observe também que a execução de clientes OpenVPN no Windows requer privilégios administrativos. Caso contrário, o OpenVPN não poderá adicionar rotas e tal (como observado nos comentários à sua pergunta). A melhor coisa é executá-lo como um serviço para que as conexões sejam ativadas automaticamente na inicialização. Pelo menos, isso funciona muito bem em meus cenários.

Eu acho que você pode fazer isso de novo. O OpenVPN é realmente ótimo e eu o usei com sucesso tanto para negócios quanto para jogos há algum tempo: -)

    
por 16.04.2015 / 13:22
0

Tenho a sensação de que você não está empurrando suas rotas corretamente do servidor. Percebi que o seu gateway para a VPN é um endereço IPv6.

Tente usar a opção push no server.conf para enviar suas rotas. Você também pode querer adicionar a diretiva server para poder reservar a sub-rede do cliente.

Se você está no linux, você precisará ter net.ipv4.ip_forward = 1 no servidor VPN configurado com sysctl também.

Melhor,

-Iuliano

    
por 17.04.2015 / 16:50