Documentation pour transformer votre Orange Pi en VPN
Dans un monde où tout est connecté, votre maison héberge sans doute une multitude de solutions variées, que ce soit Home Assistant, un NAS, Navidrome ou d’autres services.
Vous vous posez sûrement la question suivante : comment les emporter avec vous sans les exposer à la vue de tous ?
C’est là qu’un VPN entre en jeu. Avec un VPN, vous n’aurez à exposer qu’une seule connexion à l’extérieur, celle du VPN, tout en gardant vos données sécurisées grâce à un système de clés.
Une fois votre VPN configuré, vous pourrez créer des clients pour vos appareils et y accéder depuis l’extérieur en toute sécurité. Le mariage de WireGuard et d’un Orange Pi constitue donc une solution économique et efficace pour sécuriser votre accès à distance.
Mise en place de WireGuard
Avant de commencer ce tutoriel, vous aurez besoin d’avoir déjà configurer votre Orange Pi !
Une fois connecté à votre Orange Pi à votre orangepi.
Installation de WireGuard
apt update
apt install wireguardGénération des clés
WireGuard utilise des paires de clés pour chiffrer les communications. Vous devrez générer une clé privée et une clé publique pour chaque appareil qui se connectera au VPN.
Cette commande génère la clé publique et la clé privée dans deux fichiers appelés privatekey et publickey.
wg genkey | tee privatekey | wg pubkey > publickeyConfiguration du serveur
Créez un fichier de configuration pour le serveur WireGuard, généralement situé dans /etc/wireguard/wg0.conf . Voici un exemple de configuration de base :
[Interface]
PrivateKey = <votre_clé_privée_serveur>
Address = 10.0.0.1/24
ListenPort = 51820Il ne vous manque plus qu’à ajouter la clé privée du serveur qui se trouve dans le fichier privatekey.
Vous pouvez afficher la clé privée du serveur en faisant :
cat privatekeyNous allons donc ajouter un client à notre VPN. Pour cela, vous devez générer la clé privée et la clé publique de votre client avec cette commande
wg genkey | tee clientprivatekey | wg pubkey > clientpublickeyOuvrez votre fichier de configuration de WireGuard et ajoutez les lignes suivantes :
[Peer]
PublicKey = <clé_publique_du_client>
AllowedIPs = 10.0.0.2/32Il ne vous manque plus qu’à ajouter la clé publique du client qui se trouve dans le fichier privatekey.
Vous pouvez afficher la clé publique du client en faisant :
cat clientpublickeyCela doit donner ceci !
[Interface]
PrivateKey = <votre_clé_privée_serveur>
Address = 10.0.0.1/24
ListenPort = 51820
[Peer]
PublicKey = <clé_publique_du_client>
AllowedIPs = 10.0.0.2/32Faites attention à ne pas avoir de doublons d’IP dans votre réseau VPN si vous ajoutez d’autres clients !
Configuration du client
[Interface]
PrivateKey = <clé_privée_client>
Address = 10.0.0.2/32
[Peer]
PublicKey = <clé_publique_du_server>
AllowedIPs = 10.0.0.0/24
Endpoint = Votre_IP_Publique:51820
PersistentKeepalive = 25Il ne vous manque plus qu’à ajouter la clé priver du client qui se trouve dans le fichier clientprivatekey. Et d’ajouter la clé publique du serveur qui se trouve dans le fichier publickey.
Si dans AllowedIPs vous mettez AllowedIPs = 0.0.0.0/0, le client sortira par l’Internet de votre serveur, donc l’adresse IP publique de votre client sera la même que celle de votre serveur lors de sa navigation sur Internet.
Vous avez donc terminé la partie configuration. La configuration du serveur et du client est terminée, nous allons passer à la partie mise en fonctionnement.
Mise en fonctionnement
Vous devrez ouvrir le port WireGuard, c’est-à-dire le port 51820, sur votre box. Pour cela, vous pouvez retrouver la procédure dans notre article “Ouvrir un Port sur sa Box ”.
Si vous ne faites pas cela, votre VPN ne pourra fonctionner que dans votre réseau domestique.
Vous pouvez donc démarrer votre VPN en faisant :
systemctl start wg-quick@wg0Si vous souhaitez que votre VPN démarre en même temps que votre serveur, faites la commande suivante :
systemctl enable wg-quick@wg0Votre VPN est donc maintenant opérationnel. Vous pouvez installer le client WireGuard en suivant le lien ici et ajouter le fichier client que nous avons créé ci-dessus.
Configuration du client Windows
Une fois que vous aurez installé le client Windows que vous pouvez télécharger ici, vous pourrez le démarrer et cela vous donnera ceci.

Vous pouvez cliquer sur ‘Importer’ pour importer votre fichier de client.
Faites attention, le format des fichiers clients doit être en .conf !

Une fois importé, vous devrez le voir apparaître. Vous pouvez donc cliquer sur Activer pour le démarrer.
Faites attention, activer ne veut pas dire que le VPN est réellement fonctionnel !
Vous pouvez savoir s’il fonctionne en regardant plus bas, sous ‘Activer’. Vous pourrez voir le dernier établissement de la liaison et le transfert. Si vous voyez qu’il y a des ‘envoyés’ et des ‘reçus’, c’est plutôt bon signe.

Configuration d’un client debian
Pour la configuration d’un client sur Debian, cela reste assez similaire à la création d’un serveur sur Debian.
Installation de WireGuard
apt update
apt install wireguardImportation du client WireGuard
Une fois WireGuard installé, vous pouvez donc mettre le fichier du client en .conf dans /etc/wireguard
Vous pouvez donc démarrer votre Client VPN en faisant :
systemctl start wg-quick@Nom_du_Fichier_CONFSi vous souhaitez que votre Client VPN démarre en même temps que votre machine / serveur, faites la commande suivante :
systemctl enable wg-quick@Nom_du_Fichier_CONFExemple :
systemctl enable wg-quick@vpnmaisonUn peu d’automatisation : avec ce script, il vous est possible de rendre la création de clients plus rapide.
Son fonctionnement est simple : vous devez mettre les bonnes valeurs dans les variables $plageip, $ipvpn, et $pubeyvpn, et veiller à ce que votre fichier soit bien nommé wg0.conf
Une fois cela fait, faites attention à ce que le script se trouve dans un dossier, car une fois en fonctionnement, il vous demandera les informations dont il a besoin. Ensuite, il créera des fichiers au nom des clients pour les ranger proprement. Il ne vous suffira plus que de redémarrer le VPN pour que cela soit pris en compte. Attention aux doublons, car le script ne les détecte pas.
#!/bin/bash
##MakeInLab
#Partie Generation
genkey() {
wg genkey | tee privkey$nom | wg pubkey > pubkey$nom
privkey=$(cat privkey$nom)
pubkey=$(cat pubkey$nom)
echo "---------------------------------------------------------------------"
echo "La clée privée est : $privkey"
echo "La clée public est : $pubkey"
echo "---------------------------------------------------------------------"
read -p "Quelle IP souhaitez-vous ? exemple [ 21 ] " ip
tee -a /etc/wireguard/wg0.conf << EOF
[Peer]#$nom
PublicKey = $pubkey
AllowedIPs = $plage.$ip/32
EOF
tee -a conf$nom.conf << EOF
[Interface]
PrivateKey = $privkey
Address = $plage.$ip/32
[Peer]
PublicKey = $pubkeyvpn
AllowedIPs = $plage.0/24
Endpoint = $ipvpn:51810
PersistentKeepalive = 25
EOF
}
#Variable pour choix de plage ip Exemple : 10.0.0 ou 172.16.0
plageip=XX.XX.XX
#Variable pour ip publique de votre box
ipvpn=XX.XX.XX.XX
#Variable de la cle publique serveur
pubkeyvpn=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
nom=$1
if [[ $# = 1 ]] ; then
genkey
mkdir ./$nom
mv vpnmachine-$nom.conf ./$nom
mv privkey$nom pubkey$nom ./$nom
else
read -p "Pour qui est cette configuration ? [ Nom ] " nom
genkey
mkdir ./$nom
mv conf$nom.conf ./$nom
mv privkey$nom pubkey$nom ./$nom
fiCas pratique
Vous pouvez ajouter des clients à vos autres machines. Par exemple, si vous avez un autre Orange Pi qui héberge Navidrome, vous lui ajoutez un client. Cela permet aux autres clients de se connecter directement à son IP VPN pour accéder à Navidrome ou au service en question.
Donc, une fois les clients ajoutés au serveur qui héberge des services, vous créez des clients pour vos appareils (téléphone, tablette, PC). À l’extérieur de chez vous, vous lancez le VPN et pouvez accéder au service via leur IP VPN. Cela peut aussi être pratique pour ceux qui veulent héberger un serveur de jeu, comme Minecraft. Vous créez des clients VPN pour vos amis, et ils pourront se connecter au serveur sans ouvrir un port supplémentaire. Si vous mettez un client sur le serveur de jeu, ils n’auront qu’à entrer l’IP VPN pour se connecter.
En clair, avec le VPN, vous pouvez simplement ouvrir un seul port de votre box et avoir accès à une multitude de services, bien plus sécurisé que d’ouvrir un port pour chaque service. Cela vous offre une possibilité quasiment infinie, à faible coût, car un Orange Pi ne coûte pas cher, et côté consommation électrique, cela est très léger.