Cosa e' una VPN ?
e' una rete privata (non accessibile al publico) che viene veicolata da una rete pubblica , consente quindi di collegare sedi distanti geograficamente tra di loro come se fossero tutte nello stesso stabile.
essendo una rete privata il suo contenuto non sara' visibile su internet a tutti,si puo' crittografare il traffico dati, e avere certezza delle identita' del server e del client aumentando quindi la sicurezza della nostra comunicazione.
in pratica una rete MPLS ma con costi molto contenuti
Nello scenario classico di una vpn possiamo avere situazioni miste :
- utente in mobilita' con smartphone che devevono accedere alle risorse interne alla rete (intranet)
- dispositivi in postazioni remote ove non e' disponibile connessione adsl, quindi accedono tramite router con chiavetta UMTS
- dispositivi in postazioni dove sono disponibili connessioni adsl ma non sia ha accesso al router e/o il router non ha ip pubblico
la connessione e' la classica a stella, ove al centrostella avremo un dispositivo che si comporta da contentratore/server vpn.
Le soluzioni vpn che possiamo implementare sono molteplici , ma quella a cui mi sono interessato e' OPENVPN , poiche opensource e consente di gestire connessioni lan to lan anche con router a cui il gestore non rilascia un' indirizzo publico, ma un semplice indirizzo privato di un pool di ip nattati (ormai tutti i gestori di telefonia mobile), e non abbiamo bisogno di aver assegnati ip statici, in teoria il server potrebbe essere anche su un' ip dinamico purche' pubblico , reso raggiungibile da un dyndns
OPENVPN consente
- semplicemente aggiungendo i file di configurazione di lanciare piu' istanze multiple del server indipendenti tra di loro, quindi realizzando di fatto su di un' unico hardware piu' server vpn
- l' isolamento client - client , quindi possiamo decidere se ogni singolo client possa o meno dialogare e vedere le risorse dietro un' altro client
- specificare parametri di configurazione differenti per ogni singolo client
- decidere per singolo client se inoltrare tutto il traffico verso la vpn (il client navighera' quindi con l' ip del server, utile magari per imporre delle restrizioni) o solo il traffico intranet
sebbene OPENVPN server sia implementabile anche su macchine windows, per me e' stato naturale implementarlo su un server debian jessie
per i client purtroppo non ho trovato router con capacita' umts e openvpn, quindi ho dovuto ripiegare su :
-
-
- router umts con possibilita' di inserire route statiche e raspberry con sopra raspbian e openvpn
- router su cui si puo' installare il firmware openwrt (anche raspberry pi)
-
una ulteriore scelta da fare e' se creare una vpn bridged ( tap) , ossia i client e' come se fossero virtualmente sulla vostra lan,
pro :
- i client avranno gli stessi range d' indirizzi ip della vostra LAN
- i client riceveranno tutto il traffico broadcast
- non avrete necessita' di configurazioni particolari sul router della sede server
contro:
- tutti i client riceveranno il traffico broadcast , aumentanto il volume di dati scambiati esponenzialmente all' aumentare dei client
- android non supporta le interfacce tap, quindi vi tagliate fuori qualsiasi client android
creare una vpn routed (tun)
pro :
- i client apparterranno a reti con indirizzamento differente
- il traffico broadcast non passa , limitando l'l uso della banda
- se fate una configurazione lan to lan con una macchina che non e' il router avrete necessita' di aggiungere delle rotte statiche al router
- potrete anche avere client android
contro :
- se avete necessita' di usare applicativi che sfruttano il traffico broadcast , non fa' per voi
personalmente , ho scelto questa seconda modalita, ho uno smartphone android , quindi sarei stato obbligato, oltre al fatto che e' la soluzione che mi piace di piu'
ora passiamo all' installazione del server .....