Learn

Tunnelblick e i DNS delle reti private

6 Ottobre 2020 - 2 minuti di lettura

Tunnelblick [1] è un client free e open-source che permette di attivare una connessione sicura con un server OpenVPN [2].

La gestione dei DNS in Tunnelblick è una parte complessa che fornisce parecchie opzioni ma, per semplificare, possiamo dire che a connessione attiva di norma vengono utilizzati i DNS della rete a cui ci si connette (rete remota).

Purtroppo però se la rete alla quale il MAC è collegato (rete locale) ha specifici DNS interni in grado di consentire l’accesso a servizi privati e non pubblicati su Internet, adottando i DNS della rete remota, si perde la possibilità di accedere a tutti questi servizi locali.

Il problema

Chiariamo usando Intré come esempio.

Dominio internet: intre.it

Server pubblici su Internet: www.intre.it, box.intre.it, pm.intre.it ecc. Questi server sono pubblicati su qualsiasi DNS internet (ad esempio 8.8.8.8).

Dominio locale non visibile su internet: intre.privato

Server privati: dc.intre.privato, fileserver.intre.privato, nas32.intre.privato ecc. Questi server sono pubblicati solo sul DNS aziendale dns.intre.privato.

Tutti i MAC che sono collegati alla rete locale ricevono come DNS dns.intre.privato e quindi sono in grado di accedere sia ai servizi pubblici di www.intre.it, box.intre.it, pm.intre.it, sia ai servizi privati di dc.intre.privato, fileserver.intre.privato, nas32.intre.privato.

Quando però un utente attiva una connessione Tunnelblick con la rete di un’altra azienda (supponiamo sia l’azienda <intrepartner>.it che ha come DNS privato dns.<intrepartner>.privato) viene sostituito il riferimento al DNS dns.intre.privato con il DNS della rete remota dns.<intrepartner>.privato.

Quest’ultimo risolverà correttamente gli indirizzi:

  • pubblici di Intré www.intre.it, box.intre.it, pm.intre.it,
  • pubblici della rete <intrepartner.it>,
  • privati della rete <intrepartner>.privato.

Non sarà però in grado di gestire gli indirizzi privati di intre.privato, e quindi i server dc.intre.privato, fileserver.intre.privato, nas32.intre.privato diventano irraggiungibili.

La soluzione con Tunnelblick

Ovviamente esiste una soluzione, ed anche piuttosto semplice. L’unica condizione è poter accedere al MAC con un account con diritti di amministratore.

Se richiesto, quindi, eseguire i comandi precedendo ognuno con sudo.

Occorre:

  1. Se non già esistente, creare la cartella /etc/resolver.
  2. Creare in /etc/resolver un file per ogni zona del dns che si vuole venga gestita da specifici DNS.
  3. In questi file precisare l’indirizzo del DNS da utilizzare.
  4. Consentire alla VPN di raggiungere il DNS.

Nel nostro caso, quindi, bisogna creare sul MAC il file /etc/resolver/intre. con un contenuto simile al seguente (ovviamente va adattato ai parametri specifici della propria rete):

search intre.privato
nameserver 192.168.1.1
nameserver 192.168.1.2
nameserver 192.168.3.22

In pratica stiamo chiedendo alla nostra macchina di utilizzare in ogni caso, indipendentemente da cosa ha configurato Tunnelblick, questi tre DNS server ogni qualvolta si debba convertire l’URL di un servizio che risiede in intre.privato.

E voilà, il gioco è fatto!

P.S.: Questi concetti si applicano anche a client Linux che aprono un collegamento VPN da una rete privata dotata dei suoi specifici DNS server.

Articolo scritto da