GNU/Linux >> Linux Esercitazione >  >> Panels >> OpenVPN

Configurazione di un server OpenVPN con CentOS e Viscosity

Le reti private virtuali (VPN) possono essere utilizzate per una serie di applicazioni molto utili. Puoi connetterti in modo sicuro a qualsiasi hotspot Wi-Fi pubblico. Puoi superare le restrizioni di blocco geografico sui tuoi siti Web preferiti. E puoi persino connetterti alla rete di casa o dell'ufficio da qualsiasi parte del mondo, come se fossi seduto alla tua scrivania. Questa guida ti guiderà attraverso il processo di configurazione del tuo server OpenVPN e di connessione ad esso con la tua copia di Viscosity.

L'esecuzione del tuo server OpenVPN ti consentirà di crittografare tutto ciò che fai su Internet, in modo da poter eseguire in sicurezza il tuo banking online sul WiFi gratuito nel tuo bar preferito. Tutto ciò che invii tramite la connessione VPN verrà crittografato dal tuo dispositivo fino a quando non raggiunge il tuo server OpenVPN a casa. Configurare il tuo server OpenVPN per accedere alla tua rete domestica o aziendale ti dà pieno accesso a tutti i tuoi file sulla tua rete.

Questa guida ti guiderà attraverso i passaggi necessari per configurare un server OpenVPN su un host CentOS che ti consente di accedere in modo sicuro alla tua rete domestica/dell'ufficio da una posizione remota e, facoltativamente, inviare tutto il traffico di rete attraverso di essa in modo da poter accedere a Internet anche in modo sicuro.

Preparazione

Per questa guida, assumiamo:

  • Hai già installato l'ultima versione di CentOS 7 . Fare riferimento alla nostra guida Red Hat per CentOS 8.
  • Hai root accedere a questa installazione
  • Conosci il nome delle tue interfacce di rete (istruzioni appena sotto)
  • Questa installazione di CentOS è una nuova installazione
  • Hai già una copia di Viscosity installata sul tuo dispositivo client

Se è necessario scaricare e installare una copia di CentOS, è possibile trovarne una copia su https://www.centos.org/download/. Non tratteremo i dettagli della configurazione di un'istanza CentOS, molte guide possono essere trovate online. Se stai eseguendo una versione diversa di CentOS, è molto probabile che molti o anche tutti i passaggi descritti in questa guida vengano comunque applicati. Se stai cercando di configurare un server OpenVPN su un sistema operativo diverso, consulta le nostre altre guide.

Se non hai una copia di Viscosity già installata sul tuo client, consulta questa guida all'installazione per l'installazione di Viscosity (Mac | Windows).

Per ottenere il nome della tua interfaccia di rete primaria (Accesso WAN), esegui quanto segue sul tuo server CentOS:
ip route | grep default | awk 'NR==1 {print $(NF-4)}'

Se si dispone di una seconda interfaccia di rete per l'accesso alle macchine sulla rete locale, sarà necessario anche il nome di questa durante l'impostazione del firewall e del routing.

Supporto

Sfortunatamente non possiamo fornire alcun supporto diretto per la configurazione del tuo server OpenVPN. Forniamo questa guida come cortesia per aiutarti a iniziare e ottenere il massimo dalla tua copia di Viscosity. Abbiamo testato a fondo i passaggi di questa guida per assicurarci che, se segui le istruzioni dettagliate di seguito, dovresti essere sulla buona strada per goderti i vantaggi dell'esecuzione del tuo server OpenVPN.

Per ulteriori informazioni o aiuto con CentOS, dai un'occhiata ai forum della community all'indirizzo https://www.centos.org/forums/

Accesso all'interfaccia a riga di comando

I passaggi descritti in questa guida vengono eseguiti tramite l'interfaccia della riga di comando (ovvero il terminale) sul server CentOS. Se stai eseguendo questo server in remoto, dovrai utilizzare l'applicazione SSH per connetterti in modo sicuro tra il tuo dispositivo client e il server (per "SSH in" il tuo server). Se stai configurando il tuo server OpenVPN su un server privato virtuale (VPS), potresti avere familiarità solo con l'interfaccia web. Molti fornitori di VPS forniscono l'accesso SSH oltre all'interfaccia web. Si prega di consultare il proprio provider VPS per i dettagli.

Se non conosci SSH, abbiamo alcune istruzioni nella nostra Guida introduttiva.

Desktop CentOS

Se disponi dell'accesso locale al tuo server CentOS, puoi eseguire i passaggi di questa guida direttamente, senza accedere al server tramite SSH. I passaggi devono essere eseguiti in una finestra di terminale, quindi il primo passaggio consiste nell'aprire una finestra di terminale in CentOS con accesso root. Dal desktop, apri l'app del terminale facendo clic sul menu a discesa "Applicazioni" in alto a sinistra e selezionando "Terminale" dai Preferiti elenco. Questo apre una finestra di terminale da cui possiamo continuare il resto della configurazione.

Ora che hai accesso al terminale sul server CentOS, devi cambiare l'utente in root. Digita nella finestra del terminale:

su root

quindi inserisci la tua password di root quando richiesto. Vedrai che ora sei connesso all'account root.

Per iniziare

Una volta effettuato l'accesso come root, dobbiamo assicurarci che l'elenco dei repository di CentOS sia aggiornato digitando quanto segue:

yum update -y

Questo eseguirà e aggiornerà i pacchetti preinstallati. Se vengono trovati aggiornamenti, ti verrà chiesto se desideri continuare. Conferma di farlo inserendo y . Potrebbe essere necessario riavviare al termine degli aggiornamenti del pacchetto. In tal caso, assicurati di accedere nuovamente al terminale come root dopo il riavvio.

Successivamente dovremo installare EPEL (Extra Packages for Enterprise Linux), poiché contiene il pacchetto OpenVPN.

yum install epel-release -y

Ora che abbiamo i pacchetti estesi, possiamo procedere e installare OpenVPN. Digita quanto segue nel terminale:

yum install openvpn -y

Generazione di configurazioni, certificati e chiavi

Il passaggio successivo consiste nel generare le configurazioni per il server e i client, nonché i certificati per utilizzarli. Puoi farlo facilmente seguendo la Guida alla creazione di certificati e chiavi. Puoi seguire la sezione per Linux utilizzando il programma di installazione di CentOS 7 RPM e copiare le configurazioni del client dal server (consigliamo questo), oppure generare tutto sul tuo PC o Mac e copiare il server cartella che viene generata sul tuo server CentOS.

Se utilizzi il server DNS predefinito (10.8.0.1), dovrai configurare tu stesso un server DNS, le istruzioni sono alla fine di questo articolo. Ti consigliamo invece di utilizzare un server DNS esistente, un server DNS disponibile pubblicamente come quello di Google (8.8.8.8 e 8.8.4.4) è il più semplice.

Dopo aver generato le tue configurazioni, dovrai trasferire la configurazione del server sul tuo server o trasferire le tue configurazioni client dal tuo server. Se hai accesso locale, un'unità USB è la più semplice. In caso contrario, abbiamo un aiuto su come trasferire file con SCP nella nostra Guida introduttiva.

Inoltro IP

Per inoltrare le nostre richieste passando attraverso la VPN, vogliamo che il server OpenVPN agisca come un router. Pertanto, dobbiamo abilitare l'inoltro IP.

  1. Nel terminale, possiamo abilitare l'inoltro IP sul server CentOS inserendo:
    echo 1 > /proc/sys/net/ipv4/ip_forward
  2. Per garantire che gli host sulla rete domestica/dell'ufficio possano trovare il server VPN, dobbiamo fare in modo che il server risponda a qualsiasi richiesta ARP:
    echo 1 > /proc/sys/net/ipv4/conf/ens33/proxy_arp
    dove ens33 è l'interfaccia di rete della rete domestica/dell'ufficio se si dispone di due interfacce di rete, o dell'interfaccia di rete primaria (WAN) in caso contrario (consultare la sezione Preparazione per ulteriori informazioni).
  3. Ogni volta che riavviamo il server, questi comandi verranno annullati. Per assicurarci che ciò non accada, dobbiamo modificare il file sysctl.conf:
    nano /etc/sysctl.conf
  4. Aggiungi le seguenti righe in fondo a questo file:
    net.ipv4.ip_forward = 1
    e
    net.ipv4.conf.ens33.proxy_arp = 1
  5. Premi ctrl + x per uscire da nano. Salva le modifiche quando richiesto.
  6. Per abilitare le modifiche apportate al file sysctl.conf, digitare:
    sysctl -p /etc/sysctl.conf

Server DNS

Se hai intenzione di crittografare tutto il traffico di rete attraverso il tuo server VPN, ti consigliamo di abilitare il tuo server DNS.

  1. Per installare il server DNS, digitare:
    yum install bind bind-utils bind-libs bind-chroot
  2. Per impostare le regole di inoltro per il nostro server DNS, modificheremo il file di configurazione:
    nano /etc/named.conf
  3. Nella parte superiore vedrai una raccolta rinforzata di istruzioni etichettate opzioni . Inserire le seguenti due righe in fondo all'elenco delle opzioni:
    forwarders {8.8.8.8;8.8.4.4;}; #IP of upstream nameservers
    forward only; #rely completely on our upstream nameservers
    dove stiamo utilizzando i server DNS di Google (sei libero di utilizzare il tuo servizio di risoluzione DNS preferito).
  4. Aggiungi la sottorete VPN (10.8.0.0/24) all'ascolto e interrogazione consentita parametri nella parte superiore delle opzioni in modo che ora assomiglino a:
    ...
    listen-on port 53 { 10.8.0.0/24;127.0.0.1; };
    ...
    allow-query {10.8.0.0/24;localhost; };
    ...
  5. Premi ctrl + x per uscire da nano. Salva le modifiche quando richiesto.
  6. Imposta i permessi del file conf su 644:
    chmod 644 /etc/named.conf

Poiché questo file conf è sensibile agli errori, possiamo verificarlo digitando:

named-checkconf /etc/named.conf

Se il file di configurazione non contiene errori, questo comando non restituirà nulla.

  1. Apri l'elenco dei server dei nomi:
    nano /etc/resolv.conf
  2. Imposta il risolutore del server in modo che punti a se stesso:
    nameserver 127.0.0.1
  3. Premi ctrl + x per uscire da nano. Salva le modifiche quando richiesto.
  4. Se il tuo server CentOS viene eseguito su un router con un servizio DHCP, devi assicurarti che il file resolv.conf non venga sovrascritto al rinnovo del leasing DHCP. Digita:
    nano /etc/sysconfig/network-scripts/ifcfg-ens33
    Sostituisci ens33 con il nome della tua interfaccia di rete primaria se è diversa (consulta la sezione Preparazione per maggiori informazioni)
  5. Assicurati che i seguenti tre parametri siano impostati:
    BOOTPROTO=dhcp
    PEERDNS=no
    TYPE=Ethernet
  6. Premi ctrl + x per uscire da nano. Salva le modifiche quando richiesto.
  7. Per avviare il server DNS, digita:
    systemctl start named
  8. Abilita l'avvio automatico del server DNS all'avvio del sistema:
    systemctl enable named

Ecco fatto, il server DNS è ora configurato.

Regole del firewall

Utilizzeremo il firewalld predefinito firewall installato di default su CentOS. Se stai installando OpenVPN su un server che ha già una propria configurazione del firewall, assicurati di aggiungere le regole per consentire il nostro traffico OpenVPN. Tuttavia, se questo è solo un semplice server CentOS autonomo, le impostazioni del firewall seguenti dovrebbero essere sufficienti per far funzionare il tuo server OpenVPN.

  1. Consenti openvpn servizio:
    firewall-cmd --permanent --add-service=openvpn
    firewall-cmd --add-service=openvpn
  2. Imposta il server OpenVPN per fornire masquerade:
    firewall-cmd --permanent --add-masquerade
    firewall-cmd --add-masquerade
  3. Consenti la porta OpenVPN (1194):
    firewall-cmd --permanent --add-port=1194/udp
  4. Riavvia il firewall con queste nuove impostazioni:
    firewall-cmd --reload

Avvio del server OpenVPN

A questo punto le basi sono complete. La configurazione e i file del tuo server dovrebbero essere copiati sul tuo server da dove li hai generati.

Per prima cosa, copia i file di configurazione del server nella directory OpenVPN:

sudo cp /path/to/configs/server/* /etc/openvpn/

Ora avvia il tuo server e abilita anche l'avvio dopo un riavvio.

systemctl -f enable [email protected]
systemctl start [email protected]

Per controllare lo stato del server, inserisci:

systemctl -l status [email protected]

A cui dovrebbe rispondere con lo stato e in verde dovresti vedere:

...
Active: active (running)
...

Il tuo server OpenVPN è ora attivo e funzionante e pronto per la tua connessione.

Configurazione del router

Se il tuo server CentOS è direttamente accessibile , quindi puoi saltare questa sezione . Non c'è nessun router da configurare.

Tuttavia, se il tuo server CentOS si trova dietro un router (come sul WiFi di casa), dovrai configurare il tuo router per consentire il traffico VPN. A causa dei diversi modelli di router e configurazioni di rete, non siamo in grado di fornire una guida passo passo su come configurare il router per consentire il traffico VPN. Tuttavia, è probabile che sia necessario modificare alcune impostazioni, quindi le descriveremo qui.

Poiché il router indirizzerà tutto il traffico da e verso il tuo server OpenVPN, dovrai configurare il port forwarding in modo che il server OpenVPN sia accessibile dall'esterno. Il port forwarding potrebbe trovarsi nella sezione dell'interfaccia di gestione del router denominata "Server virtuali". In generale, vorrai inoltrare tutto il traffico in entrata al router sulla porta OpenVPN (1194). Dovrai impostare una regola per inviare qualsiasi traffico UDP su queste porte all'indirizzo IP locale del tuo server OpenVPN (che è probabilmente qualcosa nell'intervallo 192.168.0.x).

Se hai impostato il port forwarding, prendi nota anche del tuo indirizzo IP WAN esterno . Questo è l'indirizzo IP assegnato al tuo router dal tuo Internet Service Provider (ISP). Questo indirizzo sarà necessario durante la configurazione della connessione in Viscosità di seguito.

L'altra impostazione principale del router che dovrai considerare è il routing statico. Poiché avrai una VPN configurata, verrà inviato traffico al tuo router con un IP di origine o di destinazione nell'intervallo 10.8.0.x. Questo traffico dovrà disporre di un routing statico in atto per garantire che quando un host riceve una richiesta dal client VPN (sulla sottorete 10.8.0.x) e invia una risposta a quell'indirizzo, il router sappia come convertire 10.8. 0.x indirizzo IP in un indirizzo che comprende (es. 192.168.0.x). Quindi dovrai impostare una regola di routing statica che abbia le seguenti proprietà:

Destination: 10.8.0.0
Subnet mask: 255.255.255.0
Default gateway: your-server-IP

dove IP-del-tuo-server è l'indirizzo IP del tuo server OpenVPN sulla rete locale (qualcosa nell'intervallo 192.168.0.x).

Impostazione della viscosità

Il passaggio finale è impostare la viscosità. Grazie a openvpn-generate, è facile come importare e connettere.

Importazione

Copia il file *.visz che hai creato con openvpn-generate sul tuo computer Mac o Windows con Viscosity installato e fai doppio clic sul file. Dovresti vedere un messaggio che informa che la configurazione è stata importata correttamente.

Connessione e utilizzo della connessione VPN

Ora sei pronto per connetterti. Fai clic sull'icona Viscosità nella barra dei menu di macOS o nella barra delle applicazioni di Windows per aprire il menu Viscosità, seleziona la connessione che hai importato e Viscosità si collegherà.

Per verificare che la VPN sia attiva e funzionante, puoi aprire la finestra Dettagli dal menu Viscosità. Ciò ti consentirà di visualizzare i dettagli della connessione, il traffico e il registro di OpenVPN.



Ecco fatto, hai impostato il tuo server OpenVPN personale. Congratulazioni, ora sei libero di godere dei vantaggi di gestire il tuo server OpenVPN!


OpenVPN
  1. Come installare server e client OpenVPN con Easy-RSA 3 su CentOS 7

  2. Come installare server e client OpenVPN con Easy-RSA 3 su CentOS 8

  3. Configurazione di un server e client NFS su CentOS 7.2

  4. Configurazione di un server di offuscamento con Obfsproxy e Viscosity

  5. Installa e configura OpenVPN Server su Fedora 29/CentOS 7

Configurazione di un server OpenVPN con Sophos XG e Viscosity

Configurazione di un server OpenVPN con Synology e Viscosity

Configurazione di un server OpenVPN con router Tomato e Viscosity

Configurazione di un server OpenVPN con Ubiquiti EdgeRouter (EdgeOS) e Viscosity

Configurazione di un server OpenVPN con Ubuntu e Viscosity

Configurazione di un server OpenVPN con VyOS e Viscosity