Configuração do servidor OpenVPN com o D-Link DSR-250n como cliente

2

Estou tentando conectar meu roteador D-Link DSR-250n ao meu servidor OpenVPN. Eu segui este guia em termos de colocar o servidor em funcionamento e estabelecer com êxito uma conexão de cliente e resolver nomes usando o cliente OpenVPN para Windows e o cliente Android OpenVPN. Aqui está o meu server.conf config:

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key # This file should be kept secret
dh dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1"
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
push "dhcp-option DNS 10.8.0.1"

Adicionei meus certificados ao DSR-250n, assegurei que o protocolo (UDP), criptografia e algos estão corretos e apontei para a VPN (não há outras opções de configuração); ele se conecta aparentemente sem nenhum problema e os logs do roteador não relatam erros. Uma vez que a conexão é estabelecida, eu posso fazer o ping do IP do servidor VPN de um computador conectado ao roteador DSR-250n e também pode SSH para o servidor VPN sem problemas. O que não consigo fazer depois que o roteador está conectado é resolver os nomes do roteador usando as ferramentas internas ou de qualquer computador conectado ao roteador. Em todos os servidores VPN, roteadores e computadores locais, codifiquei os servidores DNS do Google, 8.8.8.8, 8.8.8.4.

Portanto, tenho conectividade com o servidor e uma conexão VPN aparentemente boa que me permite acessar o servidor em si - uma vez lá, posso rastrear nomes sem problemas.

O que eu tentei:

O DSR-250n tem um recurso de proxy DNS que permitirá que os computadores conectados usem o IP do roteador como DNS - eu liguei e desliguei isso sem nenhuma alteração na funcionalidade. Eu realmente não mudei a configuração do servidor acima, pois não sabia por onde começar.

Qualquer ajuda apreciada!

EDIT1 - informações atualizadas. Quando a conexão do cliente VPN do roteador está ativa, tenho a seguinte conectividade:

Do roteador:

  • Não consigo fazer ping de nenhum IP público direto além da rede local 192.168.1.x e do IP público da VPN.
  • Não consigo pingar a sub-rede privada da VPN em 10.8.0.1.
  • Não consigo resolver nomes de internet e o traceroute falha completamente.

De um computador conectado ao roteador via DHCP:

  • Não consigo fazer ping de nenhum IP público direto além da minha rede 192.168.x local e do IP público da VPN.
  • Não consigo pingar a sub-rede privada da VPN em 10.8.0.1.
  • Não consigo resolver nomes de internet e o traceroute falha completamente.

Aqui está a tabela de roteamento IP4 do próprio roteador quando eu tenho uma conexão ativa com o servidor OpenVPN com o roteador como um cliente:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.8.0.1        10.8.0.9        255.255.255.255 UGH   0      0        0 tun1
x.x.x.x (VPN server public IP)    99.231.136.1    255.255.255.255 UGH   0      0        0 eth1
10.8.0.9        0.0.0.0         255.255.255.255 UH    0      0        0 tun1
192.168.1.0    0.0.0.0         255.255.255.0   U     0      0        0 bdg1
99.231.136.0    0.0.0.0         255.255.254.0   U     0      0        0 eth1
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         10.8.0.9        128.0.0.0       UG    0      0        0 tun1
128.0.0.0       10.8.0.9        128.0.0.0       UG    0      0        0 tun1
0.0.0.0         99.231.136.1    0.0.0.0         UG    0      0        0 eth1
    
por Paul Mennega 18.11.2013 / 18:12

1 resposta

2

Minha impressão é que você não parece ter seguido a parte dnsmasq da instrução à qual você vinculou a carta, e você também pode ter um possível problema de roteamento.

O que acontece se você remover a hardcoding do google dns de qualquer lugar, exceto na configuração do seu servidor ovpn? Aqui está um raciocínio adicional sobre o DNS, conforme sua descrição e o link que você deu:

Lembro-me de usar o resolv.conf com o dnsmasq, já que eu estava sempre em endereços públicos estáticos sem dns dinâmicos. A instrução no link parece, no entanto, basear-se em uma solução alternativa para pegar os endereços de DNS atribuídos pelo dhcp. Como você está se alinhando com os endereços do google dns em vez daqueles atribuídos dinamicamente, eu prestaria atenção especial a essa parte. Faça uma resolução dupla segura através do dnsmasq, antes de encadear os clientes através de outro proxy dns de backend. Se você seguir esse guia, certifique-se de entender o que cada etapa faz, pois você pode precisar alterar um pouco o procedimento de configuração do dnsmasq para torná-lo simples e flexível.

Além disso, como a solução é explicitamente projetada em torno do dnsmasq pegando todas as consultas do DNS e encaminhando-as, sua codificação do google dns aborda como resolvedores primários e secundários com o endereço dnsmasq como resolvedor terciário na configuração do servidor ovpn (suponho você está fazendo o mesmo em todos os lugares possíveis que você está escrevendo que você tem hard coded mesmo nos clientes), um tempo limite double dns pode ser esperado antes que a resolução seja feita através do dnsmasq quando você se conectar através da VPN.

Isso obviamente não é o ideal, você deve remover referências ao google dns, exceto conforme especificado para a configuração do resolvedor externo no guia dnsmasq para o servidor ovpn. Quando você tem que trabalhar você pode adicionar os endereços do google dns em seus clientes dns de suas máquinas clientes novamente. Eles devem então ser temporariamente substituídos pelos de openvpn quando você se conectar.

Além disso, considere a possibilidade de que o roteador dlink não aceite três endereços de servidor dns em seu cliente de DNS dinâmico, considere também a possibilidade de conflito entre codificar os endereços e atribuí-los dinamicamente ao dlink ao mesmo tempo. Talvez ele não manipule tal configuração bem? Eu não tenho acesso ao seu modelo dlink e realmente não desejo ler sua documentação, mas apenas indicar algumas possíveis fontes de erro.

Então, realmente tenho a impressão de que você precisa simplificar a parte do dns:

  • Certifique-se de que o servidor dnsmasq do ovpn resolva acessar o google dns e o google dns sozinho.
  • Remova as referências ao google dns em qualquer lugar, exceto no seu servidor dnsmasq resolv.conf ou no arquivo de interfaces, conforme indicado no guia ao qual você se refere.
  • Use seu endereço dnsmasq como endereço do servidor dns em seu cliente dlink dns, tente primeiro codificá-lo e, se isso funcionar, tente empurrá-lo dinamicamente a partir do servidor ovpn.
  • Quando o acima funcionar, no cliente, tente usar o dlink ou o endereço dnsmasq, dependendo da alternância do proxy dns no dlink.

Se você tiver redes adicionais no seu ovpn server ao lado do caminho indicado pela rota padrão, e do qual você depende para fazer a etapa final da Internet, será necessário pressionar essas rotas para o dlink usando a rota 'push' xxx0 255.255.255.0 "diretiva". Apenas para descartar isso.

Para que os clientes na rede vpn cheguem uns aos outros, use a diretiva 'client-to-client' em sua configuração de servidor ovpn.

Além disso, sua tabela de roteamento de roteadores dlink parece um pouco estranha para mim. Eu poderia estar errado sobre isso, pois o dlink pode apresentar sua tabela de roteamento de uma maneira não familiar (para mim). A maneira como parece, comparando-a a um cliente operacional que eu tenho acesso, é que você colocou tanto a rede interna conectando o dlink E a rede de túnel vpn na sub-rede 10.8.0.0/24, enquanto configurava um roteado. ao invés de uma vpn em ponte. Isso criaria problemas no departamento de roteamento.

Como disse, não tenho certeza de como o dlink se apresenta à tabela de roteamento, portanto detalhes adicionais sobre sua rede (em particular como as sub-redes IP internas são planejadas e os endereços IP do servidor de chaves, como o endereço do servidor ovpn, dnsmasq endereço, espaço de rede vpn interno, sub-redes internas do cliente no estado em que se encontra sem vpn) facilitaria a ajuda com essa parte. Ofuscar como achar necessário, mas torná-lo representativo e consistente.

Espero que isso seja de alguma ajuda.

    
por 20.11.2013 / 22:47