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.
Etape à suivre :
• Se connecter en SSH avec putty (Login + mot de passe).
![]() |
• 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

• 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

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

• Remplacer la ligne export EASY_RSA="'pwd' par export EASY_RSA="/etc/openvpn/easy-rsa".
export EASY_RSA="/etc/openvpn/easy-rsa"

• 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

• Il est possible d'adapter selon votre localisation les données suivantes (non obligatoire).

• Pour quitter il faut appuyer sur les touches


• 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 .

• 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

• Répondre Y (yes) 2 fois .

• 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).

• 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

• Pour quitter en enregistrant, pour cela il faut appuyer sur les touches


• 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

• Pour quitter en enregistrant, pour cela appuyer sur les touches


• 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

• 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

• Installer l'application Zip :
apt-get install zip

• Compresser les fichiers Client :
zip /home/pi/MONCLIENT1.zip ca.crt MONCLIENT1.crt MONCLIENT1.key MONCLIENT1.ovpn

• Se connecter à la raspberry pi avec le logiciel WinSCP


• Télécharger le fichier MONCLIENT1.zip sur votre ordinateur.

• Pour mettre en place le client VPN sur Raspberry PI cliquer sur l'image ci-desous.
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