Pourquoi utiliser un VPN pour accéder à votre maison
Il existe de nombreuses raisons pour lesquelles vous voudriez accéder à votre réseau domestique à distance, et la meilleure façon de le faire est d'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 configurer 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 suffisamment 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 à votre réseau domestique à distance, vous pouvez accéder à vos fichiers de n'importe où. Vous pouvez exécuter vos ordinateurs personnels à distance. Vous pouvez même utiliser la connexion VPN de votre maison depuis la route. Une configuration comme celle-ci permet à votre téléphone, tablette ou ordinateur portable de fonctionner comme s'il était à la maison, où que vous soyez.
Configurer le Pi
Avant de pouvoir commencer à configurer le VPN, vous devrez configurer votre Raspberry Pi. Il est préférable de configurer le Pi avec un boîtier et une carte mémoire de taille décente, 16 Go devraient être plus que suffisants. Si possible, connectez votre Pi à votre routeur avec un câble Ethernet. Cela minimisera les retards du 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, et il est basé sur Debian, l'une des versions Linux les plus sécurisées et les plus stables disponibles.
Aller à 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, obtenez la dernière version de Graveur 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.
cómo volver a conectar el timbre a la nueva wifi
Laissez la carte SD dans votre ordinateur lorsque vous avez terminé. Ouvrez un gestionnaire de fichiers et accédez à la carte. Vous devriez voir quelques 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 de démarrage 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'écran, de clavier ou de souris. Vous allez accéder à distance au Raspberry Pi sur votre réseau.
Donnez au Pi quelques minutes pour s'installer. 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 sous Windows, Linux ou Mac, ouvrez OpenSSH. Connectez-vous au Raspberry Pi avec SSH.
$ ssh [email protected]
Évidemment, utilisez l'adresse IP réelle du Pi. Le nom d'utilisateur esttoujours pi, et le mot de passe estframboise.
Configurer OpenVPN
OpenVPN n'est pas vraiment simple à configurer en tant que serveur. La bonne nouvelle est que vous n'avez besoin de le faire qu'une seule fois. Donc, avant de vous lancer, 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
Afin d'authentifier vos appareils lorsqu'ils tentent 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.
Tout d'abord, créez un répertoire pour vos certificats. Déplacez-vous dans ce répertoire.
$ sudo make-cadir /etc/openvpn/certs $ cd /etc/openvpn/certs
Recherchez les fichiers de configuration OpenSSL. Ensuite, liez le dernier avecouvressl.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.
Trouvez leKEY_SIZEvariable d'abord. C'est réglé pour2048par défaut. Changez-le en4096.
export KEY_SIZE=4096
Le bloc principal que vous devez gérer établit des informations sur votre autorité de certification. Cela aide si ces informations sont exactes, mais tout ce dont vous vous souvenez est très bien.
export KEY_COUNTRY='US' export KEY_PROVINCE='CA' export KEY_CITY='SanFrancisco' export KEY_ORG='Fort-Funston' export KEY_EMAIL=' [email protected] ' export KEY_OU='MyOrganizationalUnit' export KEY_NAME='HomeVPN'
Lorsque vous avez tout, enregistrez et quittez.
Ce package Easy-RSA que vous avez installé auparavant contient de nombreux scripts qui vous aident à configurer tout ce dont vous avez besoin. Vous avez juste besoin de 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 valeurs par défaut, vous pouvez donc simplement accepter les valeurs par défaut qu'il présente. N'oubliez pas de définir un mot de passe fort et de répondre oui aux deux dernières questions, après le mot de passe.
$ sudo ./build-ca
Faire des clés
Vous avez traversé tous ces problèmes pour configurer une autorité de certification afin de pouvoir signer les clés. Maintenant, il est temps d'en faire. Commencez par créer la clé de votre serveur.
$ sudo ./build-key-server server
Ensuite, construisez le PEM Diffie-Hellman. C'est ce qu'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é entre le client et le serveur. Il permet d'éviter certains types d'attaques sur la connexion.
$ sudo openvpn --genkey --secret /etc/openvpn/certs/keys/ta.key
Configuration du serveur
Vous avez les clés. La prochaine étape de la configuration d'OpenVPN est la configuration du serveur elle-même. Heureusement, il n'y a 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 que vous devez trouver sont lescette,certificat, etclédes dossiers. Vous devez les configurer pour qu'ils correspondent aux emplacements réels des fichiers que vous avez créés, qui sont tous dans/etc/openvpn/certs/keys.
ca /etc/openvpn/certs/keys/ca.crt cert /etc/openvpn/certs/keys/server.crt key /etc/openvpn/certs/keys/server.key # This file should be kept secret
Trouvez lec'est à direet modifiez-le pour qu'il corresponde au Diffie-Hellman.pemque vous avez créé.
dh dh4096.pem
Définissez également le chemin de votre clé HMAC.
tls-auth /etc/openvpn/certs/keys/ta.key 0
Trouvez lechiffreret assurez-vous qu'il correspond à l'exemple ci-dessous.
cipher AES-256-CBC
Les deux prochaines options sont là, mais elles sont commentées avec un;. Supprimez les points-virgules devant chaque option pour les activer.
push 'redirect-gateway def1 bypass-dhcp' push 'dhcp-option DNS 208.67.222.222' push 'dhcp-option DNS 208.67.220.220'
Cherchez leutilisateuretgrouperoption. Décommentez-les et modifiez leutilisateurà openvpn.
user openvpn group 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 plus fort pour l'authentification des utilisateurs.
# Authentication Digest auth SHA512
Ensuite, limitez les cipers qu'OpenVPN peut utiliser aux seuls plus puissants. Cela permet de limiter les attaques possibles sur les chiffrements faibles.
# Limit Ciphers tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-256-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA:TLS-DHE-RSA-WITH-AES-128-CBC-SHA:TLS-DHE-RSA-WITH-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 devezopenvpnutilisateur 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 [email protected]
Vérifiez qu'ils fonctionnent tous les deux
$ sudo systemctl status openvpn*.service
Si tout semble bon, activez-les au démarrage.
$ sudo systemctl enable openvpn $ sudo systemctl enable [email protected]
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 appareils à votre serveur. Retour aucertaindossier 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 un usage domestique, une clé devrait convenir.
$ cd /etc/openvpn/certs $ sudo source ./vars $ sudo ./build-key client
Le processus est presque identique à celui du serveur, suivez donc la même procédure.
Configuration des clients
La configuration des clients est très similaire à celle du serveur. Encore une fois, vous disposez d'un modèle prédéfini sur lequel baser votre configuration. Il vous suffit de le modifier pour qu'il corresponde au serveur.
Changer dans leclientannuaire. 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 leclient.ovpnfichier avec votre éditeur de texte. Ensuite, trouvez leà distanceoption. En supposant que vous n'utilisez pas déjà un VPN, recherchez sur Google Quelle est mon IP. Prenez l'adresse qu'il affiche et réglez leà distanceadresse IP à celui-ci. Laissez le numéro de port.
remote 107.150.28.83 1194 #That IP ironically is a VPN
Modifiez les certificats pour refléter ceux que vous avez créés, comme vous l'avez fait avec le serveur.
ca ca.crt cert client.crt key client.key
Recherchez les options utilisateur et décommentez-les. C'est bien de gérer les clients commepersonne.
user nobody group nogroup
Décommenter letls-authoption pour HMAC.
tls-auth ta.key 1
Ensuite, recherchez lechiffreroption et assurez-vous qu'il correspond au serveur.
cipher AES-256-CBC
Ensuite, ajoutez simplement le condensé d'authentification et les restrictions de chiffrement au bas du fichier.
# Authentication Digest auth SHA512 # Cipher Restrictions tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-256-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA:TLS-DHE-RSA-WITH-AES-128-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA
Lorsque tout semble correct, enregistrez le fichier et quittez. Utiliserle goudronpour emballer la configuration et les certificats, afin que vous puissiez 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 package au client comme vous le souhaitez. SFTP, FTP et une clé USB sont toutes d'excellentes options.
Redirection de port
Pour que tout cela fonctionne, vous devez configurer votre routeur pour transférer le trafic VPN entrant vers le Pi. Si vous utilisez déjà un VPN, vous devez vous assurer que vous ne vous connectez pas sur le même port. Si c'est le cas, modifiez le port sur vos configurations client et serveur.
Connectez-vous à l'interface Web de votre routeur en saisissant 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 les mêmes les uns que les autres et celui que vous avez défini dans vos configurations. Ensuite, pour l'adresse IP, définissez-la sur l'adresse IP de votre Raspberry Pi. Enregistrez vos modifications.
Connectez-vous au client
Chaque client est différent, il n'y a donc pas de solution universelle. Si vous êtes sous 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 branchez les informations de votre fichier de configuration. Sélectionnez ensuite vos clés.
Sous Linux, vous devez installer OpenVPN comme vous l'avez fait pour le serveur.
$ sudo apt install openvpn
Ensuite, changez en/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. Cela échouera. 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 via votre routeur au Pi. À partir de là, vous pouvez partager et vous connecter sur votre réseau virtuel, tant que tous les appareils sont connectés au VPN. Il n'y a pas de limite, vous pouvez donc toujours connecter tous vos ordinateurs au VPN Pi.