Vous êtes peut-être équipé dans votre foyer d’un routeur 4G et il vous est venu à l’idée de vous connecter à votre réseau local informatique ou de gestion de votre domotique, depuis l’extérieur, à savoir en pensant par une connexion 4G par exemple. Si vous avez essayé, vous avez dû vous retrouver bloqué, quand vous avez voulu vous connecter à l’adresse IP locale de vos appareils ou de votre routeur. Comment se connecter à un routeur 4G depuis l’extérieur ? Quelle configuration pour accéder à son réseau local depuis un routeur 4G ? Je vous explique en détail la procédure dans cet article.
Objectifs :
L’objectif de ce cours est de créer un réseau virtuel privé (VPN). Possédant un routeur 4G (TP-Link MR200) pour me connecter à internet avec le réseau mobile partir d’une carte SIM j’ai voulu comme je le fait avec ma box internet classique me connecter à ma domotique depuis l’extérieur. |
![]() |
Le soucis c’est que l’opérateur téléphonique « bride » la connexion internet.
L’opérateur mobile ne donne pas d’adresse IP publique, l’IP est dynamique, il bloque les connexions entrantes sur le réseau mobile (Orange, free, SFR…) afin de ne pas saturer les réseaux.
En cherchant sur la toile j’ai trouvé la solution c’est le VPN pour Virtual Private Network (Réseau Privé Virtuel en français).
C’est un réseau sécurisé permettant d’aller sur internet, de se connecter depuis l’extérieur sur son réseau local, accéder à ses données personnelles depuis n’importe où.
J’utiliserai deux Raspberry Pi pour cet exemple. Sur la première RPI je vais installer le serveur VPN et la seconde sera mon client. | ![]() |
Le serveur VPN est placé sous un routeur ADSL classique (box ADSL) et le client VPN sous un routeur 4G.
L’intérêt de cette configuration est de pouvoir accéder à mon réseau local placé sous le routeur 4G qui ne délivre pas d’adresse IP publique, ce qui m’empêche en temps normal de pouvoir voir de l’extérieur mon réseau local.
L’inconvénient des abonnements téléphonique 4G données (data) c’est que l’on ne dispose pas d’une adresse IP publique et ni d’IP fixe (WAN) c’est à dire que l’on ne peut pas s’y connecter comme on le fait avec une box internet en ADSL ou fibre.
Ce problème est contournable en créant un VPN Virtual Private Network (Réseau Privé Virtuel), un tunnel chiffré par lequel transiteront toutes nos données.
![]() |
|
1. Serveur OpenVPN :
On va utiliser la première raspberry Pi en tant que serveur, pour cela il faudra suivre les étapes suivantes : | ![]() |
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 puis , répondre Y (yes) à la question pour modifier le fichier, valider en appuyant sur 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 .
• 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 puis , répondre Y (yes) à la question pour modifier le fichier, valider en appuyant sur 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
![]() |
|
MASQUERADE
• Pour quitter en enregistrant, pour cela appuyer sur les touches puis , répondre Y (yes) à la question pour modifier le fichier, valider en appuyant sur 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
• 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 pour télécharger sur votre ordinateur les fichiers de configuration du client OpenVPN :
• Télécharger le fichier MONCLIENT1.zip sur votre ordinateur.
2. Client OpenVPN :
On va maintenant utiliser la seconde raspberry Pi en tant que client, pour cela il faudra suivre les étapes suivantes : | ![]() |
Etape à suivre :
• Se connecter en SSH avec putty (Login + mot de passe).
• Mettre à jour la Raspberry Pi.
sudo apt-get update
sudo apt-get upgrade
• Installer openVPN sur votre Raspberry Pi.
sudo apt install openvpn
• Répondre Y (yes) à la question pour utiliser l’espace de disque.
• Pour empêcher le lancement d’OpenVPN au démarrage de la Raspberry PI taper :
sudo update-rc.d -f openvpn remove
• Lancer WinSCP pour transférer sur la Raspberry Pi les fichiers de configuration du client OpenVPN :
• Créer un nouveau répertoire « VPN » dans « /home/pi/VPN » :
• Aller dans le répertoire VPN crée :
cd /home/pi/VPN
• Lancer OpenVPN avec la configuration adaptée « ma_config_OpenVPN.ovpn » pour moi c’est MONCLIENT1.ovpn puis taper le mot de passe (Password)du client VPN :
sudo openvpn --config MONCLIENT1.ovpn
• Une erreur survient :
ERROR: Cannot open TUN/TAP dev /dev/net/tun: No such device (errno=19)
• Pour résoudre le problème il faut redémarrer la Raspberry Pi pour éteindre la Raspberry Pi, taper :
sudo shutdown -h now
• Redémarrer la Raspberry PI, puis relancer la connexion au serveur VPN :
cd /home/pi/VPN
sudo openvpn --config MONCLIENT1.ovpn
• Pour voir les clients connectés au serveur OpenVPN (openvpn-status.log est dans le répertoire /var/log/) :
sudo nano /var/log/openvpn-status.log
• Vous pourrez à présent accéder à votre Raspberry Pi Client 1 (placée derrière le routeur 4G) à partir de n’importe quel autre appareil (client 2) en utilisant la connexion sécurisée VPN.
![]() |
|
3. 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
Si vous êtes à la recherche d’un fournisseur VPN, vous pouvez consulter l’article NordVPN Avis et Test qui peut vous aider à faire votre choix.
Il liste toutes les applications compatibles proposées sur les différentes plateformes ordinateur, smartphone ou tablette et les multiples systèmes d’exploitation compatibles : Android, iOS, Windows, Mac, etc.
L’article détaille également dans un descriptif toutes les fonctionnalités et caractéristiques de ce fournisseur, telles les connexions multiples, l’accès à Netflix, le cache de l’adresse IP, les nombreux serveurs disponibles à la fois rapides et sécurités, la disponibilité dans divers pays, le double cryptage pour garantir une sécurité optimale.