OpenVPN crée un tunnel crypté entre deux points, empêchant un tiers d'accéder à votre trafic réseau. En configurant votre serveur de réseau privé virtuel (VPN), vous devenez votre propre fournisseur VPN. De nombreux services VPN populaires utilisent déjà OpenVPN, alors pourquoi lier votre connexion à un fournisseur spécifique alors que vous pouvez avoir un contrôle total ?
Le premier article de cette série a montré comment installer et configurer un PC Linux pour servir de serveur OpenVPN. Il a également expliqué comment configurer votre routeur afin que vous puissiez accéder à votre serveur VPN à partir d'un réseau extérieur.
Ce deuxième article montre comment installer le logiciel serveur OpenVPN en suivant les étapes personnalisées du wiki OpenVPN.
Installer OpenVPN
Tout d'abord, installez OpenVPN et le easy-rsa
application (pour vous aider à configurer l'authentification sur votre serveur) à l'aide de votre gestionnaire de packages. Cet exemple utilise Fedora Linux; si vous avez choisi quelque chose de différent, utilisez la commande appropriée pour votre distribution :
$ sudo dnf install openvpn easy-rsa
Cela crée des répertoires vides :
/etc/openvpn
/etc/openvpn/client
/etc/openvpn/server
S'ils ne sont pas créés lors de l'installation, créez-les manuellement.
Configurer l'authentification
OpenVPN dépend du easy-rsa
scripts et doit en avoir sa propre copie. Copiez le easy-rsa
scripts et fichiers :
$ sudo mkdir /etc/openvpn/easy-rsa
$ sudo cp -rai /usr/share/easy-rsa/3/* \
/etc/openvpn/easy-rsa/
Plus de ressources Linux
- Aide-mémoire des commandes Linux
- Aide-mémoire des commandes Linux avancées
- Cours en ligne gratuit :Présentation technique de RHEL
- Aide-mémoire sur le réseau Linux
- Aide-mémoire SELinux
- Aide-mémoire sur les commandes courantes de Linux
- Que sont les conteneurs Linux ?
- Nos derniers articles Linux
L'authentification est importante et OpenVPN la prend très au sérieux. La théorie est que si Alice a besoin d'accéder à des informations privées à l'intérieur de l'entreprise de Bob, il est vital que Bob s'assure qu'Alice est vraiment Alice. De même, Alice doit s'assurer que Bob est bien Bob. Nous appelons cela l'authentification mutuelle.
La meilleure pratique actuelle vérifie un attribut à partir de deux des trois facteurs possibles :
- Quelque chose que vous avez
- Quelque chose que vous savez
- Quelque chose que vous êtes
Il y a beaucoup de choix. Cette configuration OpenVPN utilise :
- Certificats : Quelque chose que le client et le serveur ont
- Mot de passe du certificat : Quelque chose que les gens savent
Alice et Bob ont besoin d'aide pour s'authentifier mutuellement. Puisqu'ils font tous deux confiance à Cathy, Cathy assume un rôle appelé autorité de certification (CALIFORNIE). Cathy atteste qu'Alice et Bob sont tous les deux ce qu'ils prétendent être. Parce qu'Alice et Bob font tous deux confiance à Cathy, maintenant ils se font aussi confiance.
Mais qu'est-ce qui convainc Cathy qu'Alice et Bob sont vraiment Alice et Bob ? La réputation de Cathy dans la communauté dépend de sa réussite, et donc si elle veut que Danielle, Evan, Fiona, Greg et d'autres lui fassent également confiance, elle testera rigoureusement les affirmations d'Alice et de Bob. Après qu'Alice et Bob aient convaincu Cathy qu'ils sont vraiment Alice et Bob, Cathy signe des certificats qu'ils doivent partager entre eux et avec le monde.
Comment Alice et Bob savent-ils que Cathy - et non quelqu'un se faisant passer pour elle - a signé les certificats ? Ils utilisent une technologie appelée cryptographie à clé publique :
- Trouvez un algorithme de chiffrement qui chiffre avec une clé et déchiffre avec une autre.
- Déclarez une clé privée et partagez l'autre clé avec le public.
- Cathy partage sa clé publique et une copie en texte clair de sa signature avec le reste du monde.
- Cathy crypte sa signature avec sa clé privée. N'importe qui peut le déchiffrer avec sa clé publique.
- Si la signature déchiffrée de Cathy correspond à la copie en texte clair, Alice et Bob peuvent être sûrs que Cathy l'a vraiment signée.
Vous utilisez cette même technologie chaque fois que vous achetez des biens et des services en ligne.
Mettre en œuvre l'authentification
La documentation d'OpenVPN suggère de configurer une autorité de certification sur un système séparé ou au moins un répertoire séparé sur le serveur OpenVPN. La documentation suggère également de générer des certificats serveur et client à partir du serveur et des clients. Comme il s'agit d'une configuration simple, vous pouvez utiliser le serveur OpenVPN comme sa propre autorité de certification et placer les certificats et les clés dans des répertoires spécifiés sur le serveur.
Générez des certificats à partir du serveur et copiez-les sur chaque client dans le cadre de la configuration du client.
Cette implémentation utilise des certificats auto-signés. Cela fonctionne parce que le serveur se fait confiance et que les clients font confiance au serveur. Par conséquent, le serveur est la meilleure autorité de certification pour signer les certificats.
Depuis le serveur OpenVPN, configurez l'autorité de certification :
$ sudo mkdir /etc/openvpn/ca
$ cd /etc/openvpn/ca
$ sudo /etc/openvpn/easy-rsa/easyrsa init-pki
$ sudo / etc/openvpn/easy-rsa/easyrsa build-ca
Utilisez une phrase de passe facile à retenir mais difficile à deviner.
Configurez la paire de clés du serveur et la demande de certificat :
$ cd /etc/openvpn/server
$ sudo /etc/openvpn/easy-rsa/easyrsa init-pki
$ sudo /etc/openvpn/easy-rsa/easyrsa gen-req OVPNserver2020 pas de passe
Dans cet exemple, OVPNServer2020
est le nom d'hôte que vous avez attribué à votre serveur OpenVPN dans le premier article de cette série.
Générer et signer des certificats
Vous devez maintenant envoyer une demande de serveur à l'autorité de certification et générer et signer le certificat de serveur.
Cette étape copie essentiellement le fichier de requête depuis /etc/openvpn/server/pki/reqs/OVPNserver2020.req
vers /etc/openvpn/ca/pki/reqs/OVPNserver2020.req
pour le préparer pour examen et signature :
$ cd /etc/openvpn/ca
$ sudo /etc/openvpn/easy-rsa/easyrsa \
import-req /etc/openvpn/server/pki/reqs/OVPNserver2020.req OVPNserver2020
Examinez et signez la demande
Vous avez généré une demande, vous devez donc maintenant vérifier et signer les certificats :
$ cd /etc/openvpn/ca
$ sudo /etc/openvpn/easy-rsa/easyrsa \
show-req OVPNserver2020
Connectez-vous en tant que serveur :
$ cd /etc/openvpn/ca
$ sudo /etc/openvpn/easy-rsa/easyrsa \
serveur sign-req OVPNserver2020
Placez une copie des certificats du serveur et de l'autorité de certification à leur place pour que le fichier de configuration les récupère :
$ sudo cp /etc/openvpn/ca/pki/issued/OVPNserver2020.crt \
/etc/openvpn/server/pki/
$ sudo cp /etc/openvpn/ca/pki/ ca.crt \
/etc/openvpn/server/pki/
Ensuite, générez des paramètres Diffie-Hellman pour que les clients et le serveur puissent échanger des clés de session :
$ cd /etc/openvpn/server
$ sudo /etc/openvpn/easy-rsa/easyrsa gen-dh
Presque là
Le prochain article de cette série vous montrera comment configurer et démarrer le serveur OpenVPN que vous venez de créer.
Cet article est basé sur le blog de D. Greg Scott et est réutilisé avec autorisation.