> >

OpenVPN Créer un Serveur OpenVPN sur Raspberry Pi

L'objectif de cet article est de vous expliquer comment créer un serveur OpenVPN (réseau privée) sur Raspberry Pi, dans l'optique de pouvoir se connecter à une autre Raspberry Pi connectée à internet grâce à une routeur 4G.



Terminal Etape à suivre :

Se connecter en SSH avec putty (Login + mot de passe).
Connexion SSH Putty


Mettre à jour la Raspberry Pi, répondre Y (yes) à la question pour utiliser l'espace de disque.
sudo apt-get update
sudo apt-get upgrade


Installer l'application OpenVPN et OpenSSL qui permettra de sécuriser la connexion Serveur - Client VPN.
Répondre Y (yes) à la question pour utiliser l'espace de disque.
sudo apt-get install openvpn openssl
installation d'openVPN et OpenSSl sur raspberry PI

Copier les scripts "easy-rsa" présents dans le répertoire ("/usr/share/easy-rsa") dans le dossier d'installation d'Open VPN en tapant :
sudo cp -r /usr/share/easy-rsa /etc/openvpn/easy-rsa
déplacer le dossier easy-rsa

Editer le fichier présent dans le répertoire ("/etc/openvpn/easy-rsa/vars") :
sudo nano /etc/openvpn/easy-rsa/vars
édition du fichier vars

Remplacer la ligne export EASY_RSA="'pwd' par export EASY_RSA="/etc/openvpn/easy-rsa".
export EASY_RSA="/etc/openvpn/easy-rsa" édition du fichier vars

• Pour la sécurité, définir le type de chiffrement 1024 bits, 2048 bits ou 4096 bits.
Attention plus la valeur de la clé est élevé plus les performances de la Raspberry Pi vont se dégrader.
export KEY_SIZE=2048 édition du fichier vars

• Il est possible d'adapter selon votre localisation les données suivantes (non obligatoire).
édition du fichier vars
• Pour quitter il faut appuyer sur les touches Ctrl+X puis , répondre Y (yes) à la question pour modifier le fichier, valider en appuyant sur Entrée Entrée.


Taper les commandes suivantes :
cd /etc/openvpn/easy-rsa
sudo su
source vars
ln -s openssl-1.0.0.cnf openssl.cnf

Initialiser et créer les clés pour OpenVPN.
./clean-all
./build-ca OpenVPN
Appuyer sur Entrée à chaque fois.


Créer les clés pour le serveur VPN.
./build-key-server server
Répondre Y (yes) 2 fois .
Build Clé serveur VPN

Créer la clé pour votre client VPN dans mon exemple le client s'appelle RPI2.
Définir un mot de passe qu'il faudra taper 2 fois pour éviter les erreurs.
./build-key-pass MONCLIENT1
Génération clé avec mot de passe client OpenVPN
Répondre Y (yes) 2 fois .
Génération clé avec mot de passe client OpenVPN

• Pour terminer la génération des certificats en tapant :
./build-dh
Cette étape peut être longue en fonction du type de chiffrement choisis (1024, 2048 ou 4096 bits).
generation certificat key openVPN

• Pour Générer les fichiers de configuration du serveur OpenVPN :
sudo nano /etc/openvpn/openvpn.conf

Taper les réglages suivants :
dev tun
proto udp
port 1194
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh2048.pem
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.4.4"
push "dhcp-option DNS 8.8.8.8"
log-append /var/log/openvpn
persist-key
persist-tun
user nobody
group nogroup
status /var/log/openvpn-status.log
verb 3
client-to-client
comp-lzo
configuration serveur OpenVPN
• Pour quitter en enregistrant, pour cela il faut appuyer sur les touches Ctrl+X puis , répondre Y (yes) à la question pour modifier le fichier, valider en appuyant sur Entrée Entrée.


Créer un fichier qui contiendra un script dans "/etc/init.d/rpivpn" :
sudo nano /etc/init.d/rpivpn
• Le script permettra au client du tunnel VPN de se connecter sur internet, il doit contenir :
#! /bin/sh
### BEGIN INIT INFO
# Provides: rpivpn
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: VPN initialization script
### END INIT INFO
echo 'echo "1" > /proc/sys/net/ipv4/ip_forward' | sudo -s
iptables -A INPUT -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -F POSTROUTING
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
script connexion internet client VPN
• Pour quitter en enregistrant, pour cela appuyer sur les touches Ctrl+X puis , répondre Y (yes) à la question pour modifier le fichier, valider en appuyant sur Entrée Entrée.


Ajouter les droits au script et l'affecter en script Init.
sudo chmod +x /etc/init.d/rpivpn
sudo update-rc.d rpivpn defaults

Lancer le script et relancer le serveur OpenVPN.
sudo /etc/init.d/rpivpn
sudo /etc/init.d/openvpn restart
exécution script redémarrage client VPN

Créer le fichier .ovpn du client VPN :
cd /etc/openvpn/easy-rsa/keys

Editer le fichier .ovpn du client VPN :
nano MONCLIENT1.ovpn


Taper en adaptant les paramètres suivants :
dev tun
client
proto udp
remote IP_ROUTEUR_ADSL 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert MONCLIENT1.crt
key MONCLIENT1.key
comp-lzo
verb 3
parametres client openVPN

Installer l'application Zip :
apt-get install zip
installation paquet Zip

Compresser les fichiers Client :
zip /home/pi/MONCLIENT1.zip ca.crt MONCLIENT1.crt MONCLIENT1.key MONCLIENT1.ovpn
compression Zip Client OpenVPN

Se connecter à la raspberry pi avec le logiciel WinSCP WinSCP pour télécharger sur votre ordinateur les fichiers de configuration du client OpenVPN :
WinSCP connexion raspberry PI

Télécharger le fichier MONCLIENT1.zip sur votre ordinateur.
Télécharger le fichier Zip du client OpenVPN

• Pour mettre en place le client VPN sur Raspberry PI cliquer sur l'image ci-desous.



Terminal Aide mémoire des commandes du terminal :

• Pour désinstaller OpenVPN, répondre Y (yes) à la question pour libérer l'espace de disque :
sudo apt-get autoremove openvpn

• Pour désinstaller OpenSSL, répondre Y (yes) à la question pour libérer l'espace de disque :
sudo apt-get autoremove openssl

• Pour supprimer un fichier (il faut être placé dans le dossier du fichier).
sudo rm NOM_DU_FICHIER

• Pour supprimer un répertoire.
sudo rm -r /CHEMIN/DU/REPERTOIRE

• Pour redémarrer la Raspberry PI.
sudo shutdown -r now

• Pour arrêter la Raspberry PI.
sudo shutdown -h now


📌 Politique de Confidentialité | Cet article peut inclure du contenu sponsorisé et rémunérédes, des liens d'affiliation, notamment des liens Amazon (programme Partenaire Amazon EU)
me permettant de toucher une commission au pourcentage sur la vente des produits affiliés (sans augmentation de prix pour l'acheteur).

❤️💟 Si vous aimez les articles et pour soutenir le développement du site n'hésitez pas à partager sur les réseaux sociaux youtube facebook instagram pinterest tiktok