Pritunl est un serveur VPN et IPsec open source avec gestion des utilisateurs et mise à l'échelle horizontale pour les petites et grandes organisations. Il donne à l'utilisateur le choix d'utiliser les protocoles OpenVPN et Wireguard. Il est livré avec une interface graphique facile à utiliser et prend en charge les clients sur la plupart des appareils et plates-formes. Tout le trafic entre les clients et le serveur est crypté. Pritunl est construit sur MongoDB, une base de données fiable et évolutive qui peut être déployée rapidement et avec un support intégré pour la réplication, ce qui facilite le déploiement du cluster Pritunl.
Ce didacticiel vous apprendra comment installer le serveur VPN Pritunl sur Rocky Linux 8. Nous explorerons également comment se connecter au VPN à l'aide d'un client Linux.
Prérequis
-
Un système exécutant Rocky Linux 8 pour héberger le serveur Pritunl.
-
Un utilisateur non root avec des privilèges sudo.
-
Un nom de domaine pointé vers le serveur.
-
Un système exécutant Rocky Linux 8 en tant que client.
-
Assurez-vous que tout est mis à jour.
Mise à jour $ sudo dnf
-
Installez tous les prérequis.
$ sudo dnf install nano
Étape 1 - Configurer le pare-feu
Rocky Linux utilise Firewalld Firewall. Vérifiez l'état du pare-feu.
$ sudo firewall-cmd --staterunning
Cela indique qu'il est opérationnel avec succès.
Le pare-feu fonctionne avec différentes zones et la zone publique est celle par défaut, que nous utiliserons. Répertorier tous les services et ports actifs sur le pare-feu.
$ sudo firewall-cmd --permanent --list-services
Il devrait afficher la sortie suivante.
dhcpv6-client mdns ssh
Autoriser les ports HTTP et HTTPS.
$ sudo firewall-cmd --permanent --add-service=http$ sudo firewall-cmd --permanent --add-service=https
Revérifiez l'état du pare-feu.
$ sudo firewall-cmd --permanent --list-all
Vous devriez voir une sortie similaire.
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 :Rechargez le pare-feu pour activer les modifications.
$ sudo firewall-cmd --reloadÉtape 2 - Installer MongoDB
Pritunl est construit sur la base de données MongoDB, nous devons donc d'abord l'installer. Rocky Linux n'est pas livré avec MongoDB, nous devons donc utiliser le référentiel officiel de MongoDB.
Remarque : MongoDB 5.0 ne fonctionne que sur les nouveaux processeurs. Si votre serveur fonctionne sur du matériel plus ancien, vous devez opter pour une ancienne version de MongoDB ou passer à un serveur plus récent.
Créez et ouvrez le fichier
/etc/yum.repos.d/mongodb-org-5.0.repo
pour l'édition.$ sudo nano /etc/yum.repos.d/mongodb-org-5.0.repoCollez-y le code suivant.
[mongodb-org-5.0]name=MongoDB Repositorybaseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/gpgcheck=1enabled=1gpgkey=https:// www.mongodb.org/static/pgp/server-5.0.ascEnregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité une fois terminé.
Installez MongoDB.
$ sudo dnf install mongodb-orgActivez et démarrez le service MongoDB.
$ sudo systemctl enable mongod --nowÉtape 3 - Installer le serveur Pritunl
La première étape consiste à créer le référentiel officiel de Pritunl. Créez et ouvrez le fichier
/etc/yum.repos.d/pritunl.repo
pour l'édition.$ sudo nano /etc/yum.repos.d/pritunl.repoCollez-y le code suivant.
[pritunl]name=Pritunl Repositorybaseurl=https://repo.pritunl.com/stable/yum/centos/8/gpgcheck=1enabled=1Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité une fois terminé.
Installez d'abord le référentiel Epel requis par Pritunl.
$ sudo dnf install epel-releaseAjoutez et importez les clés GPG nécessaires pour Pritunl.
$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 7568D9BB55FF9E5287D586017AE645C0CF8E292A$ gpg --armor --export 7568D9BB55FF9E5287D586017AE645C0CF8E292A> key.tmp; sudo rpm --import key.tmp; rm -f clé.tmpInstallez Pritunl.
$ sudo dnf install pritunlVérifiez la version de Pritunl.
$ pritunl versionpritunl v1.30.2960.4Activez et démarrez le service Pritunl.
$ sudo systemctl enable pritunl --nowAugmenter la limite de fichiers ouverts
Exécutez les commandes suivantes pour augmenter la limite de fichiers ouverts sur le serveur. Cela évitera tout problème de connexion en cas de forte charge. Si vous avez installé MongoDB sur un serveur séparé, vous devez exécuter ces commandes sur ce serveur.
$ 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'Étape 4 - Accéder et configurer Pritunl
Vous pouvez lancer Pritunl en saisissant
http://<serverIP>/
dans votre navigateur. Les navigateurs modernes essaient d'accéder à la version HTTPS de chaque site, vous devrez donc contourner l'erreur de confidentialité générée par le navigateur.Vous obtiendrez l'écran suivant lorsque vous lancerez l'URL pour la première fois.
Il récupère automatiquement l'URI MongoDB. Pour la clé de configuration, exécutez la commande suivante.
$ sudo pritunl setup-keyeacbd641982048fd9a60cdf09f7ebaa3Entrez la clé générée sur le site Web et cliquez sur Enregistrer bouton. Cela mettra à jour la base de données et ouvrira l'écran de connexion.
Exécutez la commande suivante pour générer les informations de connexion par défaut.
$ sudo pritunl default-password[undefined][2021-11-08 22:34:55,255][INFO] Obtention du mot de passe administrateur par défautMot de passe administrateur par défaut :nom d'utilisateur :"pritunl" mot de passe :"krZQLlH9U7P1"Entrez les informations de connexion et connectez-vous. Vous obtiendrez l'écran de configuration suivant.
Entrez un mot de passe fort pour remplacer celui par défaut. Saisissez un domaine sous Lettons Encrypt Domain domaine. Pritunl générera et configurera automatiquement un certificat SSL pour le domaine.
Vous pouvez maintenant lancer le serveur en utilisant le nom de domaine en tapant
https://pritunl.example.com
dans votre navigateur.Étape 5 - Ajouter une organisation, un serveur et des utilisateurs
L'étape suivante consiste à ajouter une organisation pour votre VPN. Cliquez sur Utilisateurs et cliquez sur l'onglet Ajouter une organisation bouton.
Cliquez sur Ajouter bouton pour continuer.
L'étape suivante consiste à ajouter un utilisateur. Il y a deux options. Vous pouvez soit ajouter des utilisateurs un par un, soit les ajouter en masse. Nous allons ajouter un seul utilisateur pour le moment. Cliquez sur Ajouter un utilisateur bouton.
Le champ PIN est facultatif et est utilisé si vous envisagez d'utiliser l'authentification à deux facteurs. Le code PIN est composé uniquement de chiffres.
Une fois l'organisation et les utilisateurs définis, accédez aux Serveurs et cliquez sur l'onglet Ajouter un serveur bouton.
Port :Vous pouvez ajouter n'importe quel port que le serveur utilisera. Assurez-vous que le port que vous avez spécifié est ouvert à tout le trafic entrant dans le groupe de sécurité.
DNS : Vous pouvez ajouter Google DNS ou OpenDNS.
Réseau virtuel : Vous pouvez ajouter une adresse IP privée dans ce champ, mais assurez-vous qu'aucune autre ressource ne l'utilise. Les clients se verront attribuer des adresses IP de cette plage.
Réseau de groupe de travail virtuel : Adresses réseau WireGuard pour le réseau privé qui seront attribuées aux clients WireGuard. Il doit avoir le même bloc CIDR que le réseau virtuel.
Activer WireGuard : Si coché, il utilisera WireGuard au lieu d'OpenVPN. Cependant, nous utiliserons OpenVPN pour notre didacticiel, alors laissez-le décoché.
Port WG : Ce port sera utilisé pour les connexions WireGuard. Il est à utiliser uniquement lorsque nous avons activé l'option WireGuard.
Activer Google Authenticator : Pour utiliser la vérification en deux étapes, activez cette option. Si cette option est activée sur le serveur, tous les clients sous ce serveur doivent vérifier l'OTP avant de se connecter au VPN à chaque fois.
Activer IPv6 :active les serveurs DNS IPv6. Les clients reçoivent des adresses IPv6 privées.
Cliquez sur Ajouter bouton pour terminer.
Cliquez sur Ajouter une organisation bouton pour lier l'organisation au serveur nouvellement créé.
Cliquez sur Démarrer le serveur bouton pour démarrer le VPN.
Activer le port dans le pare-feu
Pour accepter les connexions du client sur le port VPN, nous devons l'activer via notre pare-feu.
$ sudo firewall-cmd --permanent --add-port=18412/udp$ sudo firewall-cmd --reloadÉtape 6 - Installer le client Pritunl
Maintenant que notre serveur est opérationnel, il est temps d'installer un client et de se connecter au VPN. Pritunl propose deux types de clients :une ligne de commande et un client graphique.
Pour notre tutoriel, nous utiliserons le client en ligne de commande. Vous ne pouvez installer qu'un seul type de client sur un système.
Installez le référentiel EPEL requis par le client Pritunl.
$ sudo dnf install epel-releaseAjoutez le dépôt officiel Pritunl à votre système Rocky Linux.
$ sudo tee -a /etc/yum.repos.d/pritunl.repo <Ajoutez et importez les clés GPG.
$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 7568D9BB55FF9E5287D586017AE645C0CF8E292A$ gpg --armor --export 7568D9BB55FF9E5287D586017AE645C0CF8E292A> key.tmp; sudo rpm --import key.tmp; rm -f clé.tmpInstallez le client de ligne de commande.
$ sudo dnf install pritunl-clientÉtape 7 - Se connecter du client au serveur
Depuis l'onglet des utilisateurs du site du serveur Pritunl, récupérez le lien du profil temporaire pour vous connecter au client.
Copiez le lien URI temporaire de la dernière entrée.
Entrez la commande suivante sur le terminal client pour ajouter le profil.
$ pritunl-client add pritunl://example.com/ku/2hd6S6UgAssurez-vous d'ajouter le lien de profil copié plus tôt après
add
dans la commande.Consultez la liste des profils ajoutés.
$ pritunl-client list+----------------------------------+------- ------------------+-----------------------+---------------- +----------------+| identifiant | NOM | EN LIGNE POUR | ADRESSE DU SERVEUR | ADRESSE CLIENT |+---------------------------------+----------- --------------+----------------------+-----------+--- --------------+| wkinhnnjyz3ybektjbavy8qpecafqp1e | hforgeuser (comment forger) | Déconnecté | - | - |+---------------------------------+------------ -------------+--------------+----------------+---- ------------+Exécutez la commande suivante pour vous connecter au profil. Vous n'avez pas besoin d'utiliser l'ID de profil complet dans la commande. Utilisez simplement les 3 premières lettres de l'ID de profil pour vous y référer.
$ pritunl-client start wki --mode=ovpn --password=PINOTP
- Pour spécifier le mode OPVN, ajoutez l'indicateur
--mode=ovpn
dans la commande.- Si vous avez activé l'option Google Authenticator, vous devez la configurer à l'aide d'un client Google Authenticator ou Authy.
- Pour spécifier le code PIN et le code d'authentification à deux facteurs, utilisez le drapeau
--password=PINOTP
dans la commande. Par exemple, si le code PIN est 54321 et que le code OTP est 456789, utilisez le drapeau--password=54321456789
dans la commande ci-dessus. Si vous utilisez uniquement un code PIN, utilisez le drapeau--password=PIN
.Exécutez la
list
commande à nouveau pour vérifier si la connexion fonctionne.$ pritunl-client list +----------------------------------+-------------------------+------------+----------------+----------------+ | ID | NAME | ONLINE FOR | SERVER ADDRESS | CLIENT ADDRESS | +----------------------------------+-------------------------+------------+----------------+----------------+ | wkinhnnjyz3ybektjbavy8qpecafqp1e | hforgeuser (howtoforge) | 6 secs | 178.62.233.196 | 192.168.238.2 | +----------------------------------+-------------------------+------------+----------------+----------------+
Vous avez réussi à vous connecter au VPN Pritunl.
Ligne de commande Pritunl
Le serveur Pritunl est livré avec un outil de ligne de commande que vous pouvez utiliser pour effectuer certaines opérations de base.
Réparer la base de données
Vous pouvez utiliser Pritunl pour réparer la base de données et permettre la récupération d'une base de données corrompue ou incohérente.
Tout d'abord, arrêtez le serveur Pritunl.
$ sudo systemctl stop pritunlRéparez la base de données.
$ sudo pritunl repair-databaseRedémarrez le service Pritunl.
$ sudo systemctl start pritunlLa
repair-database
La commande effacera tous les journaux, réinitialisera toutes les adresses IP virtuelles statiques des utilisateurs et mettra tous les serveurs à l'état arrêté.Réinitialiser les identifiants
La commande suivante réinitialisera le nom d'utilisateur et le mot de passe de l'administrateur à
pritunl
. Il supprimera également tous les paramètres d'authentification unique et d'authentification en deux étapes pour l'utilisateur administrateur s'ils sont activés.$ sudo pritunl reset-passwordModifier le port de la console Web
Par défaut, Pritunl s'exécute sur le port 443. Si vous souhaitez le modifier, utilisez la commande suivante.
$ sudo pritunl set app.server_port 8443Pritunl exécute un serveur Web sur le port 80 pour la vérification Let's Encrypt et redirige les requêtes HTTP vers HTTPS. Vous pouvez désactiver la redirection à l'aide de la commande suivante. Cela empêchera également l'utilisation des certificats Let's Encrypt.
$ sudo pritunl set app.redirect_server falseConclusion
Ceci conclut notre tutoriel sur la configuration et l'utilisation du serveur VPN Pritunl sur un serveur Rocky Linux 8. Si vous voulez en savoir plus sur Pritunl, vous pouvez suivre sa documentation officielle. Si vous avez des questions, postez-les dans les commentaires ci-dessous.