Come configurare una VPN per il tuo team di sviluppo web

Pubblicato: 2021-10-11

La caratteristica principale della moderna Internet è la sua costante disponibilità. Non è necessario archiviare i dati localmente, che sono rapidamente accessibili tramite la rete. Altri problemi sorgono se questi dati diventano improvvisamente non disponibili in un momento imprevedibile. La maggior parte degli sviluppatori lavora in remoto e potrebbe non avere risorse se proviene da determinate parti. In questo articolo, vedremo come configurare una VPN per il tuo team di sviluppo web.

Problemi comuni di Internet

Cosa significa in pratica l'inaccessibilità di una risorsa Internet?

- Alcune librerie non vengono scaricate - l'ambiente di sviluppo del progetto non avverrà. Questo è il problema principale e più grande!

- Zoom, Slack o Telegram non funzionano - non sarai in grado di contattare i colleghi.

- Alcuni siti non sono disponibili, ad esempio GitHub - è impossibile pubblicare il tuo lavoro.

Questi non sono tutti esempi possibili, ma anche loro possono ridurre notevolmente la produttività del team.

Chi è colpevole?

In pratica, le restrizioni sopra descritte sono generalmente implementate dal provider Internet. E non ha senso incolpare il fornitore per loro perché le restrizioni sono state introdotte dagli atti amministrativi degli stati. Il fornitore dovrebbe essere impegnato in affari, non in lotte politiche.

Ma a volte, il provider si rivela un cattivo. Ad esempio, per qualche motivo sconosciuto, possono bloccare il traffico su porte TCP specifiche o modificare il traffico http non crittografato e modificare il codice html della pagina, aggiungere annunci. Questo è quello che ti aspetti da alcuni truffatori, ma sicuramente non da una grande azienda, quindi è doppiamente spiacevole (se sei interessato, google "pubblicità su siti di altre persone").

Cosa fare?

Una volta che l'entità del problema ha chiarito che dovrebbe essere risolto a livello aziendale e non lasciato alla mercé dei membri del team, puoi utilizzare la tecnologia VPN.

La VPN è una rete privata virtuale. Questo è il nome di un gruppo di tecnologie che consentono di creare una rete di computer fisica (overlay) virtuale, inesistente, basata su una rete di computer fisici esistente.

Ciò offre ulteriori opportunità per aumentare la privacy. In una rete fisica, in prima approssimazione, il tuo traffico è disponibile per tutti i partecipanti allo scambio di rete, tutti i router, ecc. Non ci sono partecipanti aggiuntivi nella rete virtuale, solo tu e il punto a cui ti connetti. Se ne stai configurando uno per il tuo team di sviluppo web, questo è un server VPN. Un tunnel crittografato è stato posato tra voi due.

Le interfacce di rete virtuale TUN vengono create sulla macchina client e sul server. Lo scambio di dati crittografati avviene direttamente tra di loro. I tuoi dati sono efficacemente protetti dagli attacchi man-in-the-middle (MITM). Nessuno che ha accesso fisico alle apparecchiature attraverso le quali passa il tuo traffico può intercettare o sostituire le tue informazioni.

Consente inoltre di accedere a risorse non disponibili sulla rete domestica ma disponibili dal server VPN.

Con la tecnologia VPN, il client diventa parte della sottorete di cui fa parte il server. E può accedere alle risorse di questa sottorete. Questo può essere utilizzato per aggirare le restrizioni e risolvere qualsiasi altro problema che richiede una connessione remota e sicura a una sottorete.

Scelta di un'implementazione VPN

Decidere non è fare. Esistono diverse implementazioni di tecnologia VPN gratuite comuni. Puoi provare questa prova gratuita di Surfshark VPN per avere un'esperienza di ciò che potresti ottenere.

Cos'altro puoi scegliere dopo aver ottenuto la VPN giusta

IPsec è un insieme di protocolli per la trasmissione sicura dei dati. È apparso a metà degli anni '90. È grande e flessibile ma difficile da configurare e di basso livello. Troppo complicato per alcuni scopi.

WireGuard è un progetto giovane (2015) volto a una rapida preparazione al lavoro. Potenzialmente più veloce nel trasferimento dei dati rispetto a diverse VPN, utilizza protocolli di crittografia più moderni, multipiattaforma, disponibili su tutti i principali sistemi. Lo svantaggio è uguale al vantaggio. Per garantire un'installazione rapida e semplice, molte decisioni di basso livello vengono prese nel cuore del programma. Ad esempio, l'uso del protocollo UDP, che potrebbe non essere efficace per tutti.

Scegliere il modo di iniziare e utilizzare

Manualmente

Il modo più ovvio è noleggiare un VPS, connettersi tramite SSH e creare un server seguendo la guida. Questo è un processo piuttosto lungo a causa di molti comandi e file che devono essere spostati manualmente.

Con questo metodo, ogni volta che crei un nuovo server, dovrai farlo di nuovo. Per risparmiare tempo, puoi utilizzare sistemi di gestione della configurazione o sistemi di containerizzazione.

I sistemi di gestione della configurazione sono software che consentono di automatizzare la configurazione di server remoti (puppet, ansible, ecc.). Il vantaggio di questo approccio è che puoi configurare un server VPN remoto in un paio di comandi. E tutte le configurazioni, i modelli di configurazione sono esplicitamente posizionati in formato testo sulla macchina di controllo. Puoi creare tu stesso uno script di distribuzione o prenderne uno già pronto, ad esempio, su GitHub.

Un approccio leggermente diverso viene adottato nei sistemi di containerizzazione. Il più comune sistema di containerizzazione virtuale di questo tipo è Docker. L'installazione di un contenitore Docker con una VPN su un server remoto può essere persino più veloce dell'installazione di un server tramite ansible, il che è un vantaggio. Tuttavia, l'elenco delle configurazioni disponibili potrebbe essere limitato dagli sviluppatori di immagini. Le immagini sono file binari, quindi potrebbe non funzionare se è necessario correggere alcune configurazioni esotiche.

Architettura del server

Innanzitutto, come già accennato, la tecnologia VPN può essere utilizzata per connettersi, ad esempio, a una sottorete chiusa tramite un computer che fa parte di questa sottorete e, allo stesso tempo, un server VPN. Se hai risorse preziose sulla tua sottorete, non vorresti che nessuno si connettesse al server VPN. Per fare ciò, la maggior parte delle VPN di solito ne fa una macchina separata, non collegata a nessuna rete, forse in una cassaforte (non scherzo). E le richieste di firma e certificati firmati vengono trasferite su supporti rimovibili.

Avvio del server

Per eseguire lo script ansible, devi installare ansible sul tuo computer, noleggiare un server virtuale con Debian/Ubuntu e configurare l'accesso al server tramite SSH. Quando noleggi un server, tieni presente che alcuni servizi non ti consentono di creare un'interfaccia tun o di eseguire l'inoltro di pacchetti. Si prega di verificare prima dell'acquisto.

Tutta l'interazione con il server avviene tramite tre comandi:

1. Eseguire lo script per creare un server e un'autorità di certificazione.

2. Registrazione di un nuovo utente.

3. Revocare un certificato in base al nome del client.

Lo sviluppo di modi per aggirare i blocchi è per molti versi simile al rapporto tra predatori e prede in natura. Per ogni nuova mossa, c'è una contromossa. Le connessioni VPN non fanno eccezione.

Quando si utilizza una VPN, è possibile utilizzare una varietà di risorse di rete. Tuttavia, poiché tutti i dati ti arrivano attraverso il tunnel dal server VPN, per il provider sembra che tu stia scambiando dati con un solo indirizzo IP.