Ricerca nel sito web

Installa OpenVPN sul tuo PC Linux


Dopo aver configurato un server VPN, il passaggio successivo è l'installazione e la configurazione di OpenVPN.

OpenVPN crea un tunnel crittografato tra due punti, impedendo a terzi di accedere al tuo traffico di rete. Configurando il tuo server di rete privata virtuale (VPN), diventi il tuo provider VPN. Molti servizi VPN popolari utilizzano già OpenVPN, quindi perché collegare la tua connessione a un provider specifico quando puoi avere il controllo completo?

Il primo articolo di questa serie ha dimostrato come impostare e configurare un PC Linux affinché funga da server OpenVPN. Viene inoltre illustrato come configurare il router in modo da poter raggiungere il server VPN da una rete esterna.

Questo secondo articolo dimostra come installare il software del server OpenVPN utilizzando i passaggi personalizzati dal wiki di OpenVPN.

Installa OpenVPN

Innanzitutto, installa OpenVPN e l'applicazione easy-rsa (per aiutarti a configurare l'autenticazione sul tuo server) utilizzando il tuo gestore pacchetti. Questo esempio utilizza Fedora Linux; se hai scelto qualcosa di diverso, usa il comando appropriato per la tua distribuzione:

$ sudo dnf install openvpn easy-rsa

Questo crea alcune directory vuote:

    /etc/openvpn
    /etc/openvpn/client
    /etc/openvpn/server

Se questi non vengono creati durante l'installazione, crearli manualmente.

Configura l'autenticazione

OpenVPN dipende dagli script easy-rsa e dovrebbe averne una propria copia. Copia gli script e i file easy-rsa:

$ sudo mkdir /etc/openvpn/easy-rsa
$ sudo cp -rai /usr/share/easy-rsa/3/* \
/etc/openvpn/easy-rsa/

L'autenticazione è importante e OpenVPN la prende molto sul serio. La teoria è che se Alice ha bisogno di accedere a informazioni private all'interno dell'azienda di Bob, è fondamentale che Bob si assicuri che Alice sia davvero Alice. Allo stesso modo, Alice deve assicurarsi che Bob sia davvero Bob. Chiamiamo questa autenticazione reciproca.

La migliore pratica odierna controlla un attributo da due dei tre possibili fattori:

  • Qualcosa che hai
  • Qualcosa che conosci
  • Qualcosa che sei

Ci sono molte scelte. Questa configurazione OpenVPN utilizza:

  • Certificati: qualcosa che hanno sia il client che il server
  • Password del certificato: qualcosa che le persone conoscono

Alice e Bob hanno bisogno di aiuto per autenticarsi reciprocamente. Poiché entrambi si fidano di Cathy, Cathy assume un ruolo chiamato autorità di certificazione (CA). Cathy attesta che Alice e Bob sono entrambi chi affermano di essere. Poiché sia Alice che Bob si fidano di Cathy, ora si fidano anche l'uno dell'altro.

Ma cosa convince Cathy che Alice e Bob siano davvero Alice e Bob? La reputazione di Cathy nella comunità dipende da questo, e quindi se vuole che anche Danielle, Evan, Fiona, Greg e altri si fidino di lei, metterà rigorosamente alla prova le affermazioni di Alice e Bob. Dopo che Alice e Bob convincono Cathy che sono davvero Alice e Bob, Cathy firma i certificati da condividere tra loro e con il mondo.

Come fanno Alice e Bob a sapere che Cathy, e non qualcuno che la impersona, ha firmato i certificati? Usano una tecnologia chiamata crittografia a chiave pubblica:

  • Trova un algoritmo di crittografia che crittografa con una chiave e decrittografa con un'altra.
  • Dichiara una chiave privata e condividi l'altra chiave con il pubblico.
  • Cathy condivide con il mondo la sua chiave pubblica e una copia in chiaro della sua firma.
  • Cathy crittografa la sua firma con la sua chiave privata. Chiunque può decifrarlo con la sua chiave pubblica.
  • Se la firma decifrata di Cathy corrisponde alla copia in chiaro, Alice e Bob possono fidarsi che Cathy l'abbia davvero firmata.

Utilizzi questa stessa tecnologia ogni volta che acquisti beni e servizi online.

Implementare l'autenticazione

La documentazione di OpenVPN suggerisce di configurare una CA su un sistema separato o almeno una directory separata sul server OpenVPN. La documentazione suggerisce inoltre di generare certificati server e client dal server e dai client. Poiché si tratta di una configurazione semplice, è possibile utilizzare il server OpenVPN come propria CA e inserire i certificati e le chiavi nelle directory specificate sul server.

Genera certificati dal server e copiali su ciascun client come parte della configurazione del client.

Questa implementazione utilizza certificati autofirmati. Funziona perché il server si fida di se stesso e i client si fidano del server. Pertanto, il server è la migliore CA per firmare i certificati.

Dal server OpenVPN, configura la CA:

$ sudo mkdir /etc/openvpn/ca
$ cd /etc/openvpn/ca
$ sudo /etc/openvpn/easy-rsa/easyrsa init-pki
$ sudo /etc/openvpn/easy-rsa/easyrsa build-ca

Utilizza una passphrase facile da ricordare ma difficile da indovinare.

Configura la coppia di chiavi del server e la richiesta di certificato:

$ cd /etc/openvpn/server
$ sudo /etc/openvpn/easy-rsa/easyrsa init-pki
$ sudo /etc/openvpn/easy-rsa/easyrsa gen-req OVPNserver2020 nopass

In questo esempio, OVPNServer2020 è il nome host che hai assegnato al tuo server OpenVPN nel primo articolo di questa serie.

Genera e firma certificati

Ora devi inviare una richiesta del server alla CA e generare e firmare il certificato del server.

Questo passaggio essenzialmente copia il file di richiesta da /etc/openvpn/server/pki/reqs/OVPNserver2020.req a /etc/openvpn/ca/pki/reqs/OVPNserver2020.req per prepararlo alla revisione e alla firma:

$ cd /etc/openvpn/ca
$ sudo /etc/openvpn/easy-rsa/easyrsa \
import-req /etc/openvpn/server/pki/reqs/OVPNserver2020.req OVPNserver2020

Esamina e firma la richiesta

Hai generato una richiesta, quindi ora devi rivedere e firmare i certificati:

$ cd /etc/openvpn/ca
$ sudo /etc/openvpn/easy-rsa/easyrsa \
show-req OVPNserver2020

Accedi come server:

$ cd /etc/openvpn/ca
$ sudo /etc/openvpn/easy-rsa/easyrsa \
sign-req server OVPNserver2020

Inserisci una copia del server e dei certificati CA a cui appartengono affinché il file di configurazione possa raccoglierli:

$ sudo cp /etc/openvpn/ca/pki/issued/OVPNserver2020.crt \
/etc/openvpn/server/pki/
$ sudo cp /etc/openvpn/ca/pki/ca.crt \
/etc/openvpn/server/pki/

Successivamente, genera i parametri Diffie-Hellman in modo che i client e il server possano scambiarsi le chiavi di sessione:

$ cd /etc/openvpn/server
$ sudo /etc/openvpn/easy-rsa/easyrsa gen-dh

Quasi lì

Il prossimo articolo di questa serie mostrerà come configurare e avviare il server OpenVPN che hai appena creato.

Questo articolo è basato sul blog di D. Greg Scott ed è riutilizzato previa autorizzazione.

Articoli correlati: