Una VPN o Virtual Private Network può essere considerata un’estensione di una rete privata o aziendale che collega tramite un tunnel crittografato punto-punto due o più computer in modo sicuro. Cominciamo dicendo che molte aziende hanno la necessità di far collegare i propri dipendenti o collaboratori esterni alla lan aziendale, e Openvpn ci permette di fare questo senza costose infrastrutture, anzi essendo OpenSource non avremo bisogno di nulla se non un computer linux come server.
Per la nostra prova abbiamo deciso di usare la distribuzione Linux Centos, quindi per prima cosa scarichiamo Openvpn con i comandi:
wget http://openvpn.net/release/openvpn-2.0.9.tar.gz
wget http://openvpn.net/release/lzo-1.08-4.rf.src.rpm
Installiamo le dipendenze
yum install gcc make
yum install rpm-build
yum install autoconf.noarch
yum install zlib-devel
yum install pam-devel
yum install openssl-devel
e installiamo i pacchetti scaricati:
rpmbuild –rebuild lzo-1.08-4.rf.src.rpm
rpm -Uvh /root/rpmbuild/RPMS/i386/lzo-*.rpm
rpmbuild -tb openvpn-2.0.9.tar.gz
rpm -Uvh /root/rpmbuild/RPMS/i386/openvpn-2.0.9-1.i386.rpm
Spostiamoci nella cartella /etc/openvpn e creiamo il certificato:
openvpn -—genkey -—secret nome.key
editiamo il file di configurazione “nome”.conf
*******************************
dev tun01
port 1194
proto udp
tun-mtu 1500
ifconfig 10.1.0.1 10.1.0.2
secret nome.key
persist-tun
persist-key
comp-lzo
verb 4
mute 10
status logs/nome-status.log
cipher DES-EDE3-CBC
*******************************
Le quattro variabili nella creazione dei file .conf sono le seguenti:
- tun01 è il primo certificato che creiamo, i prossimi saranno tun02 tun03 ecc.
- port 1194 la porta aperta sul firewall per il servizio openvpn.
- ifconfig 10.1.0.1 – 10.1.0.2 sono gli indirizzi ip che assumeranno il server e il client Openvpn durante la connessione (per settare gli indirizzi ip bisogna ricordarsi che essi vanno inseriti in una subnet mask 255.255.255.252 (in sostanza nel nostro esempio l’ ip 10.1.0.0/255.255.255.252 vede come appartenenti alla sua rete gli ip da 10.1.0.0 a 10.1.0.3) in altre parole sono così alternati: ne usi due e ne lasci liberi due quindi nel primo file .conf utilizzo gli indirizzi ip 10.1.0.1 e 10.1.0.2 poi ne salto due e nel secondo file .conf utilizzo gli indirizzi ip 10.1.0.5 e 10.1.0.6 e via di seguito.)
- secret nome.key è il certificato legato a questa configurazione. (se non indichiamo nessun percorso es.( secret config/nome.key) il certificato deve essere inserito nella stessa cartella del file .conf)
Al termine è necessario riavviare il servizio openvpn per rendere effettiva la nuova connessione con il comando linux:
/etc/init.d/openvpn restart
Il lato client avrà anch’esso 2 file, il file di configurazione .ovpn e il file del certificato .key, quest’ultimo deve essere il medesimo presente sul server .
Creare il file .ovpn in questo modo:
*******************************
proto udp
remote xx.xx.xx.xx 1194
dev tun
tun-mtu 1500
ifconfig 10.1.0.2 10.1.0.1
secret nome.key
comp-lzo
verb 4
mute 10
cipher DES-EDE3-CBC
route 192.168.1.0 255.255.255.0 10.1.0.1
route yy.yy.yy.yy 255.255.255.240 10.1.0.1
*******************************
Vediamo le variabili che dovranno necessariamente richiamare ciò che abbiamo indicato nel file .conf del server.
- remote xx.xx.xx.xx 1194 (xx.xx.xx.xx) è l’ip pubblico del server mentre (1194) è la porta che abbiamo assegnato a questa connessione openvpn.
- ifconfig 10.1.0.2 – 10.1.0.1 sono gli indirizzi ip del client e del server durante la connessione vpn, anche questi dati sono stati già assegnati durante la compilazione del file di configurazione lato server. (Attenzione sono da esporre opposti a prima, quindi con gli ip invertiti)
- secret nome.key è la chiave .key che deve essere identica al file .key presente sul server e se non è impostata una directory precisa es.( secret key\nome.key) il file deve essere inserito nella stessa directory del file .ovpn
- route 192.168.1.0 – 255.255.255.0 – 10.1.0.1 route yy.yy.yy.yy – 255.255.255.240 10.1.0.1 sono le rotte ip che facciamo assumere al client una volta connesso alla vpn. Cioè gli facciamo vedere come locali gli ip 192.168.1.0 e yy.yy.yy.yy.
All’indirizzo http://openvpn.se/download.html si può trovare il client per windows openvpn-gui molto semplice da installare. I file di configurazione del client devono essere copiati sotto alla directory C:/programmi/openvpn/config. Se nel file .ovpn alla riga secret c’è indicato solo il file .key e non un percorso i file .ovpn e .key vanno inseriti nella medesima cartella.