Il existe dans le commerce des routeurs VPN prêts à l’emploi (exemple: le Asus RT-AX86U Pro), mais ils peuvent être coûteux et ne pas offrir autant de flexibilité que la création de votre propre routeur VPN à l’aide d’un Raspberry Pi, à moindre coût.
Dans ce tuto, je vais vous montrer comment transformer un Raspberry Pi en un client VPN matériel. Cette configuration vous permettra de router le trafic réseau de tous vos appareils à travers un serveur VPN à l’aide d’un Raspberry Pi.

Pré-requis:
- Un Raspberry Pi
- Un carte microSD (8GB ou plus) pour Raspbian OS
- Un dongle USB Wifi
- Un accès internet
- Un fournisseur de VPN avec un fichier de configuration
.ovpn(Un serveur OpenVPN auto-hébergé ou un service comme NordVPN, CyberGhost, etc.)
Etape 1. Installation de l’OS sur le Raspberry Pi
a. Téléchargement de Raspberry Pi OS
- Téléchargez Raspberry Pi OS (Lite version recommandée pour un usage de routeur) depuis le site officiel Raspberry Pi.
- Flash l’image sur une carte microSD en utilisant un outil comme Raspberry Pi Imager ou Balena Etcher.
b. Configuration initiale
- Insérez la carte microSD dans le Raspberry Pi et démarrez-le.
- Connectez-vous via SSH (ou directement avec clavier et écran) :
- Par défaut, le nom d’utilisateur est
piet le mot de passe estraspberry.
- Par défaut, le nom d’utilisateur est
- Changez le mot de passe par défaut pour des raisons de sécurité :
1passwd - Mettez à jour les packages du système :
1sudo apt-get update && sudo apt-get upgrade -y
Etape 2. Installation du daemon OpenVPN
a. Installation d’OpenVPN
- Installez OpenVPN :
1sudo apt-get install openvpn -y
b. Configuration d’OpenVPN
- Copiez ou créez un fichier de configuration
.ovpnpour le serveur VPN auquel vous souhaitez vous connecter. Ce fichier contient les paramètres de connexion, les certificats et les clés nécessaires. Il est fourni par votre fournisseur de VPN. - Placez le fichier de configuration dans le répertoire
/etc/openvpn/et renommez-le enclient.confpour qu’OpenVPN le détecte automatiquement :1sudo cp /path/to/your/client.ovpn /etc/openvpn/client.conf - Démarrez OpenVPN :
1sudo systemctl start openvpn@client - Vérifiez le statut d’OpenVPN pour vous assurer qu’il est connecté :
1sudo systemctl status openvpn@client
Etape 3. Mise en place du routage
Pour permettre au Raspberry Pi de router le trafic entre les interfaces eth0 (le réseau local) et tun0 (connexion VPN), nous devons activer le routage IP et configurer le NAT (Network Address Translation).
a. Activer le routage IP
- Activez le routage IP sur le Raspberry Pi :
1sudo sysctl -w net.ipv4.ip_forward=1 - Rendre la configuration permanente en modifiant
/etc/sysctl.conf:Ajoutez ou décommentez la ligne suivante :1sudo nano /etc/sysctl.conf1net.ipv4.ip_forward = 1 - Rechargez la configuration :
1sudo sysctl -p
b. Configurer le NAT avec iptables
- Configurez le NAT pour permettre le routage du trafic sortant via l’interface VPN (
tun0) :1sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE - Permettez le trafic entre
eth0ettun0:1 2sudo iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT sudo iptables -A FORWARD -i tun0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT - Sauvegardez les règles iptables pour qu’elles persistent après un redémarrage :
1sudo sh -c "iptables-save > /etc/iptables/rules.v4"
Etape 4. Installation du serveur DHCP
Pour attribuer des adresses IP aux appareils connectés au Raspberry Pi, nous allons installer un serveur DHCP (Dynamic Host Configuration Protocol).
a. Installation du serveur DHCP
- Installez ISC DHCP Server :
1sudo apt-get install isc-dhcp-server -y
b. Configuration du serveur DHCP
- Configurez le fichier
/etc/dhcp/dhcpd.conf:Ajoutez les paramètres suivants pour le réseau1sudo nano /etc/dhcp/dhcpd.confeth0:1 2 3 4 5 6 7 8 9 10default-lease-time 600; max-lease-time 7200; option domain-name "localhost.local"; option domain-name-servers 8.8.8.8, 8.8.4.4; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.50; option routers 192.168.1.1; option broadcast-address 192.168.1.255; }
c. Configurer l’interface eth0 pour DHCP
- Définissez
eth0comme l’interface pour le serveur DHCP :Modifiez la ligne suivante :1sudo nano /etc/default/isc-dhcp-server1INTERFACESv4="eth0"
d. Démarrer le serveur DHCP
- Démarrez le serveur DHCP et configurez-le pour démarrer au boot :
1 2sudo systemctl start isc-dhcp-server sudo systemctl enable isc-dhcp-server
e. Attribition d’un adresse fixe à l’interface eth0
- Attribuez l’adresse IP
192.168.1.1àeth0de manière permanente :Ajoutez à la fin du fichier :1sudo nano /etc/dhcpcd.conf1 2interface eth0 static ip_address=192.168.1.1/24 - Redémarrez le service réseau pour appliquer la configuration :
1sudo systemctl restart dhcpcd
Conclusion
Voilà! Votre Raspberry Pi est maintenant configuré en tant que client VPN matériel. Tous les appareils connectés au Raspberry Pi via l’interface eth0 utiliseront la connexion VPN pour accéder à Internet de manière sécurisée.
