Esistono VPN distribuite / mesh-like / P2P?


12

Ho la mia VPN personale, collegando diversi dispositivi in ​​modo che possano avere indirizzi IP fissi su una rete sempre raggiungibile (purché siano connessi a Internet). Questo è necessario per me, poiché i miei dispositivi possono essere in movimento, su reti diverse e imprevedibili (cellulare di rete 4G, laptop all'università, server di casa a casa) e ho un server di backup che deve connettersi a loro (e talvolta , Devo anche).

Sto anche pensando di installare qualcosa come syncthing, che potrebbe anche beneficiare di latenze più basse e nodi più vicini.

Inoltre, sono pigro e mi piace riprodurre / mettere in pausa la musica riprodotta sul mio server di casa dal mio smartphone, che potrebbe non essere sulla stessa rete (dovrebbe, ma non è sempre il caso).

Ciò significa che ho un server OpenVPN e il openvpnclient è in esecuzione su ogni dispositivo. Si connettono tutti al server e qualsiasi traffico proveniente da due nodi deve passare attraverso il server, che è relativamente lontano e ha un throughput molto limitato. Ciò significa latenza e lentezza. E quando premo il pulsante "Pausa", possono essere necessari fino a 10 secondi per mettere in pausa la musica. Anche se entrambi i nodi si trovano effettivamente sulla stessa LAN (poiché parlano attraverso la VPN). Meh.

Idealmente, dovrebbe esistere un modo per creare una VPN in grado di trovare percorsi più brevi tra i nodi e tentare di collegarli direttamente. Qualcosa come il modo in cui Skype ha lavorato con i supernodi?

Mentre il server è lontano da qui, uno dei nodi ha un indirizzo IP pubblico e può essere raggiunto dagli altri nodi. Potrebbe fungere da server da loro, anche se non è il server stesso, anche se sarebbe una scelta migliore per alcuni nodi.

Immagino di poter fare qualcosa di simile per eseguire sia un client che un server e collegarli su quel nodo, ma non sembra elegante. È hacker, complica la PKI, divide la VPN. Non mi piace

Mentre potrei usare una semplice VPN come PPTP che non garantisce davvero che le comunicazioni siano sicure, ho deciso che non volevo preoccuparmi di configurare Bacula per crittografare le connessioni tra i nodi, il che significa che il traffico è semplice all'interno della VPN. L'incapsulamento VPN è l' unica sicurezza, quindi non dovrebbe essere debole. Tuttavia, qualsiasi cosa che risolva la VPN simile a "mesh" senza riservatezza sarebbe già un buon inizio - mi assicurerei che il traffico abbia iniziato a passare attraverso SSL / TLS.

Sembra un problema che qualcun altro avrebbe potuto avere e risolto ormai. C'è qualcosa del genere?

C'è anche la possibilità che io lo stia guardando nel modo sbagliato, ma finora sembra l'approccio migliore per assicurarmi di poter sempre connettermi a qualsiasi dei miei dispositivi da remoto, indipendentemente da dove mi trovo o che siano.


Sì, esiste quello che vuoi, per la comunicazione su LAN se i dispositivi sono locali. È il bus di servizio di Azure
goodguys_activate il

Risposte:


6

Non sono sicuro che soddisfi completamente le tue esigenze, ma probabilmente dovresti dare un'occhiata a tinc: http://www.tinc-vpn.org/ . Abbina abbastanza da vicino la rete mesh orchestrata da un server centrale come hai descritto, ma non sono sicuro che riuscirà a scoprire i peer nella tua rete locale.


3

Il vpn mesh più semplice che ho trovato e usato è PeerVPN ( http://www.peervpn.net/ ).

Funzionalità PeerVPN

  • Supporto tunneling Ethernet tramite dispositivi TAP.
  • Supporto IPv6.
  • Topologia di rete full mesh.
  • Costruisce automaticamente tunnel attraverso firewall e NAT senza ulteriori impostazioni (ad esempio, port forwarding).
  • Crittografia della chiave condivisa e supporto per l'autenticazione.

La configurazione è semplice .. un file di configurazione che si modifica e per la rete mesh vpn ci sono solo 6 impostazioni che è necessario specificare vedere l'esercitazione PeerVPN che è solo 1 pagina: http://www.peervpn.net/tutorial/

La chiave di crittografia / autenticazione PSK può essere fino a 512 bit (64 byte).

Finora ho configurato peervpn su più server remoti e funziona molto bene. Inoltre, non è necessario un "super-nodo", come è possibile riscontrare in altre implementazioni di mesh vpn.

I nodi in peervpn vengono informati automaticamente sui nuovi nodi aggiunti alla VPN senza che sia necessario modificare le configurazioni. Anche il traffico da nodo a nodo è diretto e non attraverso un hub vpn centrale.

Nota: leggi il file peervpn.conf predefinito per conoscere molte altre opzioni che puoi "sfruttare". Ma per la mesh di base VPN come ho detto devi solo impostare 6 opzioni (nome di VPN, PSK, indirizzo IP del punto finale del tunnel locale, interfaccia "nome" che vuoi vedere / usare sul tuo sistema linux e numero di porta da usare per "that" vpn ... nota che puoi usare peervpn per più VPN indipendenti su un server)


0

Ho avuto lo stesso identico problema anni fa. Avevo circa 30 uffici che dovevano essere tutti in grado di comunicare direttamente, ma erano configurati in una configurazione "hub-and-speak". Ho scritto uno strumento in Python per generare automaticamente il n x (n-1)/2numero di connessioni in OpenVPN tra gli uffici. Successivamente ho aggiunto il supporto per il routing RIP tra i siti dopo un bizzarro problema di Comcast in cui un ufficio poteva vedere tutti gli altri, ma non l'ufficio principale. Alla fine ho aggiunto la possibilità di generare automaticamente DNS inverso per gli IP di collegamento e la possibilità di inviare i pacchetti a ciascun router.

Dai un'occhiata a OpenMesher . Proprio questa mattina ho deciso di rispolverarlo per un prossimo progetto. Spero che faccia quello che vuoi. In caso contrario, non esitare a inviare un problema e ti aiuterò.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.