Gestione DNS con OpenVPN su linux: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
mNo edit summary |
||
| Line 39: | Line 39: | ||
/etc/resolv.conf | /etc/resolv.conf | ||
* 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 | ||
* Testare e risolvere i nomi che servono con le vpn attive | |||
Revision as of 23:09, 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
- Verificare se serve nel file della vpn il riferimento agli script up e down, o se basta script-securty
- Testare e 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]