Como empurrar meu próprio servidor DNS para o OpenVPN?

20

Eu defini um servidor DNS desvinculado no meu VPS e parece funcionar. Eu preciso usar o servidor DNS em vez de servidores DNS públicos porque alguns ISPs bloquearam IPs de DNS públicos. Meu arquivo openvpn.conf é:

    dev tun
    proto tcp

    # Notice: here I set the listening port to be 80 to avoid possible port blockage
    port 80

    ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
    cert /etc/openvpn/easy-rsa/2.0/keys/server.crt
    key /etc/openvpn/easy-rsa/2.0/keys/server.key
    dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem

    user nobody
    group nogroup
    server 10.8.0.0 255.255.255.0

    persist-key
    persist-tun

    #status openvpn-status.log
    #verb 3
    client-to-client

    push "redirect-gateway def1"

    #pushing public DNS IPs

    push "dhcp-option DNS 208.67.222.222"
    push "dhcp-option DNS 208.67.222.220"

    comp-lzo

Como é sugerido aqui , tentei usar os IPs do meu servidor (por exemplo, 11.22.33.44). Então, ao invés de

    push "dhcp-option DNS 208.67.222.222"
    push "dhcp-option DNS 208.67.222.220"

Acabei de colocar

push "dhcp-option DNS 11.22.33.44"

No openvpn.conf acima. No entanto, depois de reiniciar o openvpn, vejo que meu cliente ainda pode se conectar ao servidor OpenVPN, mas nenhuma página pode ser renderizada mais.

O que pode estar errado aqui? Como posso resolver este problema?

    
por hbp 05.10.2011 / 05:18

4 respostas

19

Em Windows 10 client você precisa adicionar diretivas follwing ao arquivo de configuração client.ovpn:

script-security 2                                                                                                       
dhcp-option DNS 192.168.1.1                                                                                           
dhcp-option DOMAIN example.lan                                                                                   

No more directives is required for windows.

Em Ubuntu 16.04 client você precisa adicionar diretivas follwing ao arquivo de configuração client.ovpn:

script-security 2                                                                                                       
dhcp-option DNS 192.168.1.1                                                                                           
dhcp-option DOMAIN example.lan                                                                                   

# Only on ubuntu client, you also need following directives:                                                              
up /etc/openvpn/update-resolv-conf                                                                                      
down /etc/openvpn/update-resolv-conf  

As versões mais recentes do cliente openvpn para o Windows não reconhecem a opção DOMAIN-SEARCH corretamente e funcionam com a opção DOMAIN .

    
por 21.12.2016 / 14:21
8

Você diz que "parece funcionar". Como você verificou isso? Você está baseando-se no fato de o servidor ter iniciado sem erros ou você realmente realizou algumas consultas contra ele?

A primeira coisa que eu faço é usar nslookup ou cavar para conectar ao servidor não acoplado e realizar algumas consultas. Eu sei que a escavação está mais na moda nos dias de hoje, mas eu sei que o nslookup é melhor.


$ nslookup
> server 11.22.33.44
Default server: 11.22.33.44
Address: 11.22.33.44#53
> set type=A
> www.google.com
Server:     11.22.33.44
Address:    11.22.33.44#53

Non-authoritative answer:
www.google.com  canonical name = www.l.google.com.
Name:   www.l.google.com
Address: 74.125.225.52
Name:   www.l.google.com
Address: 74.125.225.48
Name:   www.l.google.com
Address: 74.125.225.49
Name:   www.l.google.com
Address: 74.125.225.50
Name:   www.l.google.com
Address: 74.125.225.51

Se isso não funcionar, você deve rever a configuração do DNS novamente.

Este é um servidor DNS primário ou um servidor DNS em cache? Você está tentando consultar recursos locais ou recursos da Internet? Funciona como esperado se você não enviar seu servidor DNS para o cliente?

Se você passar todo o seu tráfego através do seu servidor OpenVPN, você não precisa se preocupar mais com o seu provedor de internet bloqueando servidores DNS públicos, já que, no que diz respeito ao seu ISP, você está apenas gerando tráfego para o seu VPS; a menos que o VPS esteja atrás do mesmo ISP.

    
por 05.10.2011 / 06:38
3

Acontece que, se você estiver tentando se conectar de um cliente que não seja Windows, precisará executar algumas etapas extras:

No Linux

Coloque esta linha na configuração do seu cliente ( client.conf ou xxxx.ovpn file)

dhcp-option DNS 11.22.33.44

Ligue para o cliente OpenVPN desta forma:

$ openvpn --script-security 2 --config xxxx.ovpn

Isso funcionou para mim.

    
por 30.05.2016 / 01:28
0

Tested on Ubuntu 18.04 at 13 Sep 2018

Existem outros comandos úteis para configurar o que você precisa via linha de comando. Mas no meu caso, você pode controlar sua conexão VPN com linha de comando e GUI.

sudo nmcli connection add type vpn vpn-type openvpn con-name la.vpn.contoso.com ifname --

ifname -- is the required by default, but does not affect anything

sudo nmcli connection modify la.vpn.contoso.com ipv4.dns 172.16.27.1 sudo nmcli connection modify la.vpn.contoso.com ipv4.dns-search int.contoso.com sudo nmcli connection modify la.vpn.contoso.com ipv4.never-default yes

never-default should not use remote gateway as default route

E toque final muito mais interessado:

nmcli connection modify la.vpn.contoso.com vpn.data 'ca = /tmp/la.vpn.contoso.com/you/ca.crt, key = /tmp/you.key, dev = tun, cert = /tmp/you.crt, cert-pass-flags = 1, comp-lzo = adaptive, remote = la.vpn.contoso.com:1194, connection-type = tls'

Depois você pode controlar a vpn com GUI ou usar os seguintes comandos:

sudo nmcli --ask connection up la.vpn.contoso.com sudo nmcli connection down la.vpn.contoso.com

    
por 13.09.2018 / 16:38