DevOps

Configurer OpenVPN sur Ubuntu

L’installation et la configuration d’OpenVPN sur un système Ubuntu constituent une démarche complexe mais essentielle pour établir un réseau privé virtuel (VPN) sécurisé. OpenVPN, étant une solution open-source, offre une méthode fiable pour sécuriser la communication sur un réseau, que ce soit sur Internet ou à travers des réseaux privés.

Installation d’OpenVPN :

Pour commencer, installez OpenVPN sur votre serveur Ubuntu en utilisant le gestionnaire de paquets apt. Ouvrez un terminal et exécutez les commandes suivantes :

bash
sudo apt update sudo apt install openvpn

Cette étape permettra de télécharger et d’installer le logiciel OpenVPN sur votre système.

Configuration du serveur OpenVPN :

Une fois l’installation terminée, procédez à la configuration du serveur OpenVPN. Créez un répertoire où vous stockerez les fichiers de configuration :

bash
sudo mkdir /etc/openvpn/server

Puis, copiez le fichier de configuration d’exemple vers ce répertoire :

bash
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/server/

Décompressez le fichier :

bash
sudo gzip -d /etc/openvpn/server/server.conf.gz

Maintenant, ouvrez le fichier de configuration dans un éditeur de texte, par exemple, nano :

bash
sudo nano /etc/openvpn/server/server.conf

À l’intérieur du fichier, ajustez les paramètres selon vos besoins. Assurez-vous de décommenter et de modifier les lignes relatives à la configuration du réseau, des certificats et des clés.

bash
# Port utilisé par OpenVPN port 1194 # Protocole utilisé (UDP est recommandé pour la plupart des cas) proto udp # Emplacement des certificats et clés ca /etc/openvpn/server/ca.crt cert /etc/openvpn/server/server.crt key /etc/openvpn/server/server.key dh /etc/openvpn/server/dh.pem

Sauvegardez les modifications et quittez l’éditeur.

Génération des Certificats et Clés :

Pour sécuriser les communications, OpenVPN utilise des certificats et des clés. Générez-les en exécutant les commandes suivantes :

bash
cd /etc/openvpn/server sudo openssl dhparam -out dh.pem 2048 sudo openssl genpkey -algorithm RSA -out server.key sudo openssl req -new -key server.key -out server.csr sudo openssl x509 -req -in server.csr -out server.crt -signkey server.key -days 365 sudo cp /etc/openvpn/server/ca.crt /etc/openvpn/server/ta.key

Assurez-vous de répondre aux questions lors de la génération des certificats. Vous pouvez également personnaliser ces certificats en fonction de vos besoins spécifiques.

Configuration du Routage :

Activez le routage sur votre serveur en modifiant la configuration du noyau Linux pour autoriser le transfert de paquets entre les interfaces. Ouvrez le fichier de configuration du noyau :

bash
sudo nano /etc/sysctl.conf

Décommentez la ligne suivante pour activer le routage :

bash
net.ipv4.ip_forward=1

Appliquez les modifications avec la commande suivante :

bash
sudo sysctl -p

Configuration du Pare-feu :

Si vous utilisez un pare-feu sur votre serveur, assurez-vous d’ajuster les règles pour permettre le trafic lié à OpenVPN. Utilisez la commande suivante pour autoriser le trafic sur le port OpenVPN (1194 par défaut) :

bash
sudo iptables -A INPUT -p udp --dport 1194 -j ACCEPT

Sauvegardez les règles du pare-feu pour qu’elles soient persistantes :

bash
sudo apt install iptables-persistent sudo netfilter-persistent save sudo netfilter-persistent reload

Démarrage du Service OpenVPN :

Activez et démarrez le service OpenVPN :

bash
sudo systemctl enable openvpn-server@server sudo systemctl start openvpn-server@server

Assurez-vous que le service est en cours d’exécution sans erreur. Vous pouvez vérifier le statut avec la commande suivante :

bash
sudo systemctl status openvpn-server@server

Configuration des Clients :

Pour connecter des clients à votre VPN, vous devez créer des certificats et des clés pour chaque client. Utilisez la commande suivante pour chaque client :

bash
cd /etc/openvpn/server sudo openssl genpkey -algorithm RSA -out client1.key sudo openssl req -new -key client1.key -out client1.csr sudo openssl x509 -req -in client1.csr -out client1.crt -signkey server.key -days 365

Transférez ensuite les fichiers client1.key, client1.crt et ca.crt vers le client. Configurez le client OpenVPN en utilisant ces fichiers ainsi que le fichier de configuration client.ovpn qui doit inclure les paramètres spécifiques du client.

Conclusion :

En résumé, l’installation et la configuration d’OpenVPN sur Ubuntu nécessitent plusieurs étapes, notamment la configuration du serveur, la génération de certificats, le routage, la configuration du pare-feu, et enfin, la configuration des clients. Ces étapes garantissent la mise en place d’un réseau privé virtuel sécurisé, offrant une protection fiable des communications sur votre réseau. N’oubliez pas de personnaliser les configurations en fonction de vos besoins spécifiques et de maintenir la sécurité en mettant régulièrement à jour les certificats et en surveillant les journaux du système.

Plus de connaissances

Lorsque vous mettez en place un réseau privé virtuel (VPN) à l’aide d’OpenVPN sur Ubuntu, il est essentiel de comprendre en détail certains aspects clés liés à cette configuration. Approfondissons davantage certains points cruciaux pour garantir une mise en œuvre réussie et sécurisée de votre réseau privé virtuel.

Protocoles de Communication :

OpenVPN offre la flexibilité d’utiliser à la fois le protocole UDP (User Datagram Protocol) et le protocole TCP (Transmission Control Protocol). Bien que l’utilisation d’UDP soit généralement recommandée pour les performances, le choix entre UDP et TCP dépend des exigences spécifiques de votre application. UDP est souvent préféré pour les tâches gourmandes en bande passante, tandis que TCP peut être plus adapté dans des environnements où la fiabilité de la transmission des données est primordiale.

Dans le fichier de configuration d’OpenVPN, la ligne proto détermine le protocole utilisé. Si vous préférez UDP, configurez-la comme suit :

bash
proto udp

Si TCP est préféré, remplacez « udp » par « tcp » :

bash
proto tcp

Cryptographie et Sécurité :

La sécurité d’OpenVPN repose en grande partie sur l’utilisation appropriée de certificats et de clés. Il est crucial de générer ces éléments de manière sécurisée et de les mettre à jour régulièrement pour éviter tout risque de compromission. La commande OpenSSL est utilisée pour générer les certificats et clés, et il est essentiel de suivre les meilleures pratiques en matière de sécurité lors de ce processus.

Assurez-vous également de configurer des paramètres de chiffrement robustes dans le fichier de configuration d’OpenVPN. Le fichier /etc/openvpn/server/server.conf contient les paramètres relatifs à la sécurité. Par exemple, vous pouvez spécifier les paramètres DH (Diffie-Hellman) pour renforcer l’échange de clés :

bash
dh /etc/openvpn/server/dh.pem

Veillez à ajuster la taille des clés DH en fonction des normes de sécurité actuelles. Une taille de 2048 bits est un bon compromis, mais des tailles plus grandes peuvent être envisagées pour une sécurité renforcée.

Gestion des Certificats :

La gestion appropriée des certificats est cruciale pour maintenir la sécurité de votre réseau VPN. Les certificats générés doivent être distribués aux clients de manière sécurisée, et leur expiration doit être surveillée de près.

Un aspect important de la sécurité consiste à créer un fichier de clé TLS (ta.key) pour renforcer la sécurité des communications. Vous pouvez le copier ainsi dans le répertoire des clients :

bash
sudo cp /etc/openvpn/server/ta.key /etc/openvpn/client/

Ensuite, dans le fichier de configuration du client, vous pouvez inclure la ligne suivante pour activer l’utilisation de la clé TLS :

bash
tls-auth ta.key 1

Cela renforce la sécurité en ajoutant une couche de vérification d’authenticité supplémentaire.

Contrôle d’Accès :

OpenVPN permet une gestion fine des droits d’accès en fonction des certificats des clients. Dans le fichier de configuration du serveur, vous pouvez spécifier des directives telles que client-to-client pour autoriser la communication entre clients connectés au VPN et push pour pousser des routes spécifiques aux clients.

bash
client-to-client push "route 192.168.1.0 255.255.255.0"

Ces directives peuvent être adaptées en fonction de vos besoins spécifiques en matière de contrôle d’accès.

Logging et Surveillance :

La configuration d’OpenVPN doit inclure des directives appropriées pour les journaux (log) afin de permettre une surveillance efficace du système. Un niveau de journalisation suffisamment détaillé peut être essentiel pour diagnostiquer d’éventuels problèmes ou activités suspectes.

bash
log-append /var/log/openvpn.log

Veillez à protéger les fichiers de journal contre l’accès non autorisé en ajustant les permissions.

Options Avancées :

Pour des configurations plus avancées, OpenVPN offre de nombreuses options telles que la configuration de serveurs en grappe (cluster), l’utilisation de certificats révoqués (CRL), la mise en place de scripts personnalisés pour des événements spécifiques, etc. Ces fonctionnalités peuvent être explorées en fonction des besoins spécifiques de votre infrastructure.

Conclusion :

En somme, la mise en place d’OpenVPN sur Ubuntu nécessite une compréhension approfondie des protocoles de communication, de la cryptographie, de la gestion des certificats, du contrôle d’accès, de la surveillance et des options avancées. En suivant ces recommandations, vous pouvez établir un réseau privé virtuel sécurisé, répondant à vos besoins spécifiques en matière de sécurité et de performance. Il est également recommandé de consulter régulièrement la documentation d’OpenVPN et les ressources de sécurité pour rester informé des meilleures pratiques et des mises à jour de sécurité.

Bouton retour en haut de la page