[Raspberry Pi] Installation serveur OpenVPN

 

Installation serveur OpenVPN

 

Version de l’OS Raspbian GNU/Linux 9.3 (stretch)
Version d’OpenVPN 2.4.0

 

Pré-requis Openssl, Easy RSA
Article original Publié le : 3 janvier 2018

Mise a jour le : 9 decembre 2018

 

 

  • Installation
  • Création de l’autorité et des certificats client/serveur
  • Configuration server.conf
  • Firewall
  • Configuration client .ovpn

 

  • Installation

 

Installation des paquets nécessaires

 

Créer le répertoire easy-rsa et y copier le contenu se trouvant dans /usr/share

 

Éditer le fichier wars

remplacer

par

 

Puis modifier les informations sur la localisation du certificat

Les valeurs ORG et OU sont a renseigner dans le cadre d’une organisation, sinon un . suffit

/!\ Nota 1: La valeur export KEY_ALTNAMES est a rajouter, voir plus bas Trouble shooting

 

Enfin de-commenter la clé et modifier par le nom de son serveur.

 

  • Création de l’autorité et des certificats client/serveur

 

Création d’une autorité de certification, en entreprise on utilisera sa propre autorité pour en récupérer les comptes de l’AD.

 

Passer en root pour cette étape

 

Puis recharger le fichier vars et cleaner (Attention la commande clean supprime tous les certificats).

 

Générer le certificat, depuis le répertoire easy-rsa

/!\ Nota 2: Sous Strech, cette erreur apparait, voir plus bas Trouble shooting

Correction: Faire un lien symbolique

 

La génération du certificat s’appuie sur la conf du fichier vars que l’on a déjà renseigné, il y a juste a faire a entrer.

 

Puis générer la clé serveur, il sera demandé un mot de passe, dans mon cas je n’en met pas et un nom de compagnie optionnel, faire entrer également. Valider le certificat et commiter

 

Enfin générer la clé utilisateur, en faire autant que besoin selon le nombre de personnes qui ont besoin d’un acces VPN.

Il sera demandé un mot de passe PEM, creer un mot de passe solide puis continuer la creation.

Il sera egalement demandé un challenge password et optional company name, laisser les vides en fesant entrer egalement. Valider le certificat et commiter

 

Il faut ensuite chiffrer la clé utilisateur avec l’algorithme 3DES.

Entrer le mot de passe PEM pour deverouiller la cle .key et en remettre une pour la clé  .3des.key

 

Puis securiser l’echange de clés, cela va prendre du temps (~45min), revenir dans le repertoire easy-rsa

 

Puis créer une clé partagée

 

  • Configuration server.conf

 

Creer le fichier server.conf et completer le.

/!\ Certains hotels ou points d’accecs font du filtrage de port, on peux donc utiliser le port 443 en tcp

Pour cela 3 modifs a faire:

Coté serveur dans le fichier server.conf

Remplacer proto udp par proto tcp et port 1194 par port 443

Sur le Firewall (iptables et routeur/fw)

Remplacer udp –dport 1194 par tcp –dport 443

Enfin coté client, il faudra également modifier le fichier .ovpn

Remplacer proto udp par proto tcp  et remote ip_public 1194 par remote ip_public 443

 

  • Firewall

 

Installer le paquet netfilter

 

Puis éditer le fichier de conf et renseigner le.

Sauvegarder la configuration

Vérifier iptables

 

Activer ensuite le forward entre 2 cartes réseaux dans le fichier sysctl.conf

Et de-commenter net.ipv4.ip_forward=1

Puis rechargez le fichier de conf.

 

  • Configuration client .ovpn

 

Il y a un script sur Github qui se nomme MakeOpenVPN, qui permet de nous macher tout ca.

Creer le fichier et copier son contenu ci dessous.

 

Rendre le script executable.

Éditer le fichier Default et renseigner le comme ci dessous, il y a juste a changer l’ip public et le port.

 

Il ne reste plus qu’a exécuter le script, repasser en sudo

Il faut mettre le nom du client crée précédemment plus haut.

 

 

Voila c’est crée.

Il ne reste plus qu’a récupérer le fichier .ovpn et a configurer le client.

Dernière chose, pensez a ouvrir les flux sur le FW/Box (nat, filtrage)

 

Pour résumer, la création d’un utilisateur, aller sur

faire un

On utilise la commande ./build-key, ou sinon pour un certificat avec un mot de passe on utilise ./build-key-pass

Puis on valide les informations et on commit.

On chiffre en 3des et enfin on converti le tout en .ovpn

Relancer le scripts MakeOVPN.sh

Ci dessous une capture d’écran du processus.

 

Pour révoquer un certificat, voici un script tout prêt a mettre dans keys.

Faire un lien symbolique pour l’execution

 

Pour révoquer le certificat, il faudra lancer la commande suivante.

 

 

Trouble shooting

Nota 1: https://www.alexruf.net/2014/08/02/install-config-openvpn-internet-tunnel.html

Nota 2: http://www.mimastech.com/2017/12/22/howto-removeresolve-openvpn-message-key_config-pointing-to-the-wrong-version-of-openssl-cnf-on-linux-systems/

Nota 3: # local 192.168.3.20 : Trouvé sur différents forums, en désactivant cela permet le fonctionnement du client vpn depuis un smartphone

# push “redirect-gateway def1” : a normalement de-commenter, mais chez moi mon routeur n’a pas de redirecteur, si bien que je n’accede pas au web sans les dns en dur. du coup je désactive
Cela permet également de faire passer tout le traffic par le vpn, l’ip public est celle de la box.
/!\ Édit 08.01.2017, fonctionne avec l’option bypass-dhcp

 

 

Documentation

 

 

Rating: 5.0/5. From 1 vote.
Please wait...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.