Un immagine illustrativa di un Tunnel VPN

Questo articolo nasce dalla necessità che spesso incontrano gli studenti di tutto il mondo per poter eludere i filtri Proxy che spesso non permettono la navigazione sul determinati siti web, oppure semplicemente per nascondere il proprio traffico web da occhi indiscreti utilizzando un tunnel VPN. Sul web girano migliaia di guide ( poche in realtà utilizzano una VPN ed un server SQUID ) su tale argomento.. spero questa sia solo un punto di partenza visto che con tali strumenti potrete fare di tutto :P

Il Tunnel VPN che mi sono creato è uno dei più semplici dato che ho usato una tipologia Point-To-Point, in modo da avere un collegamento diretto tra il Server ed il singolo Client attraverso la creazione di una chiave statica. Entrambe le macchine hanno un Sistema Operativo Linux ( ma per Mac OS X non cambia assolutamente nulla ) nel mio caso Slackware 13.1

##########                          ##########

#    Server     # ——–VPN———    #      Client     #

#  10.0.0.1    #                           #   10.0.0.2   #

##########                           ##########

Un tunnel VPN sara’ creato tra un Server endpoint 10.0.0.1 ed un Client endpoint 10.0.0.2, con una connessione crifrata secondo un algoritmo cipher BF-CBC ed una compressione comp-lzo ( dato che la mia linea ADSL ha una banda in upload di soli 256 Kb ).

Passiamo subito alla creazione della chiave statica che verrà usata per inizializzare la connessione tra Server e Client, supponendo che siamo sulla macchina che fa da Server diamo il seguente comando:

unicondor@server$ openvpn --genkey --secret mykey.key

Una volta creata la chiave dobbiamo assicurarci che anche il Client utilizzi la stessa chiave appena creata dal Server, per cui copiamoci il file appena creato anche sul lato Client supponendo che il file si trovi in /home/server/unicondor.key e che ci sia l’utente ‘user’ che possa accedere a tale cartella sul Server:

unicondor@client$ scp user@server:/home/server/mykey.key .

Supposto che abbiate gia’ installato OpenVPN sui vostri calcolatori, passiamo ai file di configurazione da utilizzare:

Lato Server:
unicondor@server$ cat openvpn.conf

proto udp
port 10111
comp-lzo
verb 3
log-append /var/log/openvpn.log
dev tun
ifconfig 10.0.0.1 10.0.0.2
cipher BF-CBC
secret /home/server/mykey.key

In questo modo abbiamo messo in ascolto il Server sulla porta 10111 ( accertatevi che il Firewall apra questa porta e nel caso accediate dall’esterno, che il router faccia il forwarding della stessa ).

Lato Client:
unicondor@client$ cat openvpn.conf

proto udp
remote server 10111
comp-lzo
verb 3
dev tun
ifconfig 10.0.0.2 10.0.0.1
secret /home/client/mykey.key

Assicuratevi che il modulo dell’interfaccia virtuale tun sia correttamene caricato (sia sul Server che sul Client), sulla mia Slackware devo esplicitamente caricarlo

unicondor@server# modprobe tun

unicondor@client# modprobe tun

Ora non ci resta altro che lanciare il demone sul Server:

unicondor@server# openvpn openvpn.conf

Collegarci dal Client verso il Server:

unicondor@client# openvpn openvpn.conf

e provare a pingare gli IP usati dalla VPN, supponiamo di essere dal Client ( 10.0.0.2 ) e pingare il Server ( 10.0.0.1 )

unicondor@client$ ping 10.0.0.1

PING 10.0.0.1 (10.0.0.1): 56 data bytes
64 bytes from 10.0.0.1: icmp_seq=0 ttl=64 time=102.390 ms
64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=102.439 ms
64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=102.699 ms
64 bytes from 10.0.0.1: icmp_seq=3 ttl=64 time=98.451 ms
^C
--- 10.0.0.1 ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 98.451/101.495/102.699/1.761 ms

Complimenti… vi siete creati il vostro Tunnel VPN :D in modo da poter navigare ( vedremo in seguito come ) senza alcun limite sul web e sicuri che nessuno potra’ intercettare il vostro traffico. L’ora tarda… e lo nottata da passare sul libro de “Architetture dei Computer: Un approccio quantitativo” per l’esame di Sistemi di Eleborazione ad Elevate Prestazioni non mi permette di proseguire con la spiegazione della configurazione di Squid, ma state tranquilli arrivera’ presto :D
Nel frattempo non posso far altro che augurarvi buon divertimento con la vostra VPN...