Gestione DNS con OpenVPN su linux: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
|||
| Line 16: | Line 16: | ||
==Gestione con openresolv== | ==Gestione con openresolv== | ||
'''Questo è il metodo più semplice''' | |||
In pratica openresolv invia a dnsmasq via dbus la configurazione dei dns da usare. | |||
Openresolv provvede a generare le configurazioni per il server dns locale che si usa. Con dnsmasq funziona, con pdnsd non si riesce a far funzonare bene con più vpn. | Openresolv provvede a generare le configurazioni per il server dns locale che si usa. Con dnsmasq funziona, con pdnsd non si riesce a far funzonare bene con più vpn. | ||
* Installare | * Installare openresolv e la versione completa di dnsmasq | ||
sudo apt-get install openresolv dnsmasq | sudo apt-get install openresolv dnsmasq | ||
* Configurare openresolv ( | * Killare le istanze di dnsmaq avviate da NetworkManager | ||
sudo killall dnsmasq | |||
* Configurare openresolv (Sì. Il suo file di cfg è resolvconf.conf. Infatti sostituisce resolvconf :) | |||
sudoedit /etc/resolvconf.conf | sudoedit /etc/resolvconf.conf | ||
<pre> | <pre> | ||
# | #... | ||
# togliere questo !!! | # togliere questo !!! | ||
#resolv_conf=/etc/resolv.conf | #resolv_conf=/etc/resolv.conf | ||
... | |||
name_servers=127.0.0.1 | name_servers=127.0.0.1 | ||
#... | |||
</pre> | |||
* Attivare il support dbus in dnsmaq | |||
sudoedit /etc/dnsmasq.conf | |||
# | #... | ||
enable-dbus | |||
* Riavviare il dns | * Riavviare il dns | ||
| Line 54: | Line 54: | ||
/etc/resolv.conf | /etc/resolv.conf | ||
* Testare e risolvere i nomi che servono con le vpn attive | * Testare e risolvere i nomi che servono con le vpn attive | ||
* Verificare se serve nel file della vpn il riferimento agli script up e down, o se basta script-securty | |||
===Riferimenti=== | ===Riferimenti=== | ||
*[http://roy.marples.name/projects/openresolv/wiki openresolv] | *[http://roy.marples.name/projects/openresolv/wiki openresolv] | ||
*[http://roy.marples.name/projects/openresolv/wiki/OpenResolvConfigDnsmasq OpenResolvConfigDnsmasq – openresolv] | |||
==Attivazione dello script Openvpn== | ==Attivazione dello script Openvpn== | ||
Revision as of 09:05, 16 October 2013
Verifica impostazione resolver
SE NON SI FA QUESTO, LA RISOLUZIONE DEI NOMI CON host funzionerà, ma tutti gli altri programmi, come ping, telnet e firefox, non risolveranno i nomi:
- Impostare il corretto ordine di risoluzione dei nomi
sudoedit /etc/nsswitch.conf
... hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4 ...
Riferimenti
Gestione con openresolv
Questo è il metodo più semplice
In pratica openresolv invia a dnsmasq via dbus la configurazione dei dns da usare.
Openresolv provvede a generare le configurazioni per il server dns locale che si usa. Con dnsmasq funziona, con pdnsd non si riesce a far funzonare bene con più vpn.
- Installare openresolv e la versione completa di dnsmasq
sudo apt-get install openresolv dnsmasq
- Killare le istanze di dnsmaq avviate da NetworkManager
sudo killall dnsmasq
- Configurare openresolv (Sì. Il suo file di cfg è resolvconf.conf. Infatti sostituisce resolvconf :)
sudoedit /etc/resolvconf.conf
#... # togliere questo !!! #resolv_conf=/etc/resolv.conf ... name_servers=127.0.0.1 #...
- Attivare il support dbus in dnsmaq
sudoedit /etc/dnsmasq.conf
#... enable-dbus
- Riavviare il dns
sudo invoke-rc.d dnsmasq restart
- Controllare che vengano scritti i dns ed i domini in
/etc/resolv.conf
- Testare e risolvere i nomi che servono con le vpn attive
- Verificare se serve nel file della vpn il riferimento agli script up e down, o se basta script-securty
Riferimenti
Attivazione dello script Openvpn
La vpn deve lanciare lo script di aggiornamento di resolvconf.
- Aggiungere quindi i parametri
vi ~/local/bin/vpn-rvm
...
--script-security 2 \
--up /etc/openvpn/update-resolv-conf \
--down /etc/openvpn/update-resolv-conf \
...
Gestione manuale di dnsmasq
In questo modo è più complicato ...
Customizzazione script dns openvpn
- Customizzare lo script di aggiornamento:
sudoedit /etc/openvpn/update-resolv-conf
Per la parte up):
...
echo -n "$R" | /sbin/resolvconf -a "${dev}.inet"
# update dnsmasq config
echo -n "server=/$IF_DNS_SEARCH/$IF_DNS_NAMESERVERS" > /etc/dnsmasq.d/$I
invoke-rc.d dnsmasq restart
;;
Per la parte down):
down)
for optionname in ${!foreign_option_*} ; do
option="${!optionname}"
echo $option
part1=$(echo "$option" | cut -d " " -f 1)
if [ "$part1" == "dhcp-option" ] ; then
part2=$(echo "$option" | cut -d " " -f 2)
part3=$(echo "$option" | cut -d " " -f 3)
if [ "$part2" == "DNS" ] ; then
IF_DNS_NAMESERVERS="$IF_DNS_NAMESERVERS $part3"
fi
if [ "$part2" == "DOMAIN" ] ; then
IF_DNS_SEARCH="$part3"
fi
fi
done
R=""
/sbin/resolvconf -d "${dev}.inet"
# update dnsmasq config
rm -f /etc/dnsmasq.d/$IF_DNS_SEARCH
invoke-rc.d dnsmasq restart
;;
Installazione di resolvconf
- Installare
sudo apt-get install resolvconf
- Configurare le priorità con cui vengono inseriti i parametri in /etc/resolv.conf, mettendo i device tun e tap dopo eth e wlan e NetworkManager prima di tutto
sudoedit /etc/resolvconf/interface-order
# interface-order(5) NetworkManager* lo.inet* lo.dnsmasq lo.pdnsd lo.!(pdns|pdns-recursor) lo hso* eth* ath* wlan* ppp* tun* tap* *
ATTENZIONE: NetworkManager deve essere il primo, perchè eth e wlan sono gestiti solo da /etc/init.d/networking
- Testare rescolvconf:
- togliere rimettere il cavo di rete e verificare che venga riscritto il file /etc/resolv.conf
- avviare la vpn e verificare che DNS e SEARCH vengano inseriti dopo quelli di rete
- Scollegare la VPN
- Impostare come DNS primario localhost:
sudoedit /etc/resolvconf/resolv.conf.d/head
... nameserver 127.0.0.1 ...
- Ritestare e vedere che viene messo per primo 127.0.0.1
- Scollegare la VPN
Installazione DNSMASQ
- Installare
sudo apt-get install dnsmasq
- Testare collegando la VPN, verificando che sia creato il file:
/etc/dnsmasq.d/rvmgroup.local
- che deve contenere
server=/rvmgroup.local/ 192.168.254.100
- Scollegare la VPN: il file deve sparire.
Note
- Non basta inserire i DNS nel corretto ordine, perchè quando il primo ritorna NXDOMAIN, la query si ferma
- Non si può gestire la cosa nemmeno mettendo in
/etc/nsswitch.conf
hosts: files dns [SUCCESS=return NOTFOUND=continue TRYAGAIN=3 UNAVAIL=continue]
- per lo stesso motivo
- Non si può inserire in
/etc/resolv.conf
options rotate
- per lo stesso motivo.
- Non si può usare l'opzione --all-servers di dnsmasq per lo stesos motivo
- Si potrebbe patchare dnsmasq per ritornare FAILED invece di NXDOMAIN (vedi note)
Riferimenti
- General Solaris 10 Discussion - Multile DNS in resolv.conf
- resolv.conf options rotate and discovery of ISP DNS issue | Into.the.Void.
- [Dnsmasq-discuss all-servers option issue]
- Tutorial - OpenVPN client the right way, one click with gopenvpn - Ubuntu Forums
- HowTo/dnsmasq - Debian Wiki
- [Dnsmasq-discuss all-servers option issue]
- [Dnsmasq-discuss Try next forward servers after NXDOMAIN]