Comment installer un serveur OpenVPN sur Debian 11/12

Installation et configuration un serveur OpenVPN sur Debian 11 / 12

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.

Laisser un commentaire