VPN vers le réseau local domestique

VPN vers le réseau local domestique

TL; DR: J'installe Wireguard sur un VPS, je m'y connecte depuis mon routeur domestique sur OpenWRT et j'accède à mon sous-réseau domestique depuis mon téléphone.

Si vous conservez votre infrastructure personnelle sur un serveur domestique ou si vous possédez de nombreux appareils contrôlés par IP chez vous, vous souhaiterez probablement y avoir accès depuis votre travail, depuis le bus, le train et le métro. Le plus souvent, pour des tâches similaires, l'IP est achetée auprès du fournisseur, après quoi les ports de chaque service sont transférés vers l'extérieur.

Au lieu de cela, j'ai configuré un VPN avec accès à mon réseau local domestique. Les avantages de cette solution :

  • Transparence: Je me sens chez moi en toutes circonstances.
  • Facilité: configurez-le et oubliez-le, pas besoin de penser à transférer chaque port.
  • Prix: J'ai déjà un VPS ; pour de telles tâches, un VPN moderne est presque gratuit en termes de ressources.
  • sécurité: rien ne ressort, vous pouvez quitter MongoDB sans mot de passe et personne ne volera vos données.

Comme toujours, il y a des inconvénients. Dans un premier temps, vous devrez configurer chaque client séparément, y compris côté serveur. Cela peut être gênant si vous disposez d'un grand nombre d'appareils à partir desquels vous souhaitez accéder aux services. Deuxièmement, vous disposez peut-être d'un réseau local avec la même portée au travail - vous devrez résoudre ce problème.

Nous devons:

  1. VPS (dans mon cas sur Debian 10).
  2. Routeur OpenWRT.
  3. Numéro de téléphone
  4. Serveur domestique avec un service Web pour les tests.
  5. Bras droits.

La technologie VPN que j'utiliserai est Wireguard. Cette solution a aussi des forces et des faiblesses, je ne les décrirai pas. Pour VPN, j'utilise un sous-réseau 192.168.99.0/24, et chez moi 192.168.0.0/24.

Configuration du VPN

Même le VPS le plus misérable à 30 roubles par mois est suffisant pour les affaires, si vous avez la chance d'en avoir un arracher.

J'effectue toutes les opérations sur le serveur en tant que root sur une machine propre ; si nécessaire, j'ajoute `sudo` et j'adapte les instructions.

Wireguard n'a pas eu le temps d'être introduit dans la stable, j'ai donc lancé `apt edit-sources` et j'ajoute des rétroportages sur deux lignes à la fin du fichier :

deb http://deb.debian.org/debian/ buster-backports main
# deb-src http://deb.debian.org/debian/ buster-backports main

Le package est installé de la manière habituelle : apt update && apt install wireguard.

Ensuite, nous 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 deux fois de plus pour chaque appareil participant au circuit. Modifiez le chemin d'accès aux fichiers de clés d'un autre appareil et n'oubliez pas la sécurité des clés privées.

Maintenant, nous préparons la configuration. Pour déposer /etc/wireguard/wg0.conf config est placé :

[Interface] Address = 192.168.99.1/24
ListenPort = 57953
PrivateKey = 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 réglages de la machine elle-même sont indiqués, et dans [Peer] — paramètres pour ceux qui s'y connecteront. DANS AllowedIPs séparés par des virgules, les sous-réseaux qui seront acheminés vers le homologue correspondant sont spécifiés. Pour cette raison, les pairs des appareils « clients » dans le sous-réseau VPN doivent avoir un masque. /32, tout le reste sera acheminé par le serveur. Puisque le réseau domestique sera acheminé via OpenWRT, en AllowedIPs Nous ajoutons le sous-réseau domestique du homologue correspondant. DANS PrivateKey и PublicKey décomposez la clé privée générée pour le VPS et les clés publiques des pairs en conséquence.

Sur le VPS, il ne reste plus qu'à exécuter la commande qui fera apparaître l'interface et l'ajouter à l'exécution automatique : systemctl enable --now wg-quick@wg0. L'état actuel de la connexion peut être vérifié avec la commande wg.

Configuration d'OpenWRT

Tout ce dont vous avez besoin pour cette étape se trouve dans le module luci (interface web OpenWRT). Connectez-vous et ouvrez l'onglet Logiciel dans le menu Système. OpenWRT ne stocke pas de cache sur la machine, vous devez donc mettre à jour la liste des packages disponibles en cliquant sur le bouton vert Mettre à jour les listes. Une fois terminé, entrez dans le filtre luci-app-wireguard et, en regardant la fenêtre avec une belle arborescence de dépendances, installez ce package.

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 saisi le nom (également wg0 dans mon cas) et en sélectionnant le protocole VPN WireGuard, un formulaire de paramètres avec quatre onglets s'ouvre.

VPN vers le réseau local domestique

Dans l'onglet Paramètres généraux, vous devez saisir la clé privée et l'adresse IP préparées pour OpenWRT ainsi que le sous-réseau.

VPN vers le réseau local domestique

Dans l'onglet Paramètres du pare-feu, connectez l'interface au réseau local. De cette façon, les connexions du VPN entreront librement dans la zone locale.

VPN vers le réseau local domestique

Dans l'onglet Peers, cliquez sur le seul bouton, après quoi vous remplissez les données du serveur VPS sous la forme mise à jour : clé publique, IP autorisées (vous devez acheminer l'intégralité du sous-réseau VPN vers le serveur). Dans Endpoint Host et Endpoint Port, entrez respectivement l'adresse IP du VPS avec le port précédemment spécifié dans la directive ListenPort. Vérifiez les adresses IP autorisées pour les routes à créer. Et assurez-vous de remplir Persistent Keep Alive, sinon le tunnel du VPS vers le routeur sera rompu si ce dernier est derrière NAT.

VPN vers le réseau local domestique

VPN vers le réseau local domestique

Après cela, vous pouvez enregistrer les paramètres, puis sur la page avec la liste des interfaces, cliquer sur Enregistrer et appliquer. Si nécessaire, lancez explicitement l'interface avec le bouton Redémarrer.

Configurer un smartphone

Vous aurez besoin du client Wireguard, il est disponible en F-Droid, Google Play et l'App Store. Après avoir ouvert l'application, appuyez sur le signe 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, spécifiez la clé publique VPS, une paire d'adresses : le port du serveur VPN comme point de terminaison et les routes vers le VPN et le sous-réseau domestique.

Capture d'écran en gras du téléphone
VPN vers le réseau local domestique

Cliquez sur la disquette dans le coin, allumez-la et...

Se terminer

Vous pouvez désormais accéder à la surveillance de la maison, modifier les paramètres du routeur ou faire n'importe quoi au niveau IP.

Captures d'écran de la région
VPN vers le réseau local domestique

VPN vers le réseau local domestique

VPN vers le réseau local domestique

Source: habr.com

Ajouter un commentaire