Come recuperare automaticamente il nuovo server dei nomi su VPN connect


11

Sto eseguendo Ubuntu Xenial 16.04

Stiamo usando openvpn per connetterci a un cloud privato virtuale. Quel cloud ha il proprio server DNS (così come la nostra route locale - a casa o in ufficio).

Quando mi collego alla VPN sono disponibili tutti gli IP in quella rete ma non riesco a raggiungerne nessuno per nome host. Il motivo è semplice: il file resolv.conf mostra ancora il mio nameserver dell'ufficio locale. Se sovrascrivo manualmente il resolv.conf per avere il server dei nomi corretto, tutto va bene.

Quindi, come posso convincerlo a riconfigurare automaticamente resolv.conf al momento della connessione alla VPN?

Posso collegarmi a un evento di sistema ed eseguire uno script?


1
Normalmente esiste un'opzione per consentire alla VPN di inviare il proprio server DNS. Quale client stai usando? Tunnelblick?
Ryder,

Sto usando il client ufficiale openvpn. Da qualche parte ho letto che il processo VPN non può aggiornare il DNS.
Christian Bongiorno,

Hai provato l' --register-dnsopzione? In alternativa ci sono opzioni sul lato client che puoi impostare, come dhcp-options (il rovescio delle istruzioni qui openvpn.net/index.php/open-source/documentation/howto.html#dhcp )
Ryder,

Risposte:


8

Il pacchetto OpenVPN ha uno script per questo in /etc/openvpn/update-resolv-conf. È necessario configurarlo con:

script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

Ciò recupererà gli indirizzi del server DNS dalle dhcp-option DNSopzioni passate dal peer / server OpenVPN e si configurerà di resolvconfconseguenza. Gestisce dhcp-option DOMAINanche.

Tuttavia, non è perfetto, poiché ciò anteporrà quei server dei nomi all'elenco dei server dei nomi esistenti anziché sovrascrivere l'elenco dei server dei nomi. Se si utilizza openresolvil -xpuò essere utilizzato per sovrascrivere la configurazione DNS, invece di preprending ad esso.


Se stai usando systemd-resolved, puoi usare gli /etc/openvpn/update-systemd-resolvedhook in cui systemd-revolvedanziché resolvconf.

script-security 2 
up /etc/openvpn/update-systemd-resolved
down /etc/openvpn/update-systemd-resolved
down-pre

Su Debian, questo script è nel openvpn-systemd-resolved.


2
sopra queste 2 righe, dovrai anche aggiungere script-security 2o eseguire il tuo openvpncon--script-security 2
32r34wgf3e

0

Ecco la soluzione che mi è venuta in mente: c'è un interruttore che ti permette di eseguire uno script quando il tunnel è attivo e funzionante. Uso l'interruttore per essenzialmente sovrascrivere il file resolv.conf con uno che so sia corretto. È un trucco totale, lo so.

sudo openvpn --up reset-dns.sh --client client.ovpn

lo script (reset-dns):

#!/bin/bash
cp ~/resolv.conf /etc/resolv.conf

Inoltre, per quelli che dicono "OMG! Stai eseguendo quel tunnel come root!" Non funzionerà in nessun altro modo; anche prima del mio hack DNS.

Sono decisamente aperto a un modo migliore. Il gestore di rete per Ubuntu semplicemente non funzionerà. Ho tagliato ripetutamente i biglietti per Ubuntu su questo

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.