Créer un serveur OpenVPN sur Debian
Publié le 6 min de lecture
Mis à jour le
Partie 5 sur 6
Dans cette série22 min de lecture au total
Configuration du serveur
Installer OpenVPN
Fenêtre de terminal sudo apt update && apt install openvpnCopier le répertoire easy-rsa
easy-rsa est utilisé pour générer les certificats.
Fenêtre de terminal sudo cp -pr /usr/share/easy-rsa /etc/openvpn/server/ && cd /etc/openvpn/server/easy-rsaFile treeRenommer et éditer le fichier vars depuis le template
Fenêtre de terminal cp vars.example vars && nano varsFile tree- Rechercher le bloc suivant :
/etc/openvpn/server/easy-rsa/vars # Organizational fields (used with 'org' mode and ignored in 'cn_only' mode.)# These are the default values for fields which will be placed in the# certificate. Don't leave any of these fields blank, although interactively# you may omit any specific field by typing the "." symbol (not valid for# email.)#set_var EASYRSA_REQ_COUNTRY "US"#set_var EASYRSA_REQ_PROVINCE "California"#set_var EASYRSA_REQ_CITY "San Francisco"#set_var EASYRSA_REQ_ORG "Copyleft Certificate Co"#set_var EASYRSA_REQ_EMAIL "me@example.net"#set_var EASYRSA_REQ_OU "My Organizational Unit"# Choose a size in bits for your keypairs. The recommended value is 2048. Using# 2048-bit keys is considered more than sufficient for many years into the# future. Larger keysizes will slow down TLS negotiation and make key/DH param# generation take much longer. Values up to 4096 should be accepted by most# software. Only used when the crypto alg is rsa (see below.)- Décommenter les lignes et entrer votre configuration :
/etc/openvpn/server/easy-rsa/vars set_var EASYRSA_REQ_COUNTRY "FR"set_var EASYRSA_REQ_PROVINCE "France"set_var EASYRSA_REQ_CITY "maville"set_var EASYRSA_REQ_ORG "xsec"set_var EASYRSA_REQ_EMAIL "test@gmail.com"set_var EASYRSA_REQ_OU "it"Créer l'Autorité de Certification
- Ici sans mot de passe, en production il est recommandé d’en définir un.
Fenêtre de terminal ./easyrsa init-pkiFenêtre de terminal ./easyrsa build-ca nopass./easyrsa build-ca nopass Note: using Easy-RSA configuration from: /etc/openvpn/server/easy-rsa/varsUsing SSL: openssl OpenSSL 1.1.1k 25 Mar 2021Generating RSA private key, 2048 bit long modulus (2 primes).............................+++++..................................+++++e is 65537 (0x010001)You are about to be asked to enter information that will be incorporatedinto your certificate request.What you are about to enter is what is called a Distinguished Name or a DN.There are quite a few fields but you can leave some blankFor some fields there will be a default value,If you enter '.', the field will be left blank.-----Common Name (eg: your user, host, or server name) [Easy-RSA CA]:CA creation complete and you may now import and sign cert requests.Your new CA certificate file for publishing is at:/etc/openvpn/server/easy-rsa/pki/ca.crtCommon Name [Easy-RSA CA]:Appuyez sur Entrée pour garder le nom par défaut.
Générer le certificat du serveur
- Ici sans mot de passe, en production il est recommandé d’en définir un.
Fenêtre de terminal ./easyrsa build-server-full server nopassGénérer le certificat du client
- Ici sans mot de passe, en production il est recommandé d’en définir un.
Fenêtre de terminal ./easyrsa build-client-full client nopassGénérer le fichier dh.pem
- Ce fichier sera utilisé pour la première connexion avec chiffrement symétrique
Fenêtre de terminal ./easyrsa gen-dh- Cette opération peut prendre du temps, selon la puissance de votre machine.
Générer le fichier de clé
Fenêtre de terminal openvpn --genkey tls-auth ta.keyRéorganiser les fichiers
- Copier l’ensemble du répertoire des fichiers générés du serveur et de l’Autorité de Certification vers
/etc/openvpn/
Fenêtre de terminal cp pki/issued/server.crt pki/private/server.key pki/ca.crt pki/dh.pem ta.key /etc/openvpn/File tree- Copier l’ensemble du répertoire des fichiers générés du client vers
/etc/openvpn/client/
Fenêtre de terminal cp pki/issued/client.crt pki/private/client.key pki/ca.crt pki/dh.pem ta.key /etc/openvpn/client/File tree- Copier l’ensemble du répertoire des fichiers générés du serveur et de l’Autorité de Certification vers
Créer le fichier de configuration depuis le template
Fenêtre de terminal cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/server.conf && cd /etc/openvpnFile tree- Ici nous copions le fichier de configuration dans le répertoire par défaut
/etc/openvpn/et entrons dans le répertoire.
Renommer le fichier dh.pem
Fenêtre de terminal mv /etc/openvpn/dh.pem /etc/openvpn/dh2048.pemTester la configuration
Fenêtre de terminal openvpn --config /etc/openvpn/server.confRedémarrer openvpn sur le serveur
Fenêtre de terminal systemctl daemon-reload && systemctl restart openvpn
Configuration du client
Installer OpenVPN sur le client
Fenêtre de terminal apt update && apt install openvpnCopier les fichiers du répertoire /etc/openvpn/client pour les transférer sur la machine cliente
Sur la machine cliente, déplacez-les vers
/etc/openvpn/File treeCopier et éditer le fichier de configuration client
Fenêtre de terminal cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/ && nano /etc/openvpn/client.confFile tree/etc/openvpn/client.conf ############################################### Exemple de fichier de configuration ## OpenVPN 2.0 côté client pour se connecter ## à un serveur multi-clients. ## ## Cette configuration peut être utilisée ## par plusieurs clients, cependant chaque ## client doit avoir ses propres fichiers ## cert et key. ## ## Sous Windows, vous pouvez renommer ce ## fichier pour qu'il ait une extension .ovpn ################################################ Spécifier que nous sommes un client et que nous# allons récupérer certaines directives du fichier# de configuration depuis le serveur.client# Utiliser le même paramètre que celui que vous# utilisez sur le serveur.# Sur la plupart des systèmes, le VPN ne fonctionnera# pas sauf si vous désactivez partiellement ou# totalement le pare-feu pour l'interface TUN/TAP.;dev tapdev tun# Windows a besoin du nom de l'adaptateur TAP-Win32# depuis le panneau Connexions réseau# si vous en avez plus d'un. Sous XP SP2,# vous devrez peut-être désactiver le pare-feu# pour l'adaptateur TAP.;dev-node MyTap# Nous connectons-nous à un serveur TCP ou# UDP ? Utilisez le même paramètre que# sur le serveur.;proto tcpproto udp# Le nom d'hôte/IP et le port du serveur.# Vous pouvez avoir plusieurs entrées remote# pour équilibrer la charge entre les serveurs.remote my-server-1 1194;remote my-server-2 1194Remplacer
remote my-server-1 1194parremote IP_DU_SERVEUR_OPENVPN 1194Redémarrer OpenVPN sur le client
Fenêtre de terminal sudo systemctl daemon-reload && systemctl restart openvpnSe connecter au serveur OpenVPN
Fenêtre de terminal openvpn --config /etc/openvpn/client.confSi votre configuration est correcte, vous verrez dans la dernière ligne :
Initialization Sequence Completed