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!
🙂