Gestione DNS con OpenVPN su linux: Difference between revisions
Jump to navigation
Jump to search
m New page: È complicato. ==Verifica impsotazione resolver== * Impostare il corretto ordine di risoluzione dei nomi sudoedit /etc/nsswitch.conf ... hosts: files dns mdns4_minimal [NOTF... |
mNo edit summary |
||
| Line 1: | Line 1: | ||
È complicato. | ==Gestione con openresolv== | ||
Così è semplice :) | |||
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 | |||
sudo apt-get install openresolv dnsmasq | |||
* Configurare openresolv (si il suo file di cfg è resolvconf.conf. Infatti sostituisce resolvconf :) | |||
sudoedit /etc/resolvconf.conf | |||
<pre> | |||
# Configuration for resolvconf(8) | |||
# See resolvconf.conf(5) for details | |||
# togliere questo !!! | |||
#resolv_conf=/etc/resolv.conf | |||
# If you run a local name server, you should uncomment the below line and | |||
# configure your subscribers configuration files below. | |||
name_servers=127.0.0.1 | |||
# Per pdnsd | |||
# Modify the pdnsd configuration file | |||
#pdnsd_conf=/etc/pdnsd.conf | |||
# Write out dnsmasq extended configuration and resolv files | |||
dnsmasq_conf=/etc/dnsmasq-conf.conf | |||
dnsmasq_resolv=/etc/dnsmasq-resolv.conf | |||
</pre> | |||
* Riavviare il dns | |||
sudo invoke-rc.d dnsmasq restart | |||
* Controllare che vengano scritti i dns ed i domini in | |||
/etc/resolv.conf | |||
* risolvere i nomi che servono con le vpn attive | |||
È complicato nell'altro modo. | |||
==Verifica impsotazione resolver== | ==Verifica impsotazione resolver== | ||
* Impostare il corretto ordine di risoluzione dei nomi | * Impostare il corretto ordine di risoluzione dei nomi | ||
Revision as of 23:07, 15 October 2011
Gestione con openresolv
Così è semplice :)
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
sudo apt-get install openresolv dnsmasq
- Configurare openresolv (si il suo file di cfg è resolvconf.conf. Infatti sostituisce resolvconf :)
sudoedit /etc/resolvconf.conf
# Configuration for resolvconf(8) # See resolvconf.conf(5) for details # togliere questo !!! #resolv_conf=/etc/resolv.conf # If you run a local name server, you should uncomment the below line and # configure your subscribers configuration files below. name_servers=127.0.0.1 # Per pdnsd # Modify the pdnsd configuration file #pdnsd_conf=/etc/pdnsd.conf # Write out dnsmasq extended configuration and resolv files dnsmasq_conf=/etc/dnsmasq-conf.conf dnsmasq_resolv=/etc/dnsmasq-resolv.conf
- Riavviare il dns
sudo invoke-rc.d dnsmasq restart
- Controllare che vengano scritti i dns ed i domini in
/etc/resolv.conf
- risolvere i nomi che servono con le vpn attive
È complicato nell'altro modo.
Verifica impsotazione resolver
- Impostare il corretto ordine di risoluzione dei nomi
sudoedit /etc/nsswitch.conf
... hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4 ...
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 \
...
- 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]