Sei preoccupato/a di come puoi accedere liberamente a Internet senza molte restrizioni e preoccupazioni per la sicurezza dei dati? Non preoccuparti più! Inizia a ospitare il tuo server VPN utilizzando OpenVPN in Docker.
Con le tecnologie Docker e OpenVPN, puoi configurare e avviare il tuo server VPN in poco tempo. E in questo tutorial, imparerai i fondamenti di base per eseguire un server OpenVPN ospitato in un container Docker.
Resta sintonizzato/a e mantieni sicuro il tuo server VPN con OpenVPN Docker!
Prerequisiti
Questo tutorial sarà una dimostrazione pratica. Se segui passo dopo passo, avrai bisogno dei seguenti:
- A Linux-based operating system (OS) – This tutorial uses Ubuntu v22.04, but other Linux distributions will work.
- Docker installato e in esecuzione – Questo tutorial utilizza Docker v20.10.17.
- Un dispositivo Android con l’app OpenVPN Connect installata – Questo tutorial utilizza Android v11 e OpenVPN Connect v3.2.7.
Creazione di un container Docker per OpenVPN
Containerizzare è come impacchettare il codice e tutte le sue dipendenze come un’unità software standard per eseguire rapidamente e in modo affidabile la tua applicazione. Ci sono diversi modi per creare un container Docker OpenVPN. Puoi costruire il container da zero o estrarre un container già pronto dall’Docker Hub.
Ma in questo tutorial, userai un file immagine Docker OpenVPN esistente. I container pronti offrono diversi vantaggi, in quanto sono attentamente testati contro varie vulnerabilità con il supporto di una vasta community di sviluppatori. Inoltre, questi container ti aiutano a risparmiare tempo ed eliminare la necessità di reinventare la ruota.
Per creare un container Docker OpenVPN:
1. Apri il tuo terminale e esegui il comando OVPN_DATA sottostante, che non fornisce output ma imposta un nome del volume dati su ovpn-data-test nella variabile OVPN_DATA.
2. Successivamente, esegui il seguente comando docker volume create per creare un volume dati con il nome impostato nella variabile $OVPN_DATA.
Questo comando non fornisce output ma crea un container di volume dati per OpenVPN dove sono memorizzati tutti i dati, i file di configurazione e i certificati.
3. Infine, esegui il seguente docker run comando per scaricare e installare l’immagine Docker OpenVPN con quanto segue:
- Specifica lo spazio di archiviazione (
-v
) all’interno del container che è separato dal resto del file system del container. In questo caso, l’immagine Docker di OpenVPN è memorizzata nella directory/etc/openvpn
.
- Specifica il meccanismo di registrazione (
--log-driver
) che mantiene le informazioni sui container in esecuzione e sui servizi (none
).
- Istruisce Docker a rimuovere automaticamente (–rm) il container quando esiste già.
Assicurati di sostituire (YourPublicIP.com) con l’IP pubblico o il nome di dominio (host) del tuo server (se ne possiedi uno) tramite il protocollo UDP. Ma nota che puoi anche utilizzare il protocollo TCP.
Il TCP è un protocollo orientato alla connessione, mentre l’UDP è un protocollo senza connessione

N.B. Se prevedi di utilizzare l’auto-hosting o l’IP pubblico, devi eseguire il forwarding delle porte sul tuo router/modem.
Proteggere il client OpenVPN con certificati
Hai installato con successo il client Docker di OpenVPN sulla tua macchina, quindi yay! Ma prima di utilizzare OpenVPN, devi configurare prima la configurazione del client OpenVPN.
Il fatto di lavorare su OpenVPN non significa che devi aprire il tuo server VPN al mondo. Avrai bisogno di certificati per proteggere il tuo client OpenVPN:
1. Esegui il comando docker run di seguito per generare e recuperare i certificati CA e del client. Questo comando crea container OpenVPN in esecuzione (–it) dall’immagine specificata all’interno del contenitore principale.
Nella maggior parte dei casi, la generazione dei certificati del server CA richiede del tempo, a seconda delle risorse della macchina che stai utilizzando.
Digita sì e premi Invio, come mostrato di seguito, per avviare il sistema OpenVPN PKI.

2. Successivamente, fornisci e conferma una nuova password per il certificato CA e premi Invio. Nota la password in un luogo sicuro in quanto ne avrai bisogno successivamente durante la configurazione e la generazione di un certificato del client.

3. Imposta un nome unico per il tuo certificato CA e premi Invio.

4. Ora, inserisci la passphrase del CA che hai impostato al passo due per verificare che la richiesta corrisponda alla firma.

5. Inserisci nuovamente la tua passphrase per generare una chiave privata.

6. Successivamente, esegui il comando di seguito per avviare il servizio del server OpenVPN su Docker per configurare un client OpenVPN, dove:
- L’opzione -p imposta la porta (1194) che ascolta e avvia la connessione tra il server e il client.
Puoi cambiare la porta 1194 per adattarla alle tue preferenze se non ti senti a tuo agio nell’utilizzare la porta predefinita di OpenVPN.
- L’argomento –cap-add=NET_ADMIN applica le capacità aggiuntive di Linux modificando le interfacce di rete che Docker non concede di default.

7. Una volta impostata la porta, esegui il comando docker run
di seguito per eseguire le seguenti operazioni:
- Generare il certificato del cliente e scaricare il file di configurazione del cliente (.ovpn) dal container Docker al server host. Il certificato generato è senza password, come specificato nell’argomento no-pass nel comando.
- Imposta il nome del file del certificato OpenVPN e dell’identificazione del cliente su CLIENTAPP. Il certificato viene archiviato nella directory dell’utente dell’host, non nel container Docker.
Inserisci la tua passphrase, come mostrato di seguito, per completare la generazione del certificato.

8. Successivamente, esegui il comando di seguito per generare e scaricare il file di configurazione della connessione OpenVPN (ovpn_getclient) dal container al server host.
9. Passa alla directory user/home nel tuo server host (macchina Linux) e trasferisci il file .ovpn (CLIENTAPP.ovpn) sul tuo dispositivo Android.
10. Infine, avvia l’app client OpenVPN Connect sul tuo dispositivo Android.
Tocca su BROWSE nella scheda FILE e seleziona il file .ovpn (CLIENTAPP.ovpn) che hai trasferito sul tuo dispositivo Android. In questo modo viene aggiunto un nuovo profilo al client OpenVPN Connect.

Alla connessione riuscita, vedrai il risultato qui sotto.

Accesso all’interfaccia utente web di OpenVPN
Sei preoccupato per il numero di comandi che hai dovuto eseguire per accedere al tuo server VPN? Perché non provare un’interfaccia utente web semplice?
OpenVPN offre un insieme di strumenti di installazione e configurazione basati sul web che consentono un rapido dispiegamento di soluzioni di accesso remoto VPN. Il kit degli strumenti è fornito in un unico pacchetto chiamato OpenVPN access server.
Per accedere all’interfaccia web di OpenVPN, è necessario installare il pacchetto:
1. Esegui il seguente comando docker pull per scaricare e installare l’ultima versione del container Docker OpenVPN (openvpn-as) dal Linux Server Docker Hub (linuxserver).

2. Una volta scaricato, esegui il comando docker create qui sotto per creare un nuovo container Docker chiamato openvpn-as con le seguenti caratteristiche:
-v /home/docker/openvpn-as/config: /config
– Imposta la directory per memorizzare i file di configurazione.
--restart=always
– Garantisce che il container parta sempre all’avvio del sistema. Puoi scegliere di non aggiungere questo argomento se non desideri che il container si riavvii.
-e PGID=1001 -e PUID=1001
– Imposta l’ID utente per eliminare problemi di autorizzazioni tra il server host e il container.
-e TZ=Africa/Nairobi
– Specifica le informazioni sul fuso orario.
- –net=host –privileged – Indica come OpenVPN Access Server viene eseguito nel container.

3. Successivamente, esegui il seguente comando docker start per accedere all’interfaccia web di OpenVPN tramite il contenitore Docker di OpenVPN Access Server creato nel secondo passaggio.

4. Infine, apri il tuo browser web preferito e vai all’interfaccia web di OpenVPN con il tuo indirizzo IP locale (ad esempio, https://IlTuoIP:943/admin). Sostituisci IlTuoIP con l’effettivo indirizzo IP del tuo server.
Sarai accolto con la pagina di accesso di OpenVPN Access Server se tutto va per il verso giusto, come mostrato di seguito.
Inserisci admin e password per Nome utente e Password, e clicca su Accedi per accedere al pannello di controllo di OpenVPN Access Server.
Nota che il nome utente e la password predefiniti sono rispettivamente admin e password. Puoi cambiare le credenziali secondo le tue preferenze.

Dopo aver effettuato l’accesso, vedrai il pannello di controllo di OpenVPN Access Server di seguito.

Configurazione del DNS per una connessione più veloce e sicura
A questo punto, il tuo server OpenVPN Access è configurato correttamente. Tuttavia, per migliorare le prestazioni del tuo server VPN, è necessario configurare il DNS.
Per configurare il DNS, devi accedere all’interfaccia web del server OpenVPN e aggiornare le impostazioni DNS con Google o i tuoi indirizzi DNS preferiti. Google offre i server DNS più veloci disponibili, che utilizzerai nel tuo server OpenVPN Access.
1. Clicca su Impostazioni VPN (pannello sinistro) sotto la scheda CONFIGURAZIONE nel pannello di controllo del tuo server OpenVPN Access.
Scorri verso il basso fino alla sezione Impostazioni DNS e abilita l’opzione “Fai utilizzare ai client server DNS specifici”, come mostrato di seguito.

2. Successivamente, aggiorna i server DNS primario (8.8.8.8) e secondario (8.8.8.4) con gli indirizzi DNS di Google come indicato di seguito, e clicca su Salva impostazioni per salvare le modifiche.

3. Dopo aver salvato le modifiche, clicca su Aggiorna server in esecuzione per riavviare il server e rendere effettive le modifiche.

4. Ora, vai all’OpenVPN Access Server (ad esempio, https://IlTuoIP:943/admin) sul tuo computer Linux. Sostituisci IlTuoIP con l’indirizzo IP del tuo server. Se la configurazione è corretta, vedrai la stessa pagina qui sotto.
Accedi con le credenziali predefinite (admin e password) per nome utente e password.

5. Clicca su una delle icone della piattaforma per scaricare l’applicazione client e clicca su “Yourself” (profilo bloccato dall’utente) per scaricare il file del client .ovpn.

6. Infine, avvia l’OpenVPN Client scaricato ed importa il file .ovpn come hai fatto nell’ultima fase di “Sicurezza del client OpenVPN con certificati”, come mostrato di seguito.

Conclusione
Hostare il tuo server VPN non dovrebbe mai essere un compito complesso, figuriamoci sicurare la connessione al tuo server. Per fortuna, OpenVPN Docker è proprio dietro l’angolo per salvare la situazione. E in questo tutorial, hai imparato a installare, configurare e impostare OpenVPN usando Docker in Ubuntu. Hai anche affrontato la sicurezza dell’accesso a OpenVPN in un contenitore Docker con OpenVPN CA e certificati del client.
Oltre ad accedere al tuo server OpenVPN tramite interfaccia a riga di comando, ora hai un modo visuale per farlo attraverso l’interfaccia web di OpenVPN Access Server. Hai realizzato una rapida implementazione di VPN generando file di configurazione client per le app client OpenVPN.
Perché non costruire su questa nuova conoscenza creando servizi di tunnel VPN per le tue applicazioni utilizzando WireGuard VPN? Esplora il mondo delle possibilità illimitate utilizzando servizi VPN auto-ospitati!