Una "rete privata virtuale" VPN è una rete privata che nasconde l'identità dell'utente, l'origine e i dati utilizzando la crittografia. Il suo utilizzo principale è la privacy dei dati dell'utente e la connessione sicura a Internet. Poiché nasconde i dati, ti consente di accedere a dati che di solito sono bloccati dalle restrizioni geografiche.
OpenVPN è un software VPN open source che è sia un software che un protocollo in sé. È molto apprezzato poiché continua a bypassare i firewall.
Questo tutorial ti mostrerà passo dopo passo come installare e configurare un server OpenVPN e collegarlo al client OpenVPN. Utilizzeremo un server CentOS 8 per l'installazione, la stessa procedura funzionerà anche su Rocky Linux 8 e AlmaLinux 8.
Prerequisiti
Accesso al terminale
Un account utente con privilegi sudo.
Nota: I comandi in questo tutorial vengono eseguiti su CentOS 8. Tutti i metodi nel tutorial sono validi anche per CentOS 7.
Aggiorna e aggiorna il sistema
Assicurati che il tuo sistema sia aggiornato aggiornando e aggiornando il tuo sistema eseguendo il comando seguente.
sudo dnf update && sudo dnf upgrade
Disabilita SELinux
Successivamente, è necessario disabilitare SELinux poiché è in conflitto con OpenVPN e ne impedisce l'avvio.
Per disabilitare SELinux, apri il file di configurazione di SELinux usando il comando seguente.
sudo nano /etc/selinux/config
Una volta aperto il file con l'editor nano. Cerca SELinux e cambia il suo valore in disabilitato o semplicemente sostituiscilo con la seguente riga di codice.
SELINUX=disabled
Premi Ctrl+O e poi Ctrl+X per salvare e uscire dal file.
Abilita l'inoltro IP
Ora devi abilitare l'inoltro IP in modo che i pacchetti in arrivo possano essere inoltrati a reti diverse.
Per abilitare l'inoltro IP, apri il file di configurazione sysctl con l'editor nano.
sudo nano /etc/sysctl.conf
Aggiungi il seguente codice al file.
net.ipv4.ip_forward = 1
Premi Ctrl+O e poi Ctrl+X.
Installa il server OpenVPN
Assicurati di installare il pacchetto epel-release.
sudo dnf install epel-release -y
Ora puoi installare OpenVPN usando il seguente comando.
sudo dnf install openvpn -y
Ora che OpenVPN è installato. Vai alla sua cartella di installazione e scarica easy-rsa. Easy-RSA crea e gestisce le autorità di certificazione (CA).
cd /etc/openvpn
sudo wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.6/EasyRSA-unix-v3.0.6.tgz
Estrai il file zip scaricato.
sudo tar -xvzf EasyRSA-unix-v3.0.6.tgz
E sposta il file EasyRSA nella sua cartella.
sudo mv EasyRSA-v3.0.6 easy-rsa
Configura Easy-RSA
Successivamente, dobbiamo aggiungere e creare un certificato SSL. Per farlo, per prima cosa, vai alla directory easy-rsa.
cd /etc/openvpn/easy-rsa
Per aprire il file vars nell'editor nano, esegui il comando seguente.
sudo nano vars
Ora copia e incolla le seguenti righe di codice nel file vars.
set_var EASYRSA "$PWD" set_var EASYRSA_PKI "$EASYRSA/pki" set_var EASYRSA_DN "cn_only" set_var EASYRSA_REQ_COUNTRY "USA" set_var EASYRSA_REQ_PROVINCE "Newyork" set_var EASYRSA_REQ_CITY "Newyork" set_var EASYRSA_REQ_ORG "osradar CERTIFICATE AUTHORITY" set_var EASYRSA_REQ_EMAIL "" set_var EASYRSA_REQ_OU "osradar EASY CA" set_var EASYRSA_KEY_SIZE 2048 set_var EASYRSA_ALGO rsa set_var EASYRSA_CA_EXPIRE 7500 set_var EASYRSA_CERT_EXPIRE 365 set_var EASYRSA_NS_SUPPORT "no" set_var EASYRSA_NS_COMMENT "osradar CERTIFICATE AUTHORITY" set_var EASYRSA_EXT_DIR "$EASYRSA/x509-types" set_var EASYRSA_SSL_CONF "$EASYRSA/openssl-easyrsa.cnf" set_var EASYRSA_DIGEST "sha256"
Puoi modificare il valore di Paese, città, provincia ed email in base alle tue esigenze.
Premi Ctrl+O e poi Ctrl+X.
Ora avvia la directory PKI con il seguente comando.
./easyrsa init-pki
Infine, puoi creare il tuo certificato CA.
sudo ./easyrsa build-ca
Genera file di certificato del server
Utilizza il comando seguente per ottenere la coppia di chiavi e la richiesta di certificato.
sudo ./easyrsa gen-req vitux-server nopass
Firma la chiave del server con CA
Per firmare la chiave del server con la CA, esegui il comando seguente.
sudo ./easyrsa sign-req server vitux-server
Abbiamo bisogno della chiave Diffie-Hellman per lo scambio di chiavi. Genera la chiave eseguendo il comando seguente.
sudo ./easyrsa gen-dh
Quindi, copia tutti questi file in /etc/openvpn/server/ directory.
cp pki/ca.crt /etc/openvpn/server/ cp pki/dh.pem /etc/openvpn/server/ cp pki/private/vitux-server.key /etc/openvpn/server/ cp pki/issued/vitux-server.crt /etc/openvpn/server/
Genera chiave client e certificato
Puoi ottenere la chiave client eseguendo il comando seguente.
sudo ./easyrsa gen-req client nopass
Quindi firma la tua chiave client con il certificato CA generato.
sudo ./easyrsa sign-req client client
Copia questi file in /etc/openvpn/client/ directory
cp pki/ca.crt /etc/openvpn/client/ cp pki/issued/client.crt /etc/openvpn/client/ cp pki/private/client.key /etc/openvpn/client/
Configura il server OpenVPN
Crea e apri un nuovo file di configurazione nella directory del client con il seguente comando.
sudo nano /etc/openvpn/server/server.conf
Quindi aggiungi le seguenti righe di codice nel file.
port 1194 proto udp dev tun ca /etc/openvpn/server/ca.crt cert /etc/openvpn/server/vitux-server.crt key /etc/openvpn/server/vitux-server.key dh /etc/openvpn/server/dh.pem server 10.8.0.0 255.255.255.0 push "redirect-gateway def1" push "dhcp-option DNS 208.67.222.222" push "dhcp-option DNS 208.67.220.220" duplicate-cn cipher AES-256-CBC tls-version-min 1.2 tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256 auth SHA512 auth-nocache keepalive 20 60 persist-key persist-tun compress lz4 daemon user nobody group nobody log-append /var/log/openvpn.log verb 3
Premi Ctrl+O e Ctrl+X.
Avvia e abilita il servizio OpenVPN
La tua OpenVPN è pronta per essere avviata. Avvia e abilita il server utilizzando i seguenti comandi.
sudo systemctl start [email protected] sudo systemctl enable [email protected]
Puoi vedere e verificare lo stato attivo con il seguente comando.
systemctl status [email protected]
Una nuova interfaccia di rete verrà creata all'avvio riuscito del server OpenVPN. Esegui il comando seguente per vedere i dettagli.
ifconfig
Genera il file di configurazione del client
Il passaggio successivo consiste nel connettere il client al server OpenVPN. Abbiamo bisogno del file di configurazione del client per quello. Per generare il file di configurazione del client, eseguire il comando seguente.
sudo nano /etc/openvpn/client/client.ovpn
Ora copia e incolla il codice seguente nel file.
client dev tun proto udp remote vpn-server-ip 1194 ca ca.crt cert client.crt key client.key cipher AES-256-CBC auth SHA512 auth-nocache tls-version-min 1.2 tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256 resolv-retry infinite compress lz4 nobind persist-key persist-tun mute-replay-warnings verb 3
Premi Ctrl+O per salvare le modifiche e premi Ctrl+X per uscire dall'editor.
Configura percorso
Imposta le impostazioni del servizio OpenVPN con i seguenti comandi per consentirlo attraverso il firewall.
firewall-cmd --permanent --add-service=openvpn firewall-cmd --permanent --zone=trusted --add-service=openvpn firewall-cmd --permanent --zone=trusted --add-interface=tun0
firewall-cmd --add-masquerade firewall-cmd --permanent --add-masquerade
Imposta il routing per inoltrare il traffico in entrata dalla VPN alla rete locale.
routecnf=$(ip route get 8.8.8.8 | awk 'NR==1 {print $(NF-2)}') firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o $routecnf -j MASQUERADE
Ricarica per rendere effettive le modifiche.
firewall-cmd --reload
Installa e utilizza OpenVPN nel computer client
Devi installare epel-release e OpenVPN come hai fatto sul lato server.
dnf install epel-release -y dnf install openvpn -y
Ora copia i file di configurazione del client dal server usando il comando riportato di seguito.
sudo scp -r [email protected]:/etc/openvpn/client .
Vai alla directory del client e connettiti al server OpenVPN utilizzando i seguenti comandi.
cd client openvpn --config client.ovpn
Esegui ifconfig per vedere l'indirizzo IP assegnato.
ifconfig tun0