DevOps

Configurer OpenVPN sur Ubuntu

La mise en place d’un serveur OpenVPN sur un système Ubuntu peut être une démarche complexe, mais avec une approche méthodique, elle devient accessible même pour ceux qui n’ont pas une expertise approfondie en administration système. Avant de commencer, assurez-vous d’avoir accès à un serveur Ubuntu avec des privilèges d’administration.

Étape 1 : Mise à jour du système

Avant de procéder à l’installation d’OpenVPN, il est impératif de mettre à jour le système pour garantir la sécurité et la stabilité. Utilisez les commandes suivantes dans le terminal :

bash
sudo apt update sudo apt upgrade

Étape 2 : Installation d’OpenVPN

OpenVPN peut être installé à l’aide de la commande apt. Exécutez la commande suivante pour installer le paquet OpenVPN :

bash
sudo apt install openvpn

Étape 3 : Configuration du serveur OpenVPN

La configuration d’OpenVPN implique plusieurs étapes, dont la génération de certificats et de clés, la configuration du serveur et la création des fichiers de configuration des clients. Suivez attentivement ces étapes :

Génération des certificats et clés

OpenVPN utilise des certificats SSL/TLS pour assurer la sécurité des connexions. Utilisez la commande easy-rsa fournie avec OpenVPN pour faciliter ce processus :

bash
sudo apt install easy-rsa

Puis, créez un répertoire pour y stocker les clés et les certificats :

bash
make-cadir ~/openvpn-ca cd ~/openvpn-ca

Modifiez le fichier vars dans le répertoire créé pour définir les paramètres de certificat :

bash
nano vars

Modifiez les valeurs de KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, et KEY_EMAIL selon vos préférences. Enregistrez et fermez le fichier.

Ensuite, exécutez les commandes suivantes pour initialiser et créer les certificats et clés :

bash
source vars ./clean-all ./build-ca ./build-key-server server ./build-dh

Configuration du serveur OpenVPN

Copiez les fichiers générés vers le répertoire OpenVPN :

bash
sudo cp ~/openvpn-ca/keys/ca.crt /etc/openvpn sudo cp ~/openvpn-ca/keys/server.crt /etc/openvpn sudo cp ~/openvpn-ca/keys/server.key /etc/openvpn sudo cp ~/openvpn-ca/keys/dh2048.pem /etc/openvpn

Copiez également le fichier de configuration de modèle fourni avec OpenVPN :

bash
gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf

Éditez le fichier de configuration pour refléter votre configuration spécifique :

bash
sudo nano /etc/openvpn/server.conf

Assurez-vous que les certificats et les clés pointent vers les fichiers corrects :

text
ca ca.crt cert server.crt key server.key dh dh2048.pem

Activez le transfert de paquets et l’IP forwarding :

bash
sudo sysctl -w net.ipv4.ip_forward=1

Ajoutez cette configuration au fichier /etc/sysctl.conf pour le rendre persistant :

bash
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf sudo sysctl -p

Étape 4 : Configuration du pare-feu

Si vous utilisez UFW (Uncomplicated Firewall), ajustez sa configuration pour permettre le trafic OpenVPN :

bash
sudo ufw allow 1194/udp sudo ufw allow OpenSSH sudo ufw enable

Étape 5 : Démarrage du service OpenVPN

Redémarrez le service OpenVPN pour appliquer les changements :

bash
sudo systemctl restart openvpn@server sudo systemctl enable openvpn@server

Vérifiez que le service fonctionne correctement :

bash
sudo systemctl status openvpn@server

Étape 6 : Configuration des clients

Générez un certificat client en utilisant la procédure similaire à celle du certificat serveur :

bash
cd ~/openvpn-ca source vars ./build-key client1

Copiez les certificats et clés du client vers un fichier zip que vous pouvez transférer vers l’appareil client :

bash
cd ~/openvpn-ca/keys sudo cp ca.crt client1.crt client1.key ta.key /etc/openvpn sudo zip ~/client1.zip ca.crt client1.crt client1.key ta.key

Étape 7 : Configuration de l’appareil client

Sur l’appareil client, installez OpenVPN et copiez les fichiers client1.crt, client1.key, ca.crt et ta.key dans un dossier. Créez un fichier de configuration client.ovpn avec le contenu suivant :

text
client dev tun proto udp remote VOTRE_ADRESSE_IP 1194 resolv-retry infinite nobind user nobody group nogroup persist-key persist-tun remote-cert-tls server cipher AES-256-CBC comp-lzo verb 3 Contenu du fichier ca.crt Contenu du fichier client1.crt Contenu du fichier client1.key Contenu du fichier ta.key

Remplacez VOTRE_ADRESSE_IP par l’adresse IP de votre serveur.

Conclusion

La mise en place d’un serveur OpenVPN sur Ubuntu implique plusieurs étapes, depuis l’installation du logiciel jusqu’à la configuration des certificats et clés, en passant par la configuration du pare-feu. Il est crucial de suivre chaque étape avec attention pour assurer la sécurité et la stabilité du serveur VPN. Cette approche offre un moyen sécurisé et fiable pour établir des connexions VPN, permettant ainsi un accès distant et sécurisé à votre réseau. N’oubliez pas de suivre les meilleures pratiques en matière de sécurité, telles que la gestion appropriée des clés et certificats, pour garantir l’intégrité de votre infrastructure VPN.

Plus de connaissances

Étape 1 : Mise à jour du système

La première étape de la configuration d’un serveur OpenVPN sur Ubuntu consiste à s’assurer que le système est à jour. Cette procédure est cruciale pour garantir que toutes les dernières mises à jour de sécurité et de stabilité sont appliquées. En exécutant les commandes sudo apt update et sudo apt upgrade, le système récupère les dernières informations sur les paquets disponibles et les met à jour, respectivement.

Étape 2 : Installation d’OpenVPN

L’installation d’OpenVPN sur Ubuntu peut être réalisée de manière efficace grâce à l’utilisation de la commande sudo apt install openvpn. Cette commande tire parti du gestionnaire de paquets APT (Advanced Package Tool) pour récupérer et installer le paquet OpenVPN à partir des référentiels Ubuntu. Une fois l’installation terminée, OpenVPN est prêt à être configuré selon les besoins spécifiques du serveur.

Étape 3 : Configuration du serveur OpenVPN

Cette étape comprend plusieurs sous-processus, avec la génération des certificats et des clés SSL/TLS comme point de départ. L’utilisation de l’outil easy-rsa facilite ce processus en simplifiant la création des éléments de sécurité nécessaires. La commande sudo apt install easy-rsa assure que cet outil est disponible sur le système. Ensuite, la création d’un répertoire dédié pour stocker les clés et les certificats, suivi de la configuration du fichier vars, garantit une personnalisation adéquate des paramètres de certificat.

La création des certificats et clés est ensuite réalisée avec les commandes source vars, ./clean-all, ./build-ca, ./build-key-server server, et ./build-dh. Ces commandes assurent la génération des certificats d’autorité de certification, du certificat du serveur, de la clé du serveur, et des paramètres Diffie-Hellman. L’ensemble de ces éléments est essentiel pour établir des connexions sécurisées.

La configuration du serveur OpenVPN nécessite la copie des certificats et des clés générés vers le répertoire d’OpenVPN. Les fichiers ca.crt, server.crt, server.key, et dh2048.pem sont copiés à l’aide de commandes simples. Le fichier de configuration de modèle server.conf est également copié dans le répertoire d’OpenVPN et édité pour inclure les bons chemins vers les certificats et clés générés précédemment.

Pour renforcer la sécurité, le transfert de paquets et l’IP forwarding sont activés en utilisant les commandes sudo sysctl -w net.ipv4.ip_forward=1 et en ajoutant cette configuration au fichier /etc/sysctl.conf. Cela permet au serveur OpenVPN de router les paquets entre les interfaces réseau.

Étape 4 : Configuration du pare-feu

Le pare-feu, dans ce cas UFW, est configuré pour permettre le trafic OpenVPN. Les commandes sudo ufw allow 1194/udp et sudo ufw allow OpenSSH ouvrent les ports nécessaires pour le fonctionnement d’OpenVPN et permettent l’accès SSH pour une gestion à distance sécurisée. En activant le pare-feu avec sudo ufw enable, les règles spécifiées sont appliquées.

Étape 5 : Démarrage du service OpenVPN

Après avoir effectué toutes les configurations nécessaires, le service OpenVPN est redémarré avec sudo systemctl restart openvpn@server. Cette commande assure que les changements prennent effet. Pour que le service démarre automatiquement au démarrage du système, sudo systemctl enable openvpn@server est utilisé.

La vérification du statut du service avec sudo systemctl status openvpn@server permet de s’assurer que le service est actif et en cours d’exécution sans erreurs.

Étape 6 : Configuration des clients

La configuration des clients implique la génération de certificats pour chaque client individuel. En suivant des étapes similaires à celles de la configuration du serveur, des certificats et des clés spécifiques au client sont générés. Ces fichiers sont ensuite copiés vers le répertoire d’OpenVPN sur le serveur.

Étape 7 : Configuration de l’appareil client

Sur l’appareil client, OpenVPN est installé, et les fichiers de configuration spécifiques au client sont copiés vers un dossier dédié. Un fichier de configuration client.ovpn est créé pour définir les paramètres de connexion. Ce fichier inclut des détails tels que le protocole utilisé, l’adresse IP du serveur, les certificats et les clés nécessaires, ainsi que d’autres paramètres de sécurité.

En résumé, la mise en place d’un serveur OpenVPN sur Ubuntu nécessite une série d’étapes précises, allant de la mise à jour du système à la configuration des clients. Chaque étape joue un rôle crucial dans la création d’un environnement VPN sécurisé et fonctionnel, permettant un accès distant aux ressources réseau de manière sécurisée. La vigilance dans la gestion des certificats et des clés, ainsi que le suivi des meilleures pratiques en matière de sécurité, sont essentiels pour garantir l’intégrité de l’infrastructure OpenVPN.

Bouton retour en haut de la page