Come spingere il mio server DNS su OpenVPN?


27

Ho definito un server DNS non associato sul mio VPS e sembra funzionare. Devo utilizzare il server DNS anziché i server DNS pubblici perché alcuni ISP hanno bloccato gli IP DNS pubblici. Il mio file 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

Come suggerito qui , ho provato ad usare gli IP del mio server (diciamo 11.22.33.44). Quindi invece di

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

Ho appena messo

push "dhcp-option DNS 11.22.33.44"

In openvpn.conf sopra. Tuttavia, dopo aver riavviato openvpn, vedo che il mio client può ancora connettersi al server OpenVPN ma non è più possibile eseguire il rendering di pagine.

Cosa può esserci di sbagliato qui? Come posso risolvere questo problema?

Risposte:


31

Sui Windows 10client, è necessario aggiungere le seguenti direttive a client.ovpn:

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

Non sono necessarie altre direttive per Windows.

Sui Ubuntu 16.04client, potrebbe essere necessario aggiungere le seguenti direttive a client.ovpn:

up /etc/openvpn/update-resolv-conf                                                                                      
down /etc/openvpn/update-resolv-conf  

Le ultime versioni del client OpenVPN per Windows non riconoscono l'opzione DOMAIN-SEARCHcorrettamente e funzionano con DOMAIN.


Ciò richiede una particolare versione minima di OpenVPN?
0xC0000022L

Penso che dovresti usare l'IP del gateway VPN (10.0.8.1), non l'indirizzo IP del gateway locale del router (192.168.1.1). È un indirizzo IP del router così comune che probabilmente il router di rete non attendibile a cui sono direttamente collegati sarà all'indirizzo 192.168.1.1.
carlin.scott,

8

Dici che il "sembra funzionare". Come lo hai verificato? Lo stai basando sul fatto che il server è stato avviato senza errori o hai effettivamente eseguito alcune query su di esso?

La prima cosa che vorrei fare è usare nslookup o scavare per connettermi al server non associato ed eseguire alcune query. So che scavare è più di moda in questi giorni ma conosco meglio nslookup.


$ 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 ciò non funziona, è necessario rivedere nuovamente la configurazione DNS.

È un server DNS primario o un server DNS di cache? Stai cercando di interrogare risorse locali o Internet? Funziona come previsto se non si spinge il server DNS sul client?

Se passi tutto il tuo traffico attraverso il tuo server OpenVPN, non dovresti più preoccuparti che il tuo ISP blocchi i server DNS pubblici poiché, per quanto riguarda il tuo ISP, stai solo generando traffico sul tuo VPS; a meno che il VPS non sia dietro lo stesso ISP.


Bene Ubound potrebbe superare tutti i test che hai citato e alcuni altri, quindi sono abbastanza sicuro che non sia il problema. Per quanto riguarda il motivo per cui ho bisogno di usare il mio server DNS, ho riscontrato che quando uso DNS pubblico come sopra, i client in Iran (dove sono bloccati milioni di siti) non possono ottenere alcuna pagina attraverso la loro connessione openvpn, nonostante il fatto che possono connettersi al server openvpn. Da qui lo sforzo. Grazie
hbp

1
Hai confermato che possono ottenere una pagina Web tramite indirizzo IP una volta connessi? Questo assicurerebbe solo che si tratta davvero di un problema DNS e non di un problema di routing. È molto comune quando si configura OpenVPN per essere in grado di connettersi al server ma non recuperare alcun traffico a causa di un percorso di ritorno mancante.
digitaladdictions,

3

Si scopre che se si sta tentando di connettersi da un client non Windows, è necessario eseguire un paio di passaggi aggiuntivi:

Su Linux

Inserisci questa riga nella configurazione ( client.confo nel xxxx.ovpnfile) del client

dhcp-option DNS 11.22.33.44

Chiamare il client OpenVPN in questo modo:

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

Questo ha funzionato per me.


Unrecognized option or missing or extra parameter(s) in [CMD-LINE]:1: script-security
Javier Buzzi,

1

Testato su Ubuntu 18.04 al 13 settembre 2018

Esistono altri comandi utili per configurare ciò che è necessario tramite la riga di comando. Ma nel mio caso puoi controllare la tua connessione VPN sia con la riga di comando che con la GUI.

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

ifname -- è richiesto per impostazione predefinita, ma non influisce su nulla

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 non utilizzare gateway remoto come route predefinita

E tocco finale molto più interessato:

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'

Successivamente puoi controllare vpn con la GUI o usare i seguenti comandi:

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.