Come configurare Pritunl VPN Server su Rocky Linux 8
Su questa pagina
- Prerequisiti
- Passaggio 1: configurazione del firewall
- Passaggio 2 - Installa MongoDB
- Passaggio 3 - Installa Pritunl Server
- Aumenta il limite di file aperti
- Abilita la porta nel firewall
- Ripara database
- Reimposta credenziali
- Cambia la porta della console Web
Pritunl è un server VPN e IPsec open source con gestione degli utenti e scalabilità orizzontale per organizzazioni di piccole e grandi dimensioni. Offre all'utente la possibilità di utilizzare i protocolli OpenVPN e Wireguard. Viene fornito con un'interfaccia GUI facile da usare e supporta i client sulla maggior parte dei dispositivi e delle piattaforme. Tutto il traffico tra i client e il server è crittografato. Pritunl è basato su MongoDB, un database affidabile e scalabile che può essere distribuito rapidamente e con supporto integrato per la replica, semplificando la distribuzione del cluster Pritunl.
Questo tutorial ti insegnerà come installare il server VPN Pritunl su Rocky Linux 8. Esploreremo anche come connettersi alla VPN utilizzando un client Linux.
Prerequisiti
-
A system running Rocky Linux 8 for hosting Pritunl server.
-
A non-root user with sudo privileges.
-
A domain name pointed to the server.
-
A system running Rocky Linux 8 as a client.
-
Make sure everything is updated.
$ sudo dnf update
-
Install any prerequisites.
$ sudo dnf install nano
Passaggio 1: configurare il firewall
Rocky Linux utilizza Firewalld Firewall. Controlla lo stato dei firewall.
$ sudo firewall-cmd --state running
Ciò indica che è attivo e funzionante correttamente.
Il firewall funziona con diverse zone e la zona pubblica è quella predefinita, che useremo. Elenca tutti i servizi e le porte attive sul firewall.
$ sudo firewall-cmd --permanent --list-services
Dovrebbe mostrare il seguente output.
dhcpv6-client mdns ssh
Consenti porte HTTP e HTTPS.
$ sudo firewall-cmd --permanent --add-service=http $ sudo firewall-cmd --permanent --add-service=https
Ricontrolla lo stato del firewall.
$ sudo firewall-cmd --permanent --list-all
Dovresti vedere un output simile.
public target: default icmp-block-inversion: no interfaces: sources: services: cockpit dhcpv6-client http https ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
Ricarica il firewall per abilitare le modifiche.
$ sudo firewall-cmd --reload
Passaggio 2: installa MongoDB
Pritunl è basato sul database MongoDB, quindi prima dobbiamo installarlo. Rocky Linux non viene fornito con MongoDB, quindi dobbiamo utilizzare il repository ufficiale di MongoDB.
Nota: MongoDB 5.0 funziona solo su processori più recenti. Se il tuo server è in esecuzione su hardware meno recente, dovresti optare per una versione precedente di MongoDB o passare a un server più recente.
Crea e apri il file
/etc/yum.repos.d/mongodb-org-5.0.repo
per la modifica.$ sudo nano /etc/yum.repos.d/mongodb-org-5.0.repo
Incolla il seguente codice al suo interno.
[mongodb-org-5.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc
Salva il file premendo Ctrl + X e inserendo Y quando richiesto una volta terminato.
Installa MongoDB.
$ sudo dnf install mongodb-org
Abilita e avvia il servizio MongoDB.
$ sudo systemctl enable mongod --now
Passo 3 - Installa Pritunl Server
Il primo passo è creare il repository ufficiale per Pritunl. Crea e apri il file
/etc/yum.repos.d/pritunl.repo
per la modifica.$ sudo nano /etc/yum.repos.d/pritunl.repo
Incolla il seguente codice al suo interno.
[pritunl] name=Pritunl Repository baseurl=https://repo.pritunl.com/stable/yum/centos/8/ gpgcheck=1 enabled=1
Salva il file premendo Ctrl + X e inserendo Y quando richiesto una volta terminato.
Installa prima il repository Epel che è richiesto da Pritunl.
$ sudo dnf install epel-release
Aggiungi e importa le chiavi GPG necessarie per Pritunl.
$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 7568D9BB55FF9E5287D586017AE645C0CF8E292A $ gpg --armor --export 7568D9BB55FF9E5287D586017AE645C0CF8E292A > key.tmp; sudo rpm --import key.tmp; rm -f key.tmp
Installa Pritunl.
$ sudo dnf install pritunl
Controlla la versione di Pritunl.
$ pritunl version pritunl v1.30.2960.4
Abilita e avvia il servizio Pritunl.
$ sudo systemctl enable pritunl --now
Aumenta il limite di file aperti
Eseguire i seguenti comandi per aumentare il limite di file aperti sul server. Ciò eviterà eventuali problemi di connessione in caso di carico elevato. Se hai installato MongoDB su un server separato, devi eseguire questi comandi su quel server.
$ sudo sh -c 'echo "* hard nofile 64000" >> /etc/security/limits.conf' $ sudo sh -c 'echo "* soft nofile 64000" >> /etc/security/limits.conf' $ sudo sh -c 'echo "root hard nofile 64000" >> /etc/security/limits.conf' $ sudo sh -c 'echo "root soft nofile 64000" >> /etc/security/limits.conf'
Passo 4 - Accedi e configura Pritunl
Puoi avviare Pritunl inserendo
http://
nel tuo browser. I browser moderni tentano di accedere alla versione HTTPS di ogni sito, quindi dovrai ignorare l'errore Privacy generato dal browser./ Otterrai la seguente schermata quando avvii per la prima volta l'URL.
Cattura automaticamente l'URI MongoDB. Per la chiave di installazione, eseguire il comando seguente.
$ sudo pritunl setup-key eacbd641982048fd9a60cdf09f7ebaa3
Immettere la chiave generata sul sito Web e fare clic sul pulsante Salva. Aggiornerà il database e aprirà la schermata di accesso.
Eseguire il comando seguente per generare le informazioni di accesso predefinite.
$ sudo pritunl default-password [undefined][2021-11-08 22:34:55,255][INFO] Getting default administrator password Administrator default password: username: "pritunl" password: "krZQLlH9U7P1"
Inserisci le informazioni di accesso e accedi. Verrà visualizzata la seguente schermata di configurazione.
Immettere una password complessa per sostituire quella predefinita. Inserisci un dominio nel campo Let's Encrypt Domain. Pritunl genererà e imposterà automaticamente un certificato SSL per il dominio.
Ora puoi avviare il server utilizzando il nome di dominio digitando
https://pritunl.example.com
nel tuo browser.Passaggio 5: aggiungere un'organizzazione, un server e utenti
Il passaggio successivo consiste nell'aggiungere un'organizzazione per la tua VPN. Fare clic sulla scheda Utenti e fare clic sul pulsante Aggiungi organizzazione.
Fare clic sul pulsante Aggiungi per procedere.
Il passaggio successivo consiste nell'aggiungere un utente. Ci sono due opzioni. Puoi aggiungere gli utenti uno per uno o aggiungerli in blocco. Stiamo per aggiungere un singolo utente per ora. Fare clic sul pulsante Aggiungi utente.
Il campo PIN è facoltativo e viene utilizzato se si intende utilizzare l'autenticazione a due fattori. Il PIN è composto solo da numeri.
Una volta che l'organizzazione e gli utenti sono stati impostati, vai alla scheda Server e fai clic sul pulsante Aggiungi server.
Porta: puoi aggiungere qualsiasi porta che verrà utilizzata dal server. Assicurati che la porta specificata sia aperta a tutto il traffico in entrata nel gruppo di sicurezza.
DNS: puoi aggiungere Google DNS o OpenDNS.
Rete virtuale: puoi aggiungere un IP privato in questo campo, ma assicurati che nessun'altra risorsa lo utilizzi. Ai client verranno assegnati indirizzi IP da questo intervallo.
Rete WG virtuale: indirizzi di rete WireGuard per la rete privata che verrà assegnata ai client WireGuard. Dovrebbe avere lo stesso blocco CIDR della rete virtuale.
Abilita WireGuard: se selezionato, utilizzerà WireGuard invece di OpenVPN. Tuttavia, utilizzeremo OpenVPN per il nostro tutorial, quindi lascialo deselezionato.
Porta WG: questa porta verrà utilizzata per le connessioni WireGuard. Deve essere utilizzato solo quando abbiamo abilitato l'opzione WireGuard.
Abilita Google Authenticator: per utilizzare la verifica in due passaggi, abilita questa opzione. Se questa opzione è abilitata sul server, tutti i client sotto quel server, devono verificare l'OTP prima di connettersi alla VPN ogni volta.
Abilita IPv6: abilita i server DNS IPv6. Ai client vengono assegnati indirizzi IPv6 privati.
Fare clic sul pulsante Aggiungi per terminare.
Fare clic sul pulsante Aggiungi organizzazione per collegare l'organizzazione al server appena creato.
Fare clic sul pulsante Avvia server per avviare la VPN.
Abilita la porta nel firewall
Per accettare le connessioni dal client sulla porta VPN, dobbiamo abilitarlo attraverso il nostro firewall.
$ sudo firewall-cmd --permanent --add-port=18412/udp $ sudo firewall-cmd --reload
Passo 6 - Installa Pritunl Client
Ora che il nostro server è attivo e funzionante, è il momento di installare un client e connettersi alla VPN. Pritunl offre due tipi di client: una riga di comando e un client GUI.
Per il nostro tutorial, utilizzeremo il client della riga di comando. È possibile installare solo un tipo di client su un sistema.
Installa il repository EPEL necessario al client Pritunl.
$ sudo dnf install epel-release
Aggiungi il repository Pritunl ufficiale al tuo sistema Rocky Linux.
$ sudo tee -a /etc/yum.repos.d/pritunl.repo << EOF [pritunl] name=Pritunl Stable Repository baseurl=https://repo.pritunl.com/stable/yum/centos/8/ gpgcheck=1 enabled=1 EOF
Aggiungi e importa le chiavi GPG.
$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 7568D9BB55FF9E5287D586017AE645C0CF8E292A $ gpg --armor --export 7568D9BB55FF9E5287D586017AE645C0CF8E292A > key.tmp; sudo rpm --import key.tmp; rm -f key.tmp
Installa il client della riga di comando.
$ sudo dnf install pritunl-client
Passaggio 7: connessione dal client al server
Dalla scheda utenti del sito del server Pritunl, ottieni il collegamento al profilo temporaneo per connetterti al client.
Copia il collegamento URI temporaneo dall'ultima voce.
Immettere il seguente comando sul terminale client per aggiungere il profilo.
$ pritunl-client add pritunl://example.com/ku/2hd6S6Ug
Assicurati di aggiungere il collegamento al profilo copiato in precedenza dopo
add
nel comando.Controlla l'elenco dei profili aggiunti.
$ pritunl-client list +----------------------------------+-------------------------+--------------+----------------+----------------+ | ID | NAME | ONLINE FOR | SERVER ADDRESS | CLIENT ADDRESS | +----------------------------------+-------------------------+--------------+----------------+----------------+ | wkinhnnjyz3ybektjbavy8qpecafqp1e | hforgeuser (howtoforge) | Disconnected | - | - | +----------------------------------+-------------------------+--------------+----------------+----------------+
Eseguire il comando seguente per connettersi al profilo. Non è necessario utilizzare l'ID profilo completo nel comando. Basta usare le prime 3 lettere dell'ID del profilo per fare riferimento ad esso.
$ pritunl-client start wki --mode=ovpn --password=PINOTP
- Per specificare la modalità OPVN, aggiungi il flag
--mode=ovpn
nel comando. - Se hai abilitato l'opzione Google Authenticator, devi configurarla utilizzando un client Google Authenticator o Authy.
- Per specificare il pin e il codice di autenticazione a due fattori, utilizzare il flag
--password=PINOTP
nel comando. Ad esempio, se il pin è 54321 e il codice OTP è 456789, utilizza il flag--password=54321456789
nel comando precedente. Se stai usando solo il PIN, usa il flag--password=PIN
.
Esegui di nuovo il comando
list
per verificare se la connessione funziona.$ pritunl-client list +----------------------------------+-------------------------+------------+----------------+----------------+ | ID | NAME | ONLINE FOR | SERVER ADDRESS | CLIENT ADDRESS | +----------------------------------+-------------------------+------------+----------------+----------------+ | wkinhnnjyz3ybektjbavy8qpecafqp1e | hforgeuser (howtoforge) | 6 secs | 178.62.233.196 | 192.168.238.2 | +----------------------------------+-------------------------+------------+----------------+----------------+
Hai effettuato una connessione riuscita alla VPN Pritunl.
Riga di comando Pritunl
Il server Pritunl viene fornito con uno strumento da riga di comando che puoi utilizzare per eseguire alcune operazioni di base.
Ripara banca dati
Puoi utilizzare Pritunl per riparare il database e consentire il ripristino di un database danneggiato o incoerente.
Innanzitutto, arresta il server Pritunl.
$ sudo systemctl stop pritunl
Riparare il database.
$ sudo pritunl repair-database
Riavvia il servizio Pritunl.
$ sudo systemctl start pritunl
Il comando
ripara-database
cancellerà tutti i log, ripristinerà tutti gli indirizzi IP virtuali statici dell'utente e metterà tutti i server nello stato di arresto.Reimposta credenziali
Il seguente comando ripristinerà il nome utente e la password dell'amministratore su
pritunl
. Rimuoverà inoltre tutte le impostazioni di Single Sign-On e di autenticazione in due passaggi per l'utente amministratore, se abilitate.$ sudo pritunl reset-password
Modificare la porta della console Web
Per impostazione predefinita, Pritunl viene eseguito sulla porta 443. Se vuoi cambiarlo, usa il seguente comando.
$ sudo pritunl set app.server_port 8443
Pritunl esegue un server Web sulla porta 80 per la verifica di Lets Encrypt e reindirizza le richieste HTTP a HTTPS. È possibile disattivare il reindirizzamento utilizzando il seguente comando. Ciò impedirà anche l'uso dei certificati Lets Encrypt.
$ sudo pritunl set app.redirect_server false
Conclusione
Questo conclude il nostro tutorial sulla configurazione e l'utilizzo del server VPN Pritunl su un server Rocky Linux 8. Se vuoi saperne di più su Pritunl, puoi seguire la sua documentazione ufficiale. Se hai domande, pubblicale nei commenti qui sotto.