Ricerca nel sito web

Come configurare Pritunl VPN Server su Rocky Linux 8


Su questa pagina

  1. Prerequisiti
  2. Passaggio 1: configurazione del firewall
  3. Passaggio 2 - Installa MongoDB
  4. Passaggio 3 - Installa Pritunl Server
    1. Aumenta il limite di file aperti

    1. Abilita la porta nel firewall

    1. Ripara database
    2. Reimposta credenziali
    3. 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

    1. A system running Rocky Linux 8 for hosting Pritunl server.

    2. A non-root user with sudo privileges.

    3. A domain name pointed to the server.

    4. A system running Rocky Linux 8 as a client.

    5. Make sure everything is updated.

      $ sudo dnf update
      
    6. 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.