Guida N2N : La miglior vpn peer to peer su debian/unix

December 21, 2015 0 Comments CLI Utility

Ciao! Vi siete mai trovati nella situazione di dover configurare vpn su vpn e ancora vpn , oppure tunnel ssh con vpn, vpn con tunnel ssh con vpn… per poi potervi connettere ai server di clienti e i vostri? Io si, e ho trovato una soluzione funzionante in ambiente unix, ma sopratutto in ambiente debian.

Questo pacchetto si chiama n2n, ed è un programma creato da Ntop, un’azienda italiana http://www.ntop.org/about/locations/

E’ già presente nelle repository ufficiali di debian ubuntu, e per installarlo basterà lanciare

apt-get install n2n  

Facile no?

Nel nostro caso la versione che andiamo ad utilizzare è la V1, c’è anche la V2 ma non essendo nelle repository standard bisognerebbe andare a ricompilarla.

La struttura di n2n, per funzionare, ha bisogno un una macchina che faccia da arbitro, chiamata “supernode“.

Bisogna quindi avere 3 macchine in totale per fare una prova (ovviamente in produzione le macchine saranno sicuramente di più)

Una delle macchine la identificheremo come Supernodo 1 nella quale lanceremo il programma “arbitro”

sudo supernode -l 5000  

Dove 5000 è la porta che scegliamo per comodità, dove il nostro servizio rimarrà in ascolto.

Dopodiché, dovremo scegliere un nome rete e una password che sarà condivisa in tutte le macchine che vorremo nella nostra LAN virtuale. Per esempio: nome rete: star  password rete : wars

Nel primo client, che identifichiamo come Client 1 lanceremo il seguente comando:

sudo edge -a 172.16.0.1 -c star -k wars -l IPSERVERSUPERNODO:5000 -d n2n -b -m ae:e9:ee:22:78:5b -M 1200 -f  

IPSERVERSUPERNODO sarà un ip raggiungibile su internet della macchina Supernodo 1 mentre l’ip 172.16.0.1 sarà l’ip virtuale che daremo alla nostra nuova interfaccia di rete n2n. Inoltre si da anche il mac address , in questo caso ae:e9:ee:22:78:5b, e l’mtu con il parametro -M 1200.

Questo parametro è importantissimo perché in alcuni casi il parametro di default 1400 è troppo grande, e non viene incapsulato correttamente.

Quindi nel secondo client, che identifichiamo come Client 2 andremo a lanciare

sudo edge -a 172.16.0.2 -c star -k wars -l IPSERVERSUPERNODO:5000 -d n2n -b -m ae:e9:ee:22:78:5c -M 1200 -f  

Stesso comando, ma si cambia l’ip, e il mac address, per identificare univocamente questo Client 2.

In questo modo se si prova a pingare o fare qualunque altro tipo di connessione tra i due Client, saranno raggiungibili in entrambe le vie! Provare per credere! Inoltre questa vpn crea connessioni UDP dirette tra i client, in modo che la velocità di connessione sia sempre la massima possibile.

Possiamo quindi aggiungere un client 3, 4 e cosi via cambiando solamente il comando edge che si va a lanciare!

🙂

Samuele Chiocca
Padova, italy Website