TL;DR: j'installe Wireguard sur un VPS, je me connecte à lui depuis mon routeur domestique sous OpenWRT, et j'accÚde au réseau local depuis mon téléphone.
Si vous avez une infrastructure personnelle sur un serveur domestique ou de nombreux appareils gérés par IP chez vous, vous souhaitez sans doute y accéder depuis votre travail, dans le bus, le train ou le métro. Le plus souvent, pour des tùches similaires, on achÚte une adresse IP chez un fournisseur, aprÚs quoi les ports de chaque service sont redirigés vers l'extérieur.
Au lieu de cela, j'ai configuré un VPN avec accÚs au réseau local à domicile. Les avantages de cette solution :
- Transparence: je me sens comme chez moi dans toutes les circonstances.
- Simplicité: configuré et oublié, pas besoin de penser à rediriger chaque port.
- Prix: j'ai déjà un VPS, pour ce genre de tùches un VPN moderne coûte presque rien en ressources.
- Sécurité: rien n'est exposé à l'extérieur, je peux laisser MongoDB sans mot de passe et personne ne volera les données.
Comme toujours, il y a aussi des inconvĂ©nients. Tout d'abord, vous devrez configurer chaque client sĂ©parĂ©ment, y compris cĂŽtĂ© serveur. Cela peut ĂȘtre gĂȘnant en cas de nombreux appareils Ă partir desquels vous souhaitez accĂ©der aux services. DeuxiĂšmement, vous pourriez avoir un rĂ©seau local avec des plages d'adresses qui se chevauchent au travail - il faudra rĂ©soudre ce problĂšme.
Nous aurons besoin de :
- VPS (dans mon cas sur Debian 10).
- Routeur sous OpenWRT.
- Téléphone.
- Serveur domestique avec un service web pour vérification.
- De bonnes mains.
Pour la technologie VPN, je vais utiliser Wireguard. Cette solution a aussi ses points forts et faibles, que je ne vais pas décrire. Pour le VPN, j'utilise un sous-réseau 192.168.99.0/24, et chez moi j'ai 192.168.0.0/24.
Configuration de VPS
Un VPS mĂȘme trĂšs basique Ă 30 roubles par mois suffira, si vous ĂȘtes chanceux de pouvoir en attraper un. .
Toutes les opérations sur le serveur sont effectuées en tant que root sur une machine propre, si nécessaire ajoutez `sudo` et adaptez les instructions.
Wireguard n'a pas encore été ajouté à la version stable, donc je fais `apt edit-sources` et j'ajoute les backports à la fin du fichier avec deux lignes :
deb http://deb.debian.org/debian/ buster-backports main
# deb-src http://deb.debian.org/debian/ buster-backports main
Le paquet s'installe de la maniĂšre habituelle : apt update && apt install wireguard.
Ensuite, générons une paire de clés : wg genkey | tee /etc/wireguard/vps.private | wg pubkey | tee /etc/wireguard/vps.public. Répétez cette opération encore deux fois pour chaque appareil participant au schéma. Changez les chemins des fichiers de clés pour les autres appareils et n'oubliez pas la sécurité des clés privées.
Préparons maintenant le fichier de configuration. Dans le fichier /etc/wireguard/wg0.conf on place la configuration :
[Interface]
Adresse = 192.168.99.1/24
Port d'écoute = 57953
Clé privée = 0JxJPUHz879NenyujROVK0YTzfpmzNtbXmFwItRKdHs=
[Peer] # OpenWRT
PublicKey = 36MMksSoKVsPYv9eyWUKPGMkEs3HS+8yIUqMV8F+JGw=
AllowedIPs = 192.168.99.2/32,192.168.0.0/24
[Peer] # Smartphone
PublicKey = /vMiDxeUHqs40BbMfusB6fZhd+i5CIPHnfirr5m3TTI=
AllowedIPs = 192.168.99.3/32
Dans la section [Interface] les paramĂštres de la machine elle-mĂȘme, et [Peer] â paramĂštres pour ceux qui se connecteront Ă elle. Dans AllowedIPs les sous-rĂ©seaux Ă router vers le pair correspondant sont listĂ©s par virgule. C'est pourquoi les pairs d'appareils « clients » dans le sous-rĂ©seau VPN doivent avoir un masque /32, tout le reste sera routĂ© par le serveur. Comme le rĂ©seau domestique sera routĂ© via OpenWRT, dans AllowedIPs le pair correspondant, nous ajoutons le sous-rĂ©seau domestique. Dans PrivateKey et PublicKey dĂ©posez la clĂ© privĂ©e gĂ©nĂ©rĂ©e pour le VPS et les clĂ©s publiques des pairs respectivement.
Il ne reste plus qu'à exécuter la commande sur le VPS qui va activer l'interface et l'ajouter au démarrage automatique : systemctl enable --now wg-quick@wg0. Vous pouvez vérifier l'état actuel des connexions avec la commande wg.
Configuration OpenWRT
Tout ce dont vous avez besoin pour cette Ă©tape se trouve dans le module luci (interface Web d'OpenWRT). Connectez-vous et dans le menu SystĂšme ouvrez l'onglet Logiciels. OpenWRT ne conserve pas de cache sur la machine, donc vous devez mettre Ă jour la liste des paquets disponibles en cliquant sur le bouton vert Mettre Ă jour les listes. Une fois terminĂ©, dans le filtre entrez luci-app-wireguard et, jetant un Ćil Ă la fenĂȘtre avec le bel arbre de dĂ©pendances, installez ce paquet.
Dans le menu Réseaux, sélectionnez Interfaces et cliquez sur le bouton vert Ajouter une nouvelle interface sous la liste des interfaces existantes. AprÚs avoir entré un nom (comme wg0 dans mon cas) et sélectionné le protocole WireGuard VPN, un formulaire de configuration s'ouvrira avec quatre onglets.

Dans l'onglet ParamÚtres généraux, vous devez entrer la clé privée et l'adresse IP préparée pour OpenWRT avec le sous-réseau.

Dans l'onglet ParamÚtres du pare-feu, intégrez l'interface au réseau local. Ainsi, les connexions depuis le VPN pourront accéder librement au réseau local.

Dans l'onglet Pairs, appuyez sur le seul bouton, puis dans le formulaire mis à jour, remplissez les données du serveur VPS : clé publique, Allowed IPs (vous devez router tout le sous-réseau VPN vers le serveur). Dans hÎte de point de terminaison et port de point de terminaison, entrez respectivement l'adresse IP du VPS avec le port mentionné précédemment dans la directive ListenPort. Cochez Route Allowed IPs pour que des routes soient créées. Et assurez-vous de remplir Persistent Keep Alive, sinon le tunnel entre le VPS et le routeur se rompra si ce dernier est derriÚre un NAT.


AprÚs cela, vous pouvez enregistrer les paramÚtres, puis sur la page de la liste des interfaces, cliquez sur Enregistrer et appliquer. Si nécessaire, lancez explicitement l'interface avec le bouton Redémarrer.
Configurer le smartphone
Vous aurez besoin du client Wireguard, qui est disponible sur , et l'App Store. En ouvrant l'application, appuyez sur le plus et dans la section Interface, saisissez le nom de la connexion, la clé privée (la clé publique sera générée automatiquement) et l'adresse du téléphone avec le masque /32. Dans la section Peer, indiquez la clé publique du VPS, la paire d'adresse : port du serveur VPN comme Endpoint et les routes vers le réseau VPN et le réseau domestique.
Capture d'écran en gros plan du téléphone

Appuyez sur la disquette dans le coin, activez et...
Terminé
Vous pouvez maintenant accéder à la surveillance domestique, modifier les paramÚtres du routeur ou faire ce que vous voulez au niveau IP.
Captures d'écran depuis le réseau local


Source : habr.com
