Configuration

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:

openvpn

On remarque que l’utilisateur user n’appartient pas au groupe sudo

openvpn

Ajoutez l’utilisateur au groupe sudo:

openvpn

Vérifier l’appartenance de l’utilisateur au groupe sudo:

openvpn

Tapez la commande suivante afin d’installer les dépendances nécessaires pour la suite du guide

openvpn

Créez le dossier easy-rsa à la racine.

openvpn

Faites le lien symbolique suivant.

openvpn

Accordez les droits suivants afin de restreindre l’accès a ce dossier, considéré comme sensible.

openvpn

Allez dans le dossier précédemment linké.

openvpn

Copiez le fichier vars.exemple dans vars afin de l’adapter à nos besoins sans perdre la configuration par défaut.

openvpn

Éditez ce fichier.

openvpn

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.

openvpn

Exécutez le script easyrsa avec l’argument init-pki.

openvpn

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.

openvpn

Copiez le fichier .key dans le dossier /etc/openvpn/server.

openvpn

Copiez le fichier .req sur la CA dans le dossier /tmp pour signature.

openvpn

Passage sur la machine contenant la CA précédemment installée.

Exécutez le script easyrsa pour importer la requête.

openvpn

Exécutez le script easyrsa pour signer la requête.

openvpn

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

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.

openvpn

Copiez la .key créée dans le dossier /etc/openvpn/server.

openvpn

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.

openvpn

Éditez le fichier server.conf.

openvpn

Ajoutez les lignes suivantes.

openvpn

Pour l’algorithme de chiffrement, nous avons choisi AES-GCM, car plus performant que l’AES-CBC, et offrant un robustesse comparable. researchgate

openvpn

openvpn

openvpn

openvpn

openvpn

Éditez le serveur.conf.
Choisissez votre protocol et votre port pour le serveur VPN.

openvpn

Éditez le fichier sysctl.conf afin de pouvoir ajouter des options de routage.

openvpn

Activez l’IP forward.

openvpn

Installez ufw pour avoir un pare feu.

openvpn

Éditez le fichier before.rules.

openvpn

Ajoutez la règle de NAT suivante.

openvpn

Éditez le fichier ufw.

openvpn

Ajoutez la ligne suivante.

openvpn

Autorisez le port/protocole que vous avez choisi.

openvpn

Autorisez aussi les ports principaux.

sudo ufw allow OpenSSH

openvpn

Activez le pare-feu.

openvpn

Activez le service openvpn.

openvpn

Celui-ci est désormais actif.

openvpn

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.

openvpn

openvpn

openvpn

openvpn

Créez le fichier config.sh.

openvpn

Y écrire le script suivant.

openvpn

Copiez le .key dans le dossier client.

openvpn

Mettez y les droits suivants.

openvpn

Exécutez le script:

cd ~/client-configs
./make_config.sh client1

tree ~/client-configs/

openvpn

Fichiers de configuration

SRV01/vars
CA/vars
SRV01/server.conf
SRV01/CLIENT/base.conf
CLIENT/client1.ovpn