Client Openvpn, forza server DNS


10

La nostra configurazione Ubuntu Linux ha un server DNS (Bind 9).
E resolv.confha il suo

  nameserver 127.0.0.1

Quando si utilizza un openvpnclient su quel Linux, il nameserver non viene modificato (dal server VPN) ma vorrei impostarlo - solo durante la sessione VPN - su un altro server DNS specifico x.y.z.t, modificando la configurazione del client openvpn.

Quindi, al termine della openvpnsessione, il nameserver dovrebbe tornare a 127.0.0.1.

Esiste un modo "pulito" (cioè una riga nel file di configurazione del client openvpn) per farlo?

(Nota: la configurazione del server VPN non può essere modificata)

Risposte:


17

Dopo aver cercato su Google, potrebbe trovare la risposta - di seguito se può aiutare qualcuno.

  • installa resolvconf che può salvare e ripristinare il resolv.conffile di configurazione
  • aggiungere uno script che verrà eseguito da openvpn , in /usr/share/openvpn, denominato update-resolv-conf. Lo script determina quale dovrebbe essere il nuovo resolv.confe come ripristinarlo (vedi link sotto)
  • Inserisci

queste linee

  script-security 2
  up /usr/share/openvpn/update-resolv-conf
  down /usr/share/openvpn/update-resolv-conf

nel file di configurazione del client openvpn.

Leggi su questa wiki per ulteriori informazioni.


6
Le installazioni più recenti di OpenVPN includono questo script con l'installazione. Invece di scaricare e installare manualmente su /usr/share/openvpn/update-resolv-conf, puoi trovarlo preinstallato su /etc/openvpn/update-resolv-conf.
Nate Lampton,

Quale versione di OpenVPN ha iniziato a includere questo file?
lanoxx,

1
Un po 'tardi alla festa qui ma sto usando 2.4.6ed è stato installato per me
Roshan Bhumbra

1

Prendi in considerazione l'utilizzo di route-up/ route-downscript sul tuo client per modificare la configurazione durante l'impostazione della connessione come ritieni opportuno. Vedi i documenti OpenVPN sui dettagli per come impostare questo e quali variabili potresti usare in questi script.


+1, interessante e utile. La soluzione resolvconf su e giù (sopra o sotto la classificazione in base al rating ..) è comunque più precisa e, quindi, più pulita.
Anello Ø

@ ring0 Consiglio di utilizzare route-upinvece di upridurre al minimo le condizioni di gara. Quando lo upscript viene eseguito, la connessione non è ancora impostata e non hai alcuna possibilità di interrogare il resolver remoto che stai impostando. Se avvii il client OpenVPN in una situazione in cui l'installazione della connessione non viene completata, stai mettendo il tuo resolver in uno stato probabilmente non funzionale per un periodo di tempo prolungato. Vedere la sezione "Ordine di esecuzione degli script" nella pagina man di OpenVPN per i dettagli.
the-wabbit il

Ho fatto alcuni test e lo script up viene chiamato quando viene raggiunta la "Sequenza di inizializzazione completata", non prima. Btw non riesce a trovare "route-down" nell'uomo.
Anello Ø

1

Queste informazioni sono state utili per aiutarmi a risolvere questo problema.

Sono un utente di Arch Linux e ciò che ho visto è che quando un client Linux viene utilizzato con Access Server, questo non è in grado di modificare le impostazioni DNS sul client in questione non risolvendo l'host come si trova sulla documentazione OPEN VPN

Ho creato uno script che risolve il problema e con un paio di parametri extra gestisce le connessioni openvpn tramite riga di comando.

https://gist.github.com/android10/ee5c3e93dbcf9b7b31e6ee768cbfd477

Ecco il comando principale in esecuzione per la connessione:

  nohup openvpn --config $OVPN_FILE_PATH --askpass $OVPN_PRIVATE_KEY_FILE_PATH \
  --script-security 2 \
  --setenv PATH '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' \
  --up /etc/openvpn/scripts/update-systemd-resolved \
  --down /etc/openvpn/scripts/update-systemd-resolved \
  --down-pre \
  &>/dev/null &

Qualsiasi feedback è più che apprezzato.


-2

echo "nameserver = wxyz"> /etc/resolv.conf
echo "nameserver = 127.0.0.1" >> /etc/resolv.conf


2
Ciò sembra inesatto (pensa al percorso di ricerca DNS e alla persistenza del nameserver VPN), ma non è anche chiaro dove tu voglia metterlo.
Falcon Momot,

Dovrebbe esserci uno spazio tra 'nameserver' e l'IP.
Lorenzog,
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.