OpenVPN est une solution VPN (réseau privé virtuel) robuste et open source qui permet des connexions sécurisées à des réseaux distants via Internet. Dans ce guide, nous allons vous montrer comment configurer OpenVPN sur un serveur Debian.
Méthode 1 :
Installation à l’aide d’un script
Commencez par obtenir le script d’installation et le rendre exécutable :
$ curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh
$ chmod +x openvpn-install.sh
Ensuite, exécutez le script (assurez-vous d’avoir les privilèges root et le module TUN activé) :
$ ./openvpn-install.sh
Lors de la première exécution, vous serez invité à répondre à quelques questions pour configurer votre serveur VPN. Une fois OpenVPN installé, vous pouvez réexécuter le script pour :
$ ./openvpn-install.sh
Bienvenue sur OpenVPN-install !
Le dépôt git est disponible à l'adresse : https://github.com/angristan/openvpn-install
Il semble qu'OpenVPN soit déjà installé.
Que souhaitez-vous faire ?
1) Ajouter un nouvel utilisateur
2) Révoquer un utilisateur existant
3) Supprimer OpenVPN
4) Quitter
Choisissez une option [1-4] :
Cela vous permet d’ajouter de nouveaux utilisateurs ou de révoquer des utilisateurs existants.
Méthode 2 :
Étape 1 : Mettre à jour et mettre à niveau Debian
Avant d’installer un logiciel, il est essentiel de mettre à jour et mettre à niveau votre système Debian. Exécutez les commandes suivantes :
$ sudo apt update
$ sudo apt upgrade
Étape 2 : Installer OpenVPN
Installez OpenVPN sur votre serveur Debian avec la commande suivante :
$ sudo apt install openvpn easy-rsa
Étape 3 : Générer les certificats et les clés
OpenVPN s’appuie sur des certificats et des clés pour l’authentification du client et du serveur. Pour générer ces fichiers, utilisez le script easy-rsa inclus :
$ make-cadir ~/openvpn-ca && cd ~/openvpn-ca
Modifiez le fichier vars
pour configurer les variables de l’autorité de certification :
set_var EASYRSA_REQ_COUNTRY "FR"
set_var EASYRSA_REQ_PROVINCE "Ile-de-France"
set_var EASYRSA_REQ_CITY "Paris"
set_var EASYRSA_REQ_ORG "My Company"
set_var EASYRSA_REQ_EMAIL "[email protected]"
set_var EASYRSA_REQ_OU "My Organizational Unit"
Générez les certificats et clés requis :
$ ./easyrsa init-pki
$ ./easyrsa build-ca
$ ./easyrsa gen-req server nopass
$ ./easyrsa sign-req server server
$ ./easyrsa gen-dh
$ openvpn --genkey --secret pki/ta.key
Ces certificats et clés seront stockés dans le répertoire /root/openvpn-ca/pki
.
Étape 4 : Configurer OpenVPN
Après avoir généré les certificats et les clés, procédez à la configuration d’OpenVPN. Créez un nouveau fichier de configuration avec la commande suivante :
$ zcat /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf > /dev/null
Copiez les fichiers nécessaires dans le répertoire OpenVPN :
$ cp /root/openvpn-ca/pki/{ca.crt,dh.pem,ta.key} /etc/openvpn
$ cp /root/openvpn-ca/pki/issued/server.crt /etc/openvpn
$ cp /root/openvpn-ca/pki/private/server.key /etc/openvpn
Modifiez /etc/openvpn/server.conf
pour qu’il corresponde à ce qui suit :
ca ca.crt
cert server.crt
key server.key # Gardez ce fichier sécurisé
dh dh.pem
;tls-auth ta.key 0
tls-crypt ta.key
Enregistrez et fermez le fichier.
Étape 5 : Activer le transfert IP
Modifiez la configuration sysctl :
$ sudo nano /etc/sysctl.conf
Décommentez la ligne suivante :
net.ipv4.ip_forward=1
Appliquez les changements :
$ sudo sysctl -p
Étape 6 : Démarrer et activer OpenVPN
Démarrez et activez le service OpenVPN :
$ sudo systemctl start openvpn@server
$ sudo systemctl enable openvpn@server
Le @server
spécifie le fichier de configuration que vous avez créé précédemment.
Étape 7 : Configurer le pare-feu
Autorisez le trafic OpenVPN à traverser le pare-feu en créant une nouvelle règle :
$ sudo ufw allow OpenVPN
Étape 8 : Se connecter au serveur OpenVPN
Avec le serveur OpenVPN opérationnel, vous pouvez vous y connecter à partir d’un ordinateur client. Installez le logiciel client OpenVPN et téléchargez le fichier de configuration client à partir du serveur :
$ ./easyrsa gen-req client1 nopass
$ ./easyrsa sign-req client client1
$ cp pki/private/client1.key /etc/openvpn/client/
$ cp pki/issued/client1.crt /etc/openvpn/client/
$ cp pki/{ca.crt,ta.key} /etc/openvpn/client/
Créez un fichier de configuration client dans le répertoire /root/openvpn-ca
:
$ cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /root/openvpn-ca/
Modifiez le fichier à l’aide de nano
et configurez les variables :
remote mon-serveur-1 1194 # mon-serveur-1 est l'IP publique du serveur
user nobody
group nogroup
;ca ca.crt
;cert client.crt
;key client.key
;tls-auth ta.key 1
key-direction 1
Créez un script pour compiler la configuration de base avec les fichiers de certificat, clé et chiffrement nécessaires :
$ nano config_gen.sh
Incluez le contenu suivant :
#!/bin/bash# Premier argument : identifiant du client
KEY_DIR=/etc/openvpn/client
OUTPUT_DIR=/root
BASE_CONFIG=/root/openvpn-ca/client.conf
cat${BASE_CONFIG} \
<(echo -e '<ca>') \
${KEY_DIR}/ca.crt \
<(echo -e '</ca>\n<cert>') \
${KEY_DIR}/${1}.crt \
<(echo -e '</cert>\n<key>') \
${KEY_DIR}/${1}.key \
<(echo -e '</key>\n<tls-crypt>') \
${KEY_DIR}/ta.key \
<(echo -e '</tls-crypt>') \
> ${OUTPUT_DIR}/${1}.ovpn
Rendez le script exécutable :
$ chmod 700 /root/openvpn-ca/config_gen.sh
$ ./config_gen.sh client1
Cette commande va créer un fichier client1.ovpn
dans le répertoire /root/
. Copiez ce fichier sur votre ordinateur client et utilisez-le pour vous connecter au serveur OpenVPN.
Conclusion
Dans ce tutoriel, nous avons montré comment installer et configurer OpenVPN sur un serveur Debian. Avec OpenVPN, vous pouvez accéder de manière sécurisée à des réseaux distants et à leurs ressources de n’importe où dans le monde.