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 :
bashsudo 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 :
bashsudo mkdir /etc/openvpn/server
Puis, copiez le fichier de configuration d’exemple vers ce répertoire :
bashsudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/server/
Décompressez le fichier :
bashsudo gzip -d /etc/openvpn/server/server.conf.gz
Maintenant, ouvrez le fichier de configuration dans un éditeur de texte, par exemple, nano :
bashsudo 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 :
bashcd /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 :
bashsudo nano /etc/sysctl.conf
Décommentez la ligne suivante pour activer le routage :
bashnet.ipv4.ip_forward=1
Appliquez les modifications avec la commande suivante :
bashsudo 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) :
bashsudo iptables -A INPUT -p udp --dport 1194 -j ACCEPT
Sauvegardez les règles du pare-feu pour qu’elles soient persistantes :
bashsudo apt install iptables-persistent sudo netfilter-persistent save sudo netfilter-persistent reload
Démarrage du Service OpenVPN :
Activez et démarrez le service OpenVPN :
bashsudo 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 :
bashsudo 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 :
bashcd /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 :
bashproto udp
Si TCP est préféré, remplacez « udp » par « tcp » :
bashproto 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 :
bashdh /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 :
bashsudo 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 :
bashtls-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.
bashclient-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.
bashlog-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é.