Pritunl è un server VPN e IPsec open source con gestione degli utenti e ridimensionamento orizzontale per piccole e grandi organizzazioni. Dà 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 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
-
Un sistema che esegue Rocky Linux 8 per l'hosting del server Pritunl.
-
Un utente non root con privilegi sudo.
-
Un nome di dominio puntato al server.
-
Un sistema che esegue Rocky Linux 8 come client.
-
Assicurati che tutto sia aggiornato.
$ sudo dnf update
-
Installa tutti i prerequisiti.
$ sudo dnf install nano
Passaggio 1:configurazione del firewall
Rocky Linux utilizza Firewalld Firewall. Controlla lo stato del 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
Fase 2:installa MongoDB
Pritunl è basato sul database MongoDB, quindi prima dobbiamo installarlo. Rocky Linux non viene fornito con MongoDB, quindi è necessario 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
Passaggio 3:installazione del server Pritunl
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 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à 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'
Fase 4 - Accedi e configura Pritunl
Puoi avviare Pritunl inserendo http://<serverIP>/
nel tuo browser. I browser moderni tentano di accedere alla versione HTTPS di ogni sito, quindi dovrai ignorare l'errore relativo alla privacy generato dal browser.
Verrà visualizzata la seguente schermata quando avvii per la prima volta l'URL.
Cattura automaticamente l'URI MongoDB. Per la chiave di configurazione, eseguire il comando seguente.
$ sudo pritunl setup-key eacbd641982048fd9a60cdf09f7ebaa3
Immettere la chiave generata sul sito Web e fare clic su Salva pulsante. Aggiornerà il database e aprirà la schermata di accesso.
Esegui 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 in Lets Encrypt Domain campo. 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:aggiungi un'organizzazione, un server e utenti
Il passaggio successivo consiste nell'aggiungere un'organizzazione per la tua VPN. Fai clic su Utenti scheda e fai clic su Aggiungi organizzazione pulsante.
Fai clic su Aggiungi pulsante 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. Per ora aggiungeremo un singolo utente. Fai clic su Aggiungi utente pulsante.
Il campo PIN è facoltativo e viene utilizzato se si intende utilizzare l'autenticazione a due fattori. Il PIN è composto solo da numeri.
Una volta impostati l'organizzazione e gli utenti, vai su Server scheda e fai clic su Aggiungi server pulsante.
Porto :È possibile aggiungere qualsiasi porta che verrà utilizzata dal server. Assicurati che la porta che hai specificato sia aperta a tutto il traffico in entrata nel gruppo di sicurezza.
DNS: Puoi aggiungere Google DNS o OpenDNS.
Rete virtuale: Puoi aggiungere IP privato in questo campo, ma assicurati che qualsiasi altra risorsa non lo utilizzi. Ai clienti verranno assegnati indirizzi IP da questo intervallo.
Rete WG virtuale: WireGuard Network Indirizzi per la rete privata che verranno assegnati 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 dopo aver 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 forniti indirizzi IPv6 privati.
Fai clic su Aggiungi pulsante per terminare.
Fai clic su Aggiungi organizzazione pulsante per collegare l'organizzazione al server appena creato.
Fare clic su Avvia server pulsante per avviare la VPN.
Abilita porta nel firewall
Per accettare le connessioni dal client tramite la porta VPN, dobbiamo abilitarlo tramite il nostro firewall.
$ sudo firewall-cmd --permanent --add-port=18412/udp $ sudo firewall-cmd --reload
Passaggio 6:installazione del client Pritunl
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. Puoi 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 la connessione al client.
Copia il collegamento URI temporaneo dall'ultima voce.
Immettere il seguente comando sul terminale del client per aggiungere il profilo.
$ pritunl-client add pritunl://example.com/ku/2hd6S6Ug
Assicurati di aggiungere il link al profilo copiato in precedenza dopo add
nel comando.
Consulta 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, utilizza il flag
--password=PINOTP
nel comando. Ad esempio, se il pin è 54321 e il codice OTP è 456789, utilizza il flag--password=54321456789
nel comando sopra. Se stai usando solo il PIN, usa il flag--password=PIN
.
Esegui l'list
comando di nuovo 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 di Pritunl
Il server Pritunl viene fornito con uno strumento da riga di comando che puoi utilizzare per eseguire alcune operazioni di base.
Ripara database
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
Ripara il database.
$ sudo pritunl repair-database
Riavvia il servizio Pritunl.
$ sudo systemctl start pritunl
Il repair-database
il comando cancellerà tutti i registri, ripristinerà tutti gli indirizzi IP virtuali statici degli utenti e metterà tutti i server nello stato di arresto.
Ripristina credenziali
Il comando seguente reimposterà il nome utente e la password dell'amministratore su pritunl
. Rimuoverà anche le impostazioni di accesso singolo e autenticazione in due passaggi per l'utente amministratore, se abilitate.
$ sudo pritunl reset-password
Cambia la porta della console web
Per impostazione predefinita, Pritunl viene eseguito sulla porta 443. Se vuoi cambiarla, usa il comando seguente.
$ sudo pritunl set app.server_port 8443
Pritunl esegue un server Web sulla porta 80 per la verifica Let's Encrypt e reindirizza le richieste HTTP a HTTPS. È possibile disattivare il reindirizzamento utilizzando il comando seguente. Ciò impedirà anche l'uso dei certificati Let's 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.