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

Configurazione di un server OpenVPN con Red Hat Linux 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 Red Hat Linux 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 anche Internet in modo sicuro.

Preparazione

Per questa guida, assumiamo:

  • Hai già installato l'ultima versione di Red Hat Enterprise Linux (8.4 al momento della scrittura)
  • Hai root accedere a questa installazione
  • Conosci il nome delle tue interfacce di rete (istruzioni appena sotto)
  • Questa installazione di Red Hat è una nuova installazione
  • Hai già una copia di Viscosity installata sul tuo dispositivo client

Se è necessario scaricare e installare una copia di Red Hat, è possibile trovare una copia di valutazione all'indirizzo https://access.redhat.com/products/re.../evaluation. Non tratteremo i dettagli della configurazione di un'istanza Red Hat, molte guide possono essere trovate online. Se stai eseguendo una versione diversa di Red Hat, è 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 RHEL:
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 RHEL, il supporto è offerto all'indirizzo https://www.redhat.com/en/services/support

Innumerevoli comunità e forum RHEL sono inoltre facilmente ricercabili su Internet.

Accesso all'interfaccia a riga di comando

I passaggi descritti in questa guida vengono eseguiti tramite l'interfaccia della riga di comando (ad esempio il terminale) sul server RHEL. 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.

Per iniziare

Una volta effettuato l'accesso come root, dobbiamo assicurarci che il repository di Red Hat sia aggiornato digitando quanto segue:

yum update

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. Per RHEL 8 eseguire quanto segue:

yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
ARCH=$( /bin/arch )
subscription-manager repos --enable "codeready-builder-for-rhel-8-${ARCH}-rpms"

Per altre versioni di RHEL, segui le istruzioni EPEL qui .

Prossima installazione di OpenVPN:

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 RHEL 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 RHEL.

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 Red Hat 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 del proprio
  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

Regole del firewall

Useremo il firewalld firewall installato di default su Red Hat. 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 Red Hat 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. Consenti la porta DNS (53):
    firewall-cmd --permanent --add-port=53/udp
  5. 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.

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!

Server DNS di base

Se stai scegliendo di eseguire il tuo server DNS per i client, di seguito è riportato un esempio di configurazione per un server DNS vincolato.

  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 server Red Hat viene eseguito su un router con un servizio DHCP, è necessario assicurarsi che il file resolv.conf non venga sovrascritto al rinnovo del leasing DHCP. Digita:
    nano /etc/sysconfig/network-scripts/ifcfg-ens32
    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.


OpenVPN
  1. Come aggiungere repository a Red Hat Linux con e senza proxy

  2. Un modo più semplice per installare e configurare il server OpenVPN in Linux

  3. Registra Red Hat Enterprise Linux e allega un abbonamento ad Ansible

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

  5. Configurazione di un server OpenVPN con CentOS 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

Configurazione di un server NFS con Turnkey Linux