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

Configurazione di un server OpenVPN con Ubiquiti EdgeRouter (EdgeOS) 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 Ubiquiti EdgeRouter (EdgeOS) che ti consente di accedere in modo sicuro alla tua rete di casa/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. Questa guida è stata scritta utilizzando un Ubiquiti EdgeRouter Lite, ma dovrebbe funzionare con qualsiasi dispositivo Ubiquiti con EdgeOS v1.9 o successivo.

Questa guida non tratterà alcun problema relativo alla configurazione del router. È probabile che un router che esegue EdgeOS agisca come un router stesso, quindi supponiamo che Ubiquiti EdgeRouter sia connesso direttamente a Internet con il proprio indirizzo IP.

Preparazione

Per questa guida, assumiamo:

  • Hai un Ubiquiti EdgeRouter già funzionante che esegue EdgeOS (noto anche come "Software EdgeMax") v1.9 o successivo.
  • Il tuo router è stato configurato con almeno un'interfaccia WAN e un'interfaccia LAN
  • Sei connesso al tuo Ubiquiti EdgeRouter tramite una connessione LAN.
  • È stata eseguita solo la procedura guidata di configurazione iniziale per configurare il router con un'interfaccia WAN e LAN.
  • Hai già una copia di Viscosity installata sul tuo dispositivo client

Ulteriori informazioni sui prodotti Ubiquiti EdgeRouter e EdgeOS sono disponibili all'indirizzo https://www.ubnt.com/broadband/#edgemax. Gli aggiornamenti del prodotto per il tuo router sono disponibili all'indirizzo https://www.ubnt.com/download/. 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).

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 il tuo Edgerouter, dai un'occhiata ai forum della community all'indirizzo https://community.ubnt.com/t5/EdgeRou.../EdgeMAX

Per iniziare

Assumiamo che tu abbia già configurato le tue interfacce di rete come tali:

  • 'Internet' - eth0 o pppoe0 connesso a Internet
  • 'Locale' - eth1 connesso alla tua rete domestica locale

Generazione di 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. Genera tutto sul tuo PC o Mac e poi prendi nota del percorso del tuo server cartella creata, utilizzeremo i file qui in seguito.

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.

Ora dobbiamo copiare i seguenti file in /config/auth/ directory sul tuo Edgerouter che sarà nel server cartella che openvpn-generate appena creata, si consiglia di utilizzare SCP. Se non hai dimestichezza con SCP, abbiamo un aiuto su come trasferire file con SCP nella nostra Guida introduttiva.

  • ca.crt
  • server.crt
  • chiave.server
  • dh.pem

Se stai usando SCP dalla riga di comando, sarebbe un comando di esempio
scp path/to/server/ca.crt [email protected]:/config/auth/

Configurazione del server OpenVPN

Al momento della scrittura, EdgeOS non include un'interfaccia GUI per la configurazione di un server OpenVPN come fa per altri protocolli VPN. Fortunatamente, però, sul router sono disponibili tutti gli strumenti per poter configurare facilmente un server OpenVPN tramite riga di comando.

Puoi accedere all'interfaccia della riga di comando del tuo router in diversi modi. Ai fini di questa guida utilizzeremo l'interfaccia a riga di comando inclusa nel portale web. Per accedervi, apri una pagina Web e vai all'indirizzo IP del tuo dispositivo EdgeRouter (https://192.168.1.1 per impostazione predefinita). Accedi, quindi fai clic sul pulsante CLI nell'angolo in alto a destra di questa pagina. Questo aprirà una finestra CLI con sfondo nero nel tuo browser. Puoi accedere a questo utilizzando gli stessi dettagli che hai utilizzato per accedere alla pagina Web di EdgeOS.

Per gli utenti più avanzati, questa guida può essere seguita anche accedendo al dispositivo tramite Console o SSH.


Ci sono diverse impostazioni che dobbiamo personalizzare nella configurazione del nostro server OpenVPN. Nel terminale, accedi alla modalità di configurazione digitando:

configure

Dovresti vedere la richiesta di modifica da $ a # . Se commetti un errore inserendo i seguenti comandi di configurazione, puoi rimuovere un comando inserito in precedenza ripetendolo, ma sostituendo la parola 'set' all'inizio con la parola 'cancella'.

Incolla quanto segue nella finestra del terminale:

# Configure this OpenVPN instance to run as the VPN server
set interfaces openvpn vtun0 mode server

# The OpenVPN server needs to know the location of the Diffie Hellman file
#NOTE: Depending on how you generated your keys, this file name might be 'dh.pem' instead
set interfaces openvpn vtun0 tls dh-file '/config/auth/dh.pem'

# Our VPN connection will be transported over UDP
set interfaces openvpn vtun0 openvpn-option "--proto udp"

# The server needs to keep a record of client virtual IP addresses so that they
# can be reassigned if the server goes down
set interfaces openvpn vtun0 openvpn-option "--ifconfig-pool-persist ipp.txt"

# To ensure that each side of the VPN knows if the connection has been severed,
# we want to ping each side every 10 seconds. If either side fails to recieve a
# ping within 2 minutes, then it will assume the other side is down
set interfaces openvpn vtun0 openvpn-option "--keepalive 10 120"

# There can be security issues if you run the OpenVPN server as root, so we will
# downgrade the user and group
set interfaces openvpn vtun0 openvpn-option "--user nobody --group nogroup"

# To avoid attempting to access resources that may no longer be accessible on
# restart
set interfaces openvpn vtun0 openvpn-option "--persist-key --persist-tun"

# To write (and rewrite) a short summary of current VPN connections every minute
# to a file
set interfaces openvpn vtun0 openvpn-option "--status openvpn-status.log"

# The verbosity of this connection logging (displayed in the Viscosity 'Details'
#  window) can range from 0 (silent) to 9 extremely verbose. We will use the 
# default of 3
set interfaces openvpn vtun0 openvpn-option "--verb 3"

# To prevent more than 10 duplicates of the same log message in a row from
# flooding the Viscosity log
set interfaces openvpn vtun0 openvpn-option "--mute 10"

# The credential files
set interfaces openvpn vtun0 tls ca-cert-file '/config/auth/ca.crt'
set interfaces openvpn vtun0 tls cert-file '/config/auth/server.crt'
set interfaces openvpn vtun0 tls key-file '/config/auth/server.key'

# The server will use the default OpenVPN port (1194)
set interfaces openvpn vtun0 openvpn-option "--port 1194"

# We need the VPN to create a tun network interface through which we can 
# route all our traffic:
set interfaces openvpn vtun0 openvpn-option "--dev vtun0"

# The VPN requires a private IP subnet. We will use the default OpenVPN IP
# subnet
set interfaces openvpn vtun0 server subnet '10.8.0.0/24'

# We want VPN clients connected to this server to be able to access any hosts
# accessible on your home network. We are assuming that your local network
# subnet is 192.168.0.x/24. If it is something else, you will need to change the
# IP address in the command below.
set interfaces openvpn vtun0 server push-route 192.168.0.0/24

#Set the OpenVPN server to push a DNS server to clients. This can be your local DNS
#which we setup later, an external DNS of your choice, or you can omit this command
#to setup DNS on the client only.
set interfaces openvpn vtun0 server name-server 192.168.1.1

# For enhanced security, set a cipher and auth hash
set interfaces openvpn vtun0 openvpn-option "--cipher AES-256-CBC"
set interfaces openvpn vtun0 openvpn-option "--auth SHA256"

# Lastly, we want to allow hosts on the home network to be able to see VPN
# clients connected to the OpenVPN server
set interfaces openvpn vtun0 openvpn-option "--client-to-client"

#Save and end the configuration
commit
save
exit

Prestare particolare attenzione all'indirizzo IP nel set interfaces openvpn vtun0 server push-route 192.168.0.0/24 . Assicurati che questa sottorete corrisponda alla tua sottorete IP LAN di casa/ufficio. Se non stai configurando questo server VPN per accedere alla tua LAN di casa/ufficio, puoi saltare del tutto questa riga.

Ora abbiamo finito con la riga di comando, tutto il resto può essere fatto dalla GUI di EdgeOS tramite un browser web. Quindi, accedi al tuo percorso tramite il tuo browser preferito e dovresti vedere la nuova interfaccia OpenVPN sulla Dashboard.


Regole del firewall

Se stai utilizzando la configurazione predefinita del firewall, dobbiamo solo configurare un paio di cose. Innanzitutto, dobbiamo abilitare la mascheratura NAT per l'interfaccia VPN. Per fare ciò, apri un browser web, naviga e accedi al tuo dispositivo EdgeRouter. Quindi, fai clic su Firewall/NAT scheda nella parte superiore della finestra, quindi seleziona il NAT scheda che appare sotto. Fai clic su Aggiungi regola Nat origine e configurare le seguenti opzioni:

  • Descrizione - OpenVPN MASQ eth0
  • Seleziona "Usa Masquerade"
  • Seleziona "Tutti i protocolli"
  • Interfaccia in uscita - eth0
  • Indirizzo Src - 10.8.0.0/24


Quindi fare clic su Salva. Dobbiamo aggiungere una regola per ogni interfaccia con cui vogliamo che i client OpenVPN possano comunicare, quindi come minimo dobbiamo aggiungerne un'altra. Fai clic su Aggiungi regola Nat origine di nuovo e configurare le seguenti opzioni:

  • Descrizione - OpenVPN MASQ eth1
  • Seleziona "Usa Masquerade"
  • Seleziona "Tutti i protocolli"
  • Interfaccia in uscita - eth1
  • Indirizzo Src - 10.8.0.0/24


Quindi fare clic su Salva.

Successivamente dobbiamo configurare una regola del firewall per consentirci di connetterci al server OpenVPN quando siamo fuori dalla rete locale, come in viaggio o in un bar. A tale scopo, fai clic su Firewall/NAT scheda, quindi fai clic su Norme firewall scheda che appare sotto


Dovresti vedere un set di regole qui chiamato WAN_LOCAL . Vogliamo aggiungere una nuova regola a questo, quindi fai clic su Azioni sulla destra e seleziona Modifica set di regole . Nella nuova finestra visualizzata, fai clic su Aggiungi nuova regola e inserisci i seguenti dati:

Scheda Generale:

  • Descrizione - Consenti connessioni esterne a OpenVPN
  • Azione - Accetta
  • Protocollo - UDP


Scheda Destinazione:

  • Porto - 1194


Fai clic su Salva , quindi fai clic su Salva set di regole . Ora dovresti essere in grado di connetterti al tuo server OpenVPN da una posizione esterna.

Server DNS

Se hai intenzione di crittografare tutto il traffico di rete tramite il tuo server VPN, ti consigliamo di abilitare il tuo server DNS. EdgeOS ha un server di inoltro DNS integrato che possiamo utilizzare per fornire il nostro server DNS per la connessione VPN, per prevenire attacchi relativi al DNS.

Se il tuo router è già configurato per la tua rete locale (e hai inserito il comando per utilizzare il tuo router come DNS per OpenVPN), è estremamente facile riutilizzare la tua configurazione DNS locale.

Per fare ciò, apri un browser web, naviga e accedi al tuo dispositivo EdgeRouter. Fai clic su Servizi scheda, quindi fai clic su DNS scheda che appare sotto. Fai clic su Aggiungi interfaccia di ascolto , seleziona vtun0 nel nuovo menu a discesa visualizzato, quindi fai clic su Salva sotto.

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.

Una volta importato, modifica la tua connessione e vai alla scheda Avanzate. Aggiungi i seguenti due comandi su nuove righe:

cipher AES-256-CBC
auth SHA256

Quindi fai clic su Salva per memorizzare queste modifiche.

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. Apache con Tomcat, una guida passo passo all'installazione e alla configurazione

  2. Come configurare e configurare un server OpenVPN su Ubuntu 22.04

  3. Come installare e ospitare il server OpenVPN con Docker

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

  5. Installa e configura il server OpenVPN FreeBSD 12

Configurazione di un server OpenVPN con Sophos UTM e Viscosity

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 Ubuntu e Viscosity

Configurazione di un server OpenVPN con VyOS e Viscosity