Dans cette partie, nous allons configurer le serveur openvpn sur SRV01. Celui-ci s’appuyera sur le serveur PKI précédemment configuré.
Commençons d’abord par donner les autorisations a un utilisateur d’utiliser la commande sudo afin d’éviter une utilisation abusive du compte root.
Passez root:
On remarque que l’utilisateur user n’appartient pas au groupe sudo
Ajoutez l’utilisateur au groupe sudo:
Vérifier l’appartenance de l’utilisateur au groupe sudo:
Tapez la commande suivante afin d’installer les dépendances nécessaires pour la suite du guide
Créez le dossier easy-rsa à la racine.
Faites le lien symbolique suivant.
Accordez les droits suivants afin de restreindre l’accès a ce dossier, considéré comme sensible.
Allez dans le dossier précédemment linké.
Copiez le fichier vars.exemple dans vars afin de l’adapter à nos besoins sans perdre la configuration par défaut.
Éditez ce fichier.
Deux choix cryptographiques s’offrent à nous, rsa et les courbes elliptiques. Ici nous choisirons les courbes elliptiques car cette méthode cryptographique a plusieurs avantages: “The benefit of ECC compared to RSA is that it provides the same security but with smaller bit sizes” IEEE. Ceci résultant en un sécurité cryptographique plus fort pour des clés plus petites, et un temps de calcul amoindri par rapport à rsa.
Ajoutez la ligne suivante.
Exécutez le script easyrsa avec l’argument init-pki.
Exécutez le script easyrsa avec l’argument gen-req openvpn-server afin de généré une clé privée et un requête pour la demande de signature à la CA.
Copiez le fichier .key dans le dossier /etc/openvpn/server.
Copiez le fichier .req sur la CA dans le dossier /tmp pour signature.
Passage sur la machine contenant la CA précédemment installée.
Exécutez le script easyrsa pour importer la requête.
Exécutez le script easyrsa pour signer la requête.
Passage sur SRV01.
Copiez le fichier ca.crt dans le dossier /etc/openvpn/server, correspondant au certificat (auto-signé) de la CA.
Récupérez le fichier openvpn-server.crt dans le dossier /etc/openvpn/server, correspondant au certificat signé par la CA.
Vous devriez alors avoir 4 fichiers dans le dossier /etc/openvpn/server:
openvpn.net
“Control channel encryption uses a pre-shared static key (like the –tls-auth key) to encrypt control channel packets.
Encrypting control channel packets has three main advantages:
. It provides more privacy by hiding the certificate used for the TLS connection.
. It is harder to identify OpenVPN traffic as such.
. It provides “poor-man’s” post-quantum security, against attackers who will never know the pre-shared key (i.e. no forward secrecy).”
Générez la clé de pré-partage .key.
Copiez la .key créée dans le dossier /etc/openvpn/server.
Créez le dossier keys, qui accueillera .
mkdir -p ~/client-configs/keys
Y accordez les droits suivants.
chmod -R 700 ~/client-configs
Générez la requête pour le client android.
./easyrsa gen-req client1 nopass
Copiez le .key généré dans le dossier dédié précédemment créé.
cp pki/private/client1.key ~/client-configs/keys/
Exporter la requête dans le dossier /tmp de la CA pour signatures.
scp pki/reqs/client1.req ca-manager@172.19.110.123:/tmp
Passage sur la machine contenant la CA précédemment installée.
Importez la requête.
./easyrsa import-req /tmp/server.req server
Signez la requête.
./easyrsa sign-req server server
Exportez le .crt dans le dossier dédié.
scp pki/issued/client1.crt srv01@172.19.110.102:/tmp
Passage sur SRV01.
Copiez le certificat de la CA dans le dossier client.
Éditez le fichier server.conf.
Ajoutez les lignes suivantes.
Pour l’algorithme de chiffrement, nous avons choisi AES-GCM, car plus performant que l’AES-CBC, et offrant un robustesse comparable. researchgate
Éditez le serveur.conf.
Choisissez votre protocol et votre port pour le serveur VPN.
Éditez le fichier sysctl.conf afin de pouvoir ajouter des options de routage.
Activez l’IP forward.
Installez ufw pour avoir un pare feu.
Éditez le fichier before.rules.
Ajoutez la règle de NAT suivante.
Éditez le fichier ufw.
Ajoutez la ligne suivante.
Autorisez le port/protocole que vous avez choisi.
Autorisez aussi les ports principaux.
sudo ufw allow OpenSSH
Activez le pare-feu.
Activez le service openvpn.
Celui-ci est désormais actif.
Copiez le client.conf dans le nouveau dossier.
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf
Créez le dossier files ui accueillera les fichier .ovpn
mkdir -p ~/client-configs/files
Éditez client.conf.
vim ~/client-configs/base.conf
Ajoutez les lignes suivantes.
Créez le fichier config.sh.
Y écrire le script suivant.
Copiez le .key dans le dossier client.
Mettez y les droits suivants.
Exécutez le script:
cd ~/client-configs
./make_config.sh client1
tree ~/client-configs/
SRV01/vars
CA/vars
SRV01/server.conf
SRV01/CLIENT/base.conf
CLIENT/client1.ovpn