Anonim

Pourquoi utiliser un VPN pour accéder à votre domicile

Liens rapides

  • Pourquoi utiliser un VPN pour accéder à votre domicile
  • Mettre en place le pi
    • Installer Raspbian
  • Configurer OpenVPN
    • Autorité de certification
    • Faire des clés
    • Configuration du serveur
    • Démarrer le serveur
  • Configuration du client
    • Configuration du client
  • Port Forwarding
  • Se connecter au client
  • Pensées de clôture

Il existe de nombreuses raisons pour lesquelles vous souhaitez accéder à votre réseau domestique à distance, et la meilleure façon de le faire consiste à utiliser un serveur VPN. Certains routeurs vous permettent en fait de configurer un serveur VPN directement dans le routeur, mais dans de nombreux cas, vous devrez en créer un vous-même.

Un Raspberry Pi est un excellent moyen d'y parvenir. Ils ne nécessitent pas beaucoup d’énergie pour fonctionner et ils ont assez de puissance pour faire fonctionner un serveur VPN. Vous pouvez en installer un à côté de votre routeur et l’oublier.

Lorsque vous avez accès à distance à votre réseau domestique, vous pouvez accéder à vos fichiers où que vous soyez. Vous pouvez exécuter vos ordinateurs à la maison à distance. Vous pouvez même utiliser la connexion VPN de votre domicile depuis la route. Une telle configuration permet à votre téléphone, votre tablette ou votre ordinateur portable d'agir comme à la maison, où que vous soyez.

Mettre en place le pi

Avant de pouvoir configurer le VPN, vous devez configurer votre Raspberry Pi. Il est préférable de configurer le Pi avec un étui et une carte mémoire de taille correcte, 16 Go devraient suffire. Si possible, connectez votre Pi à votre routeur avec un câble Ethernet. Cela minimisera les délais réseau.

Installer Raspbian

Le meilleur système d'exploitation à utiliser sur votre Pi est Raspbian. C'est le choix par défaut proposé par la fondation Raspberry Pi, basé sur Debian, l'une des versions Linux les plus sûres et les plus stables disponibles.

Accédez à la page de téléchargement de Rasbian et récupérez la dernière version. Vous pouvez utiliser la version «Lite» ici, car vous n'avez pas réellement besoin d'un bureau graphique.

Pendant le téléchargement, procurez-vous la dernière version d' Etcher pour votre système d'exploitation. Une fois le téléchargement terminé, extrayez l'image Raspbian. Ensuite, ouvrez Etcher. Sélectionnez l'image Raspbian à partir de laquelle vous l'avez extraite. Sélectionnez votre carte SD (insérez-la d'abord). Enfin, écrivez l'image sur la carte.

Laissez la carte SD dans votre ordinateur lorsque vous avez terminé. Ouvrez un gestionnaire de fichiers et accédez à la carte. Vous devriez voir deux partitions différentes. Recherchez la partition de «démarrage». C’est celui qui contient un fichier «kernel.img». Créez un fichier texte vide sur la partition «boot» et appelez-le «ssh» sans extension de fichier.

Vous pouvez enfin connecter votre Pi. Assurez-vous de le brancher en dernier. Vous n'aurez pas besoin d'un écran, d'un clavier ou d'une souris. Vous allez accéder à distance au Raspberry Pi via votre réseau.

Donnez au Pi quelques minutes pour se mettre en place. Ensuite, ouvrez un navigateur Web et accédez à l'écran de gestion de votre routeur. Trouvez le Raspberry Pi et notez son adresse IP.

Que vous soyez sur Windows, Linux ou Mac, ouvrez OpenSSH. Connectez-vous au Raspberry Pi avec SSH.

$ ssh

Évidemment, utilisez l’adresse IP réelle du Pi. Le nom d'utilisateur est toujours pi et le mot de passe est framboise.

Configurer OpenVPN

OpenVPN n'est pas vraiment simple à configurer en tant que serveur. La bonne nouvelle est qu'il suffit de le faire une fois. Donc, avant de creuser, assurez-vous que Raspbian est complètement à jour.

$ sudo apt update $ sudo apt upgrade

Une fois la mise à jour terminée, vous pouvez installer OpenVPN et l'utilitaire de certificat dont vous avez besoin.

$ sudo apt install openvpn easy-rsa

Autorité de certification

Pour authentifier vos périphériques lorsqu'ils essaient de se connecter au serveur, vous devez configurer une autorité de certification pour créer des clés de signature. Ces clés garantiront que seuls vos appareils pourront se connecter à votre réseau domestique.

Commencez par créer un répertoire pour vos certificats. Déplacer dans ce répertoire.

$ sudo make-cadir / etc / openvpn / certs $ cd / etc / openvpn / certs

Recherchez les fichiers de configuration OpenSSL. Ensuite, liez le dernier avec openssl.cnf.

$ ls | grep -i openssl $ sudo ln -s openssl-1.0.0.cnf openssl.cnf

Dans ce même dossier "certs" se trouve un fichier appelé "vars". Ouvrez ce fichier avec votre éditeur de texte. Nano est la valeur par défaut, mais n'hésitez pas à installer Vim, si vous êtes plus à l'aise avec cela.

Recherchez la variable KEY_SIZE en premier. Il est réglé sur 2048 par défaut. Changez-le en 4096.

export KEY_SIZE = 4096

Le bloc principal que vous devez gérer établit des informations sur votre autorité de certification. Cela aide si cette information est exacte, mais tout ce dont vous vous souvenez est correct.

export KEY_COUNTRY = "US" export KEY_PROVINCE = "CA" export KEY_CITY = "SanFrancisco" export KEY_ORG = "Fort-Funston" export KEY_EMAIL = "" export KEY_OU = "MonOrganizationalUnit" export KEY_NAME = "HomeVPN"

Lorsque vous avez tout, sauvegardez et quittez.

Le paquet Easy-RSA que vous avez déjà installé contient de nombreux scripts qui vous aident à configurer tout ce dont vous avez besoin. Vous devez juste les exécuter. Commencez par ajouter le fichier «vars» en tant que source. Cela chargera toutes les variables que vous venez de définir.

$ sudo source ./vars

Ensuite, nettoyez les clés. Vous n'en avez pas, alors ne vous inquiétez pas du message vous indiquant que vos clés seront supprimées.

$ sudo ./clean-install

Enfin, créez votre autorité de certification. Vous avez déjà défini les paramètres par défaut, vous ne pouvez donc accepter que les paramètres par défaut présentés. N'oubliez pas de définir un mot de passe fort et de répondre «oui» aux deux dernières questions, en suivant le mot de passe.

$ sudo ./build-ca

Faire des clés

Vous avez rencontré tous ces problèmes pour mettre en place une autorité de certification afin de pouvoir signer les clés. Maintenant, il est temps d'en faire. Commencez par créer la clé pour votre serveur.

$ sudo ./build-key-server server

Ensuite, créez le PEM Diffie-Hellman. C'est ce que OpenVPN utilise pour sécuriser vos connexions client au serveur.

$ sudo openssl dhparam 4096> /etc/openvpn/dh4096.pem

La dernière clé dont vous avez besoin à partir de maintenant s'appelle une clé HMAC. OpenVPN utilise cette clé pour signer chaque paquet individuel d’informations échangées entre le client et le serveur. Cela permet d'éviter certains types d'attaques sur la connexion.

$ sudo openvpn --genkey --secret /etc/openvpn/certs/keys/ta.key

Configuration du serveur

Tu as les clés. La prochaine étape de la configuration d’OpenVPN est la configuration du serveur elle-même. Heureusement, il n’ya pas grand chose à faire ici. Debian fournit une configuration de base que vous pouvez utiliser pour commencer. Alors, commencez par obtenir ce fichier de configuration.

$ sudo gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz> /etc/openvpn/server.conf

Utilisez à nouveau votre éditeur de texte pour ouvrir /etc/openvpn/server.conf. Les premières choses à trouver sont les fichiers ca, cert et key. Vous devez les configurer pour qu'ils correspondent aux emplacements réels des fichiers que vous avez créés, qui se trouvent tous dans / etc / openvpn / certs / keys.

ca /etc/openvpn/certs/keys/ca.crt cert /etc/openvpn/certs/keys/server.crt clé /etc/openvpn/certs/keys/server.key # Ce fichier doit être gardé secret

Recherchez le paramètre dh et modifiez-le afin qu'il corresponde au fichier .pie Diffie-Hellman que vous avez créé.

dh dh4096.pem

Définissez également le chemin de votre clé HMAC.

tls-auth /etc/openvpn/certs/keys/ta.key 0

Recherchez le code et assurez-vous qu'il correspond à l'exemple ci-dessous.

Chiffre AES-256-CBC

Les deux options suivantes sont là, mais elles sont commentées avec un; Supprimez les points-virgules devant chaque option pour les activer.

push "passerelle def1 bypass-dhcp" push "DNS option dhcp 208.67.222.222" push "DNS option dhcp 208.67.220.220"

Recherchez les options d'utilisateur et de groupe. Décommentez-les et changez l'utilisateur en "openvpn".

groupe utilisateur openvpn nogroup

Enfin, ces deux dernières lignes ne sont pas dans la configuration par défaut. Vous devrez les ajouter à la fin du fichier.

Définissez le résumé d'authentification pour spécifier un cryptage renforcé pour l'authentification de l'utilisateur.

# Authentification Digest auth SHA512

Ensuite, limitez le nombre de filtres qu’OpenVPN peut utiliser aux plus puissants. Cela aide à limiter les attaques possibles sur les chiffrements faibles.

Chiffres limites TLS-DHE-RSA-AVEC-AES-256-GCM-SHA384: TLS-DHE-RSA-AVEC-AES-128-GCM-SHA256: TLS-DHE-RSA-AVEC-AES-256- CBC-SHA: TLS-DHE-RSA-AVEC-CAMELLIA-256-CBC-SHA: TLS-DHE-RSA-AVEC-AES-128-CBC-SHA: TLS-DHE-RSA-AVEC-CAMELLIA-128-CBC- SHA

C'est tout pour la configuration. Enregistrez le fichier et quittez.

Démarrer le serveur

Avant de pouvoir démarrer le serveur, vous devez définir le nom d'utilisateur openvpn que vous avez spécifié.

$ sudo adduser --system --shell / usr / sbin / nologin --no-create-home openvpn

C'est un utilisateur spécial juste pour exécuter OpenVPN, et il ne fera rien d'autre.

Maintenant, démarrez le serveur.

$ sudo systemctl start openvpn $ sudo systemctl start

Vérifiez qu'ils courent tous les deux

$ sudo systemctl status openvpn * .service

Si tout semble bon, activez-les au démarrage.

$ sudo systemctl enable openvpn $ sudo systemctl enable

Configuration du client

Votre serveur est maintenant configuré et en cours d'exécution. Ensuite, vous devez configurer votre configuration client. C'est la configuration que vous utiliserez pour connecter vos périphériques à votre serveur. Revenez dans le dossier certs et préparez-vous à créer la ou les clés client. Vous pouvez choisir de créer des clés distinctes pour chaque client ou une clé pour tous les clients. Pour une utilisation à domicile, une clé devrait suffire.

$ cd / etc / openvpn / certs $ source sudo ./vars $ sudo ./build -key client

Le processus est presque identique à celui du serveur, suivez donc la même procédure.

Configuration du client

La configuration des clients est très similaire à celle du serveur. Encore une fois, vous avez un modèle prédéfini sur lequel baser votre configuration. Il vous suffit de le modifier pour qu'il corresponde au serveur.

Passez dans le répertoire du client. Ensuite, décompressez l'exemple de configuration.

$ cd / etc / openvpn / client $ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client/client.ovpn

Ouvrez le fichier client.ovpn avec votre éditeur de texte. Ensuite, recherchez l'option remote. En supposant que vous n'utilisiez pas déjà un VPN, recherchez dans Google "Quelle est mon adresse IP"? Prenez l'adresse affichée et définissez l'adresse IP distante. Laissez le numéro de port.

à distance 107.150.28.83 1194 #Cette IP est ironiquement un VPN

Modifiez les certificats pour qu'ils correspondent à ceux que vous avez créés, comme vous l'avez fait avec le serveur.

ca ca.crt cert client.crt clé client.key

Recherchez les options utilisateur et décommentez-les. C'est bien de gérer les clients comme personne.

groupe d'utilisateurs nogroup

Décommentez l'option tls-auth pour HMAC.

tls-auth ta.key 1

Ensuite, recherchez l’option de chiffrement et assurez-vous qu’elle correspond au serveur.

Chiffre AES-256-CBC

Ensuite, ajoutez simplement le résumé d'authentification et les restrictions de chiffrement au bas du fichier.

# Authentification Digest authentification SHA512 # Restrictions relatives au chiffrement -AES-256-CBC-SHA: TLS-DHE-RSA-AVEC-CAMELLIA-256-CBC-SHA: TLS-DHE-RSA-AVEC-AES-128-CBC-SHA: TLS-DHE-RSA-AVEC-CAMELLIA -128-CBC-SHA

Lorsque tout semble bien, sauvegardez le fichier et quittez. Utilisez la commande tar pour compacter la configuration et les certificats afin de pouvoir les envoyer au client.

$ sudo tar cJf /etc/openvpn/clients/client.tar.xz -C / etc / openvpn / certs / keys ca.crt client.crt client.key ta.key -C /etc/openvpn/clients/client.ovpn

Transférez ce paquet vers le client comme bon vous semble. SFTP, FTP et une clé USB sont d'excellentes options.

Port Forwarding

Pour que tout cela fonctionne, vous devez configurer votre routeur pour qu'il transfère le trafic VPN entrant au Pi. Si vous utilisez déjà un VPN, vous devez vous assurer que vous ne vous connectez pas sur le même port. Si tel est le cas, modifiez le port de vos configurations client et serveur.

Connectez-vous à l'interface Web de votre routeur en tapant son adresse IP sur votre navigateur.

Chaque routeur est différent. Même encore, ils devraient tous avoir une certaine forme de cette fonctionnalité. Trouvez-le sur votre routeur.

La configuration est fondamentalement la même sur chaque routeur. Entrez les ports de début et de fin. Ils doivent être identiques les uns aux autres et à celui que vous définissez dans vos configurations. Ensuite, pour l’adresse IP, réglez-le sur l’IP de votre Raspberry Pi. Enregistrez vos modifications.

Se connecter au client

Chaque client est différent, il n'y a donc pas de solution universelle. Si vous utilisez Windows, vous aurez besoin du client Windows OpenVPN .

Sur Android, vous pouvez ouvrir votre archive et transférer les clés sur votre téléphone. Ensuite, installez l'application OpenVPN. Ouvrez l'application et connectez les informations de votre fichier de configuration. Ensuite, sélectionnez vos clés.

Sous Linux, vous devez installer OpenVPN un peu comme vous l'avez fait pour le serveur.

$ sudo apt install openvpn

Ensuite, passez à / etc / openvpn et décompressez l'archive que vous avez envoyée.

$ cd / etc / openvpn $ sudo tar xJf /path/to/client.tar.xz

Renommez le fichier client.

$ sudo mv client.ovpn client.conf

Ne démarrez pas encore le client. Ça va échouer. Vous devez d'abord activer la redirection de port sur votre routeur.

Pensées de clôture

Vous devriez maintenant avoir une configuration de travail. Votre client se connectera directement au Pi via votre routeur. À partir de là, vous pouvez partager et vous connecter via votre réseau virtuel, à condition que tous les périphériques soient connectés au VPN. Il n'y a pas de limite, vous pouvez donc toujours connecter tous vos ordinateurs au VPN Pi.

Transformez un Raspberry Pi en un vpn pour accéder à votre réseau depuis n'importe où