Ça fait quelques jours la nouvelle version d'OpenVPN 2.4.9 est sortie, étant ceci une version corrective qui a été lancé afin de corriger la vulnérabilité CVE-2.020-11.810, cela permet de traduire une session client en une nouvelle adresse IP, qui jusqu'alors n'avait pas été enregistrée.
Le problème peut être utilisé pour interrompre un client nouvellement connecté au stade où l'identification du pair a déjà été générée, mais la négociation des clés de session n'est pas terminée (un client peut arrêter les sessions d'autres clients).
À propos d'OpenVPN
Pour ceux qui ne connaissent pas OpenVPN, sachez que il s'agit d'un outil de connectivité basé sur un logiciel gratuit, SSL (Secure Sockets Layer), réseau privé virtuel VPN.
OpenVPN offre une connectivité point à point avec validation hiérarchique des utilisateurs et des hôtes connectés à distance. C'est une très bonne option dans les technologies Wi-Fi (réseaux sans fil IEEE 802.11) et prend en charge une configuration large, y compris l'équilibrage de charge.
OpenVPN est un outil multiplateforme qui a simplifié la configuration des VPN par rapport aux VPN plus anciens et plus difficiles à configurer comme IPsec et le rendant plus accessible aux personnes inexpérimentées dans ce type de technologie.
Quoi de neuf dans OpenVPN 2.4.9?
Outre le correctif du bogue susmentionné, cette nouvelle version met en œuvre un changement dans la procédure de vérification des services utilisateurs interactifs (Sous Windows, l'emplacement de configuration est vérifié en premier, puis une demande est envoyée au contrôleur de domaine.)
Lors de l'utilisation de l'option "- fichier auth-user-pass", s'il n'y a qu'un seul nom d'utilisateur dans le fichier pour demander un mot de passe, pourheure à laquelle une interface est requise pour gérer les informations d'identification (arrêtez de demander un mot de passe en utilisant OpenVPN via l'invite de la console).
Sur la plate-forme Windows, il est autorisé d'utiliser des chaînes de recherche Unicode dans l'option "–cryptoapicert".
Correction d'un problème avec l'impossibilité de télécharger plusieurs CRL (Liste de révocation de certificats) situé dans le même fichier lors de l'utilisation de l'option "–crl-verify" sur les systèmes OpenSSL.
Et les problèmes de compilation sur la plate-forme FreeBSD ont été résolus en utilisant l'indicateur –enable-async-push.
Correction des avis de phrase de passe de clé privée OpenSSL et les certificats expirés sont transmis au magasin de certificats Windows.
Comment installer OpenVPN?
Pour ceux qui souhaitent pouvoir installer OpenVPN sur leur système, ils peuvent le faire en suivant les instructions que nous partageons ci-dessous.
La première chose à faire sera d'installer l'outil et Easy RSA Étant donné que pour émettre des certificats de confiance, une simple autorité de certification (CA) doit être configurée:
sudo apt update sudo apt install openvpn easy-rsa
maintenant nous allons configurer l'autorité de certification avec:
make-cadir ~/openvpn-ca cd ~/openvpn-ca
Y éditons certaines des variables qui aident à décider comment créer les certificats:
gedit vars
Recherchez la section easy-rsa et modifiez-la pour qu'elle ressemble à ceci:
Après quelques ajustements:
# These are the default values for fields # which will be placed in the certificate. # Don't leave any of these fields blank. export KEY_COUNTRY="US" export KEY_PROVINCE="CA" export KEY_CITY="Tustin" export KEY_ORG="SSD Nodes" export KEY_EMAIL= class="hljs-string">"joel@example.com" export KEY_OU="Marketing" # X509 Subject Field export KEY_NAME="vpnserver"
Vous enregistrez et saisissez dans le terminal:
source vars ./build-ca
Une nouvelle clé RSA sera créée et il vous sera demandé de confirmer les détails que vous avez saisis dans le fichier. Fait ça il est maintenant temps de créer les clés publiques / privées du client, où dans [serveur] ils mettent le nom qu'ils veulent.
./build-key-server [server]
Ensuite, ils doivent créer les clés Diffie-Hellman.
./build-dh
Enfin, ils doivent générer une signature HMAC pour renforcer le certificat.
openvpn --genkey --secret keys/ta.key source vars ./build-key client1
Y si vous souhaitez créer des informations d'identification protégées par mot de passe:
vars source
./build-key-pass client1
Nous allons maintenant configurer le serveur OpenVPN
cd ~/openvpn-ca/keys sudo cp ca.crt ca.key vpnserver.crt vpnserver.key ta.key dh2048.pem /etc/openvpn gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf
Nous devons maintenant apporter quelques modifications au fichier de configuration.
sudo nano /etc/openvpn/server.conf
Tout d'abord, assurons-nous qu'OpenVPN recherche les bons fichiers .crt et .key.
Avant de:
ca ca.crt cert server.crt key server.key # This file should be kept secret
Après:
ca ca.crt cert vpnserver.crt key vpnserver.key # This file should be kept secret
Nous appliquons ensuite un HMAC identique entre les clients et le serveur.
Avant de:
;tls-auth ta.key 0 # This file is secret
Après:
tls-auth ta.key 0 # This file is secret key-direction 0
Si vous préférez utiliser un DNS autre que open, vous devez changer les deux lignes qui commencent par push «dhcp-option.
Avant de:
# If enabled, this directive will configure # all clients to redirect their default # network gateway through the VPN, causing # all IP traffic such as web browsing and # and DNS lookups to go through the VPN # (The OpenVPN server machine may need to NAT # or bridge the TUN/TAP interface to the internet # in order for this to work properly). ;push "redirect-gateway def1 bypass-dhcp" # Certain Windows-specific network settings # can be pushed to clients, such as DNS # or WINS server addresses. CAVEAT: # http://openvpn.net/faq.html#dhcpcaveats # The addresses below refer to the public # DNS servers provided by opendns.com. ;push "dhcp-option DNS 208.67.222.222" ;push "dhcp-option DNS 208.67.220.220"
Après:
# If enabled, this directive will configure # all clients to redirect their default # network gateway through the VPN, causing # all IP traffic such as web browsing and # and DNS lookups to go through the VPN # (The OpenVPN server machine may need to NAT # or bridge the TUN/TAP interface to the internet # in order for this to work properly). push "redirect-gateway def1" # Certain Windows-specific network settings # can be pushed to clients, such as DNS # or WINS server addresses. CAVEAT: # http://openvpn.net/faq.html#dhcpcaveats # The addresses below refer to the public # DNS servers provided by opendns.com. push "dhcp-option DNS 208.67.222.222" push "dhcp-option DNS 208.67.220.220"
Puis nous devons sélectionner les chiffrements à utiliser:
Avant de:
# Select a cryptographic cipher. # This config item must be copied to # the client config file as well. ;cipher BF-CBC # Blowfish (default) ;cipher AES-128-CBC # AES ;cipher DES-EDE3-CBC # Triple-DES
Après:
# Select a cryptographic cipher. # This config item must be copied to # the client config file as well. ;cipher BF-CBC # Blowfish (default) cipher AES-256-CBC # AES ;cipher DES-EDE3-CBC # Triple-DES auth SHA512
Enfin, faisons en sorte qu'OpenVPN utilise un compte utilisateur non privilégié au lieu de root, ce qui n'est pas particulièrement sécurisé.
user openvpn group nogroup
Nous pouvons maintenant enregistrer et fermer ce fichier pour créer cet utilisateur:
sudo adduser --system --shell /usr/sbin/nologin --no-create-home openvpn
Et nous activons le service avec:
sudo systemctl enable openvpn@server sudo systemctl start openvpn@server