Compétences évaluées

Description du projet

Tâches et opérations effectuées

Télécharger le script d'installation

Connectez vous sur votre futur serveur VPN, et commencez par mettre à jour le cache des paquets. On en profite aussi pour installer cURL.

sudo apt-get update
sudo apt-get install curl

Ensuite, téléchargez le script d'installation avec cURL :

curl -O https://raw.githubusercontent.com/Angristan/openvpn-install/master/openvpn-install.sh

Dès que le script est téléchargé, vous devez ajouter des droits d'exécution afin de pouvoir l'exécuter par la suite :

chmod +x openvpn-install.sh

Ensuite, exécutez le script pour commencer la configuration pas à pas d'OpenVPN Server :

sudo ./openvpn-install.sh

Configurer le VPN

Le message "Welcome to the OpenVPN installer ! " s'affiche et les étapes de configuration vont s'enchaîner. Tout d'abord, il faut indiquer l'adresse IPv4 du serveur VPN, mais la bonne nouvelle, c'est qu'elle remonte automatiquement. S'il s'agit de l'adresse IP locale, cela signifie qu'il y a un NAT et dans ce cas, c'est logique. Sinon, l'adresse IP publique de votre serveur, par exemple de votre serveur VPS, s'affichera ici. Ici, le script remonte bien "192.168.100.51" Validez.

https://www.it-connect.fr/wp-content-itc/uploads/2022/09/Serveur-OpenVPN-Debian-11-Script-dinstallation-Etape-1.png

D'ailleurs, le script détecte la présence du NAT et indique l'adresse IP publique. Il suffit de valider, à moins que vous souhaitiez préciser un nom de domaine spécifique ou corriger l'information remontée par le script (qui s'appuie sur cURL pour récupérer votre IP publique).

https://www.it-connect.fr/wp-content-itc/uploads/2022/09/Serveur-OpenVPN-Debian-11-Script-dinstallation-Etape-2.png

Il est demandé si vous souhaitez activer le support IPv6, vous pouvez indiquer "n" pour refuser.

  • What port do you want OpenVPN to listen to?

Ensuite, il faut choisir le port sur lequel va écouter le serveur VPN. Par défaut, c'est le port 1194, mais je vous recommande d'utiliser un port personnalisé pour masquer votre VPN (vous pouvez utiliser un port utilisé par un autre protocole (exemple : 443/HTTPS) pour passer plus facilement au travers de certains pare-feu).

Pour définir un port personnalisé, indiquez "2" puis indiquez le numéro de port. Par exemple "44912" dans mon exemple.

  • What protocol do you want OpenVPN to use ?

OpenVPN est plus rapide avec le protocole de transport UDP, et d'ailleurs c'est son mode de fonctionnement par défaut. Je vous encourage à rester sur UDP, sauf si vous chercher à passer au travers d'un pare-feu : si vous utilisez le port 443, il est plus cohérent d'utiliser le TCP pour faire comme le HTTPS !

  • What DNS resolvers do you want to use with the VPN ?

Une fois connecté au VPN, quel serveur VPN voulez-vous utiliser pour la résolution de noms. Vous pouvez choisir un serveur personnalisé avec le choix 13, ou en choisir un dans la liste en indiquant son numéro.

https://www.it-connect.fr/wp-content-itc/uploads/2022/09/Serveur-OpenVPN-Debian-11-Script-dinstallation-Etape-3.png

Voilà pour la première série de questions. Passons à la suite.

  • Do you want to use compression ?

Le script nous recommande de ne pas utiliser la compression, car elle est exploitée par les attaques VORACLE. Indiquez "n" et validez.

  • Customize encryption settings ?

Le script est déjà préconfiguré pour utiliser certains paramètres pour le chiffrement du tunnel VPN et sa sécurité dans son ensemble. Vous avez la possibilité de définir vos propres paramètres en indiquant "y", sinon il suffit de faire "n".

https://www.it-connect.fr/wp-content-itc/uploads/2022/09/Serveur-OpenVPN-Debian-11-Script-dinstallation-Etape-4-800x125.png

Ci-dessous, voici les différentes options proposées (

ainsi que les choix recommandés et correspondants à la configuration automatique

) pour ceux qui décident de personnaliser les options de chiffrement.

https://www.it-connect.fr/wp-content-itc/uploads/2022/09/Serveur-OpenVPN-Debian-11-Script-dinstallation-Etape-5-800x731.png

La première partie de l'interrogatoire est terminé ! Jusqu'à présent, le script n'a pas encore modifié la machine locale. Par contre, à ce moment précis si vous appuyez sur la touche "Entrée" (ou une autre touche), l'installation du serveur OpenVPN débutera.

https://www.it-connect.fr/wp-content-itc/uploads/2022/09/Serveur-OpenVPN-Debian-11-Script-dinstallation-Etape-6.png

Création d'un premier client

Suite à la configuration du serveur VPN, l'installation via le script se poursuit avec la création d'un premier client VPN. Indiquez le nom du PC qui va utiliser le VPN (histoire de s'y retrouver), par exemple "pc-flo". Ensuite, la question "Do you want to protect the configuration file with a password?" s'affiche, indiquez "2" pour oui afin de définir un mot de passe qui sera nécessaire pour établir la connexion VPN.

https://www.it-connect.fr/wp-content-itc/uploads/2022/09/Serveur-OpenVPN-Debian-11-Script-dinstallation-Etape-7.png

Ceci va générer un fichier de configuration OVPN dans le profil de l'utilisateur en cours d'utilisation. Ici, je suis connecté en tant que root alors la configuration est générée dans "/root/". D'un point de vue du serveur VPN, l'ajout de ce client va générer  deux fichiers :

  • Le certificat du client dans /etc/openvpn/easy-rsa/pki/issued/"nom du client".crt
  • La clé privée du client dans /etc/openvpn/easy-rsa/pki/private/"nom du client".key

Ajouter un nouveau client OpenVPN

À tout moment, vous pouvez ajouter un nouveau client pur que chaque machine qui se connecte dispose de son propre certificat. Que ce soit pour ajouter ou supprimer un nouveau client, il suffit de réexécuter le script et de faire le choix "1".

sudo ./openvpn-install.sh

https://www.it-connect.fr/wp-content-itc/uploads/2022/09/OpenVPN-Ajouter-un-nouvel-utilisateur.png

En mode NAT : la règle de redirection de ports

En mode NAT, c'est-à-dire avec un serveur VPN connecté derrière un routeur/pare-feu où le NAT est activé, vous allez devoir créer une règle de redirection de port. Sinon, les flux à destination de votre adresse IP publique sur le port 44912 ne seront pas redirigés vers le serveur VPN.

Ainsi, sur mon pare-feu, je crée une règle pour rediriger les flux UDP/44912 à destination de mon adresse IP publique à destination du serveur VPN (192.168.100.51).