Table des matières:

Passerelle VPN Raspberry Pi : 6 étapes
Passerelle VPN Raspberry Pi : 6 étapes

Vidéo: Passerelle VPN Raspberry Pi : 6 étapes

Vidéo: Passerelle VPN Raspberry Pi : 6 étapes
Vidéo: How to setup a Raspberry Pi OpenVPN gateway 2024, Novembre
Anonim
Passerelle VPN Raspberry Pi
Passerelle VPN Raspberry Pi

Mise à jour 2018-01-07:

  • Mise à jour des éléments manquants et modifications nécessaires pour la version actuelle de Raspian.
  • Également créé un guide spécifique pour NordVPN.

Il existe différentes utilisations du VPN. Soit vous voulez protéger votre vie privée et vos données privées des regards indiscrets, soit vous devez vous approvisionner dans un autre pays. L'approvisionnement dans un autre pays peut être très utile pour accéder à des services qui ne sont pas fournis dans votre pays. Il existe aujourd'hui un certain nombre de services VPN et la plupart d'entre eux offrent des logiciels faciles à utiliser pour votre ordinateur et des applications pour votre tablette ou votre téléphone. Mais si vous avez d'autres appareils non pris en charge par le logiciel que vous souhaitez passer par le VPN ? Créez ensuite une passerelle qui vous donne accès à Internet via le VPN.

Si vous regardez votre configuration réseau de base, vous avez une "passerelle par défaut" qui est utilisée pour toute adresse IP non située dans votre sous-réseau actuel (très simplifié). Ainsi, si vous configurez une passerelle qui peut acheminer le trafic Internet sur une connexion VPN établie, tout appareil compatible réseau peut tirer parti du tunnel VPN.

Mon cas d'utilisation principal dans mon appartement de San Francisco est un tunnel VPN vers ma Suède natale afin que je puisse diffuser des chaînes de lecture suédoises sur mes lecteurs multimédias et ma télévision intelligente. Il s'agit d'un cas d'utilisation assez courant pour la plupart des personnes ayant besoin d'un tunnel VPN. Étant donné que mes lecteurs multimédias et mes téléviseurs intelligents ne sont pas pris en charge par le logiciel VPN, j'en ai construit un à partir d'un Raspberry Pi.

Vous pouvez en acheter un pour moins de 40 $ sur Amazon. Je vous recommande cependant d'acheter un étui et un adaptateur secteur convenable. Pour cette instructable, vous avez besoin de:

  • Framboise Pi 2 ou 3
  • Un cas de votre goût
  • Un adaptateur secteur décent
  • Un câble réseau

Étape 1: Choisir votre service VPN

Choisir votre service VPN
Choisir votre service VPN

L'important lors de la sélection d'un service VPN est qu'il réponde à vos exigences. Pour ce cas d'utilisation, j'avais besoin d'un service VPN avec un point de sortie suédois, c'est la chose la plus importante car j'ai besoin des services suédois pour être convaincu que je suis en Suède. Au fil des ans, j'ai utilisé plusieurs fournisseurs différents et voici les éléments que je prends en considération lors de la sélection du fournisseur VPN pour le cas d'utilisation spécifique:

Essai gratuit

Je souhaite une période de test gratuite ou une petite quantité de données de test pour avoir une idée du logiciel ou de l'application. Je souhaite également tester les performances et l'expérience globale avant de payer pour cela. Il est également agréable de vérifier que mon idée fonctionnera avant de commencer à payer.

Intimité

Si la mise en œuvre est pour des problèmes de confidentialité, alors ce que la politique de confidentialité indique est vraiment important. Il est également important de savoir dans quel pays l'entreprise opère et quelles lois protègent votre vie privée. Les utilisateurs vraiment soucieux de la confidentialité devraient consulter un service qui indique qu'aucun journal de trafic n'est stocké et autorise les paiements anonymes via Bitcoin par exemple.

Trafic autorisé

Il peut y avoir des limitations sur le type de trafic que vous serez autorisé à exécuter. Les fournisseurs les plus sérieux bloquent généralement le trafic peer-to-peer. Il ne s'agit pas seulement d'éviter les problèmes juridiques, mais aussi de pouvoir maintenir les performances pour tous les utilisateurs. Il existe cependant de nombreux bons fournisseurs qui permettent le peer-to-peer tout en offrant un service de haute qualité. Mais si ce n'est pas votre principal besoin, je vous recommande de sélectionner un service qui n'autorise pas le peer-to-peer.

Limite de données

N'utilisez jamais un service qui maintient un plafond de données sur ses utilisateurs payants. Cela s'épuisera au pire moment possible exactement comme les données sur votre téléphone juste avant la partie amusante d'un clip vidéo !

Pays de sortie

Selon le cas d'utilisation, cela a une importance différente. Pour un cas d'utilisation comme le mien, où je dois me retrouver dans un pays spécifique, cela doit bien sûr figurer sur la liste. Je dois également être autorisé à sélectionner le pays dans lequel je sors. Il existe des services pour lesquels vous ne pouvez pas sélectionner le pays de sortie, restez à l'écart de ceux-ci. Vous pouvez vous retrouver dans un pays avec de mauvaises lois sur les performances ou la confidentialité. Même si vous n'avez pas besoin d'un pays spécifique, vous devez toujours sélectionner un service avec quelques pays différents à afficher pour pouvoir en trouver un avec de bonnes performances.

Type de logiciel et assistance

C'est l'une des principales raisons pour lesquelles je préfère les services avec un test gratuit. Il y a tellement de fournisseurs avec de mauvais logiciels qui sont bogués, peu sûrs ou qui ne fonctionnent tout simplement pas. Pour une implémentation Raspberry Pi, j'ai besoin d'un fournisseur qui prend en charge OpenVPN.

Ma sélection

Pour cette construction, je suis allé avec Tunnel Bear. Un test gratuit jusqu'à 500 Go est offert afin que je puisse tester que je pouvais réellement diffuser avant de payer quoi que ce soit. Ils sont basés au Canada qui, après la Suède, possède certaines des lois sur la protection de la vie privée les plus strictes au monde. Pas de plafond de données sur le service payant et je suis également autorisé à connecter plusieurs appareils à la fois. Ainsi, la protection de mon téléphone, de ma tablette et de mon ordinateur lorsque je voyage sur un réseau Wi-Fi non sécurisé est également réglée. Le nœud de sortie en Suède est pris en charge, il est en fait fourni via Bahnhof qui est connu pour sa forte confidentialité en Suède. Pour les forfaits payants, ils offrent le support OpenVPN. Ils ne le font pas pour le test gratuit, mais il suffisait de l'exécuter depuis mon ordinateur portable pour s'assurer que les services de streaming fonctionnaient.

Étape 2: Installez le Raspberry Pi

Pour des implémentations comme celle-ci, j'utilise le système d'exploitation Raspbian Lite. Puisque je n'ai pas du tout besoin de l'interface graphique. Vous pouvez obtenir la dernière version ici.

J'utilise Win32DiskImager pour charger le fichier.img sur la carte SD du Raspberry Pi.

Une fois que le Raspberry Pi a démarré, je regarde dans la liste DHCP de mes routeurs pour obtenir l'adresse IP, puis je me connecte via SSH avec Putty. Le nom d'utilisateur et le mot de passe standard sont pi/raspberry

Une fois connecté, je lance l'outil raspi-config pour modifier les paramètres de base.

sudo raspi-config

Les choses les plus importantes à prendre en compte dans cette configuration sont:

  • Développer le système de fichiers
  • Changer le mot de passe

Vous pouvez également changer le nom d'hôte de votre Raspberry Pi si vous le souhaitez. Mes DHCP ont des baux très longs et je peux aussi réserver une adresse spécifique. Si vous n'avez pas cette capacité, vous devez configurer le Raspberry Pi pour utiliser une adresse IP statique. Étant donné que d'autres appareils l'utiliseront comme passerelle par défaut, il est important qu'il continue à utiliser la même adresse IP. Voici un article que j'ai écrit sur la définition d'une adresse IP statique dans Raspbian Jessie.

Ensuite, nous devons tout mettre à niveau vers la dernière version:

sudo apt-get updatesudo apt-get upgrade sudo apt-get dist-upgrade

Étape 3: Installez OpenVPN

Installer OpenVPN
Installer OpenVPN

Nous devons maintenant installer OpenVPN sur le Raspberry Pi.

sudo apt-get install openvpn

Ensuite, nous devons nous assurer que le service démarre correctement.

sudo systemctl activer openvpn

Une fois l'installation terminée, nous devons copier les fichiers de configuration et les certificats OpenVPN dans la boîte. Cela vous sera fourni par votre fournisseur VPN. Dans mon cas, en utilisant TunnelBear, j'ai trouvé un article de blog sur le support Linux. Sur cette page, il y a un lien vers un fichier zip contenant tout ce dont nous avons besoin.

Le fichier contient les fichiers de certificat et un fichier de configuration.opvn pour chaque pays vers lequel vous pouvez créer un tunnel. Vous avez besoin de tous les fichiers de certificat et du fichier de configuration.opvn pour le pays de votre choix, dans mon cas la Suède. Décompressez les fichiers nécessaires et utilisez winscp pour télécharger les fichiers sur votre Raspberry Pi. Le même nom d'utilisateur/mot de passe que celui utilisé pour SSH vous amènera à /home/pi, déposez simplement les fichiers là-bas.

Ensuite, nous retournons au terminal SSH et déplaçons les fichiers dans le dossier OpenVPN. La première commande est juste pour s'assurer que nous sommes dans le dossier /home/pi.

cd /accueil/pi

sudo mv * /etc/openvpn/

Nous devons maintenant apporter quelques modifications aux fichiers. Nous devons d'abord renommer le fichier de configuration de.ovpn en.conf. Tout fichier se terminant par.conf dans le dossier /etc/openvpn démarrera automatiquement au démarrage du démon OpenVPN. Nous devons d'abord entrer dans ce répertoire.

cd /etc/openvpn

Ensuite, nous changeons le nom du fichier de configuration. Vous pouvez lui donner le nom que vous voulez tant qu'il se termine par.conf. Je préfère utiliser des noms de fichiers sans espaces vides, dans ce cas je vais avec swe.conf.

sudo mv *.ovpn swe.conf

Ensuite, nous avons besoin d'un fichier d'authentification contenant le nom d'utilisateur et le mot de passe utilisés pour le tunnel VPN. Ouvrez un éditeur de texte et écrivez le nom d'utilisateur et le mot de passe sur des lignes séparées. Nous appellerons ce fichier auth.txt.

sudo nano auth.txt

Le contenu devrait ressembler à cet exemple:

Nom d'utilisateur

le mot de passe

Ensuite, utilisez CTRL + O pour écrire dans le fichier et CTRL + X pour quitter l'éditeur de texte nano. Nous devons également protéger le fichier auth.txt contenant nos informations d'identification.

sudo chmod 600 /etc/openvpn/auth.txt

Ensuite, nous devons éditer le fichier de configuration pour nous assurer que tous les chemins sont corrects et ajouter une référence au fichier auth.txt nouvellement créé.

sudo nano swe.conf

Les lignes qui doivent être modifiées sont celles faisant référence à d'autres fichiers, elles doivent être des chemins absolus. Dans cet exemple, voici ce que nous recherchons:

ca CACertificate.crt

cert UserCertificate.crt clé PrivateKey.key

Nous les changeons en chemins absolus comme ceci:

ca /etc/openvpn/CACertificate.crt

cert /etc/openvpn/UserCertificate.crt clé /etc/openvpn/PrivateKey.key

Ensuite, à la fin du fichier, nous ajoutons une référence au fichier auth.txt, comme ceci:

auth-user-pass /etc/openvpn/auth.txt

Encore une fois, nous utilisons CTRL + O pour enregistrer le fichier, puis CTRL + X pour quitter nano. Nous pouvons maintenant redémarrer le démon OpenVPN et voir que le tunnel fonctionne.

redémarrage du service sudo openvpn

Si vous exécutez la commande ifconfig, vous devriez voir un adaptateur tun0 en plus de vos adaptateurs eth0 et lo si le tunnel est actif. Vous pouvez également exécuter la commande this command pour vérifier votre IP publique:

wget https://ipinfo.io/ip -qO -

Si vous rencontrez des problèmes pour démarrer le tunnel, essayez d'abord de redémarrer votre Raspberry Pi, puis vérifiez la configuration pour les erreurs.

Étape 4: Configurer le routage

Nous devons maintenant activer le transfert IP. Il permet au trafic réseau d'entrer de l'une des interfaces réseau et de sortir de l'autre. Essentiellement créer un routeur.

sudo /bin/su -c "echo -e '\n#Enable IP Routing\nnet.ipv4.ip_forward = 1' > /etc/sysctl.conf"

Si vous exécutez sudo sysctl -p, vous devriez voir ceci imprimé à l'écran:

net.ipv4.ip_forward = 1

Désormais, le routage est activé et le trafic peut passer par le Raspberry Pi, par le tunnel et sur Internet.

Étape 5: Configurer le pare-feu et le NAT

Étant donné que nous aurons plusieurs clients à l'intérieur accédant à Internet via une adresse IP publique, nous devons utiliser NAT. Il signifie traduction d'adresse réseau et gardera une trace de quel client a demandé quel trafic lorsque les informations reviennent sur le tunnel. Nous devons également configurer une certaine sécurité autour du Raspberry Pi lui-même et du tunnel.

sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

Activer le NAT.

sudo iptables -A FORWARD -i eth0 -o tun0 -j ACCEPTER

Autoriser tout trafic provenant de eth0 (interne) à passer par tun0 (tunnel).

sudo iptables -A FORWARD -i tun0 -o eth0 -m state --state RELATED, ESTABLISHED -j ACCEPT

Autoriser le trafic de tun0 (tunnel) à revenir sur eth0 (interne). Puisque nous spécifions l'état RELATED, ESTABLISHED, il sera limité à la connexion initiée depuis le réseau interne. Blocage du trafic externe essayant d'initier une nouvelle connexion.

sudo iptables -A INPUT -i lo -j ACCEPT

Autoriser le propre trafic de bouclage du Raspberry Pi.

sudo iptables -A ENTRÉE -i eth0 -p icmp -j ACCEPTER

Autoriser les ordinateurs du réseau local à envoyer un ping au Raspberry Pi.

sudo iptables -A ENTRÉE -i eth0 -p tcp --dport 22 -j ACCEPTER

Autoriser SSH depuis le réseau interne.

sudo iptables -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT

Autoriser le retour de tout le trafic initié par le Raspberry Pi. Il s'agit du même principe d'état que précédemment.

sudo iptables -P FORWARD DROP

sudo iptables -P INPUT DROP sudo iptables -L

Si le trafic ne correspond à aucune des règles spécifiées, il sera supprimé.

sudo apt-get install iptables-persistent

sudo systemctl activer netfilter-persistant

La première ligne installe une paix de code qui rend les règles iptable que nous venons de créer persistantes entre les redémarrages. Le second enregistre les règles après les avoir modifiées. Cette fois, il suffit de lancer le premier. Si vous modifiez les règles, exécutez la seconde pour enregistrer. Les règles Iptable sont en vigueur dès que vous les ajoutez si vous vous trompez et perdez l'accès, redémarrez simplement et celles qui ne sont pas déjà enregistrées seront rétablies.

Étape 6: Conclusion

Vous pouvez désormais utiliser ce tunnel depuis n'importe quel appareil ou ordinateur sur le même réseau. Remplacez simplement la passerelle par défaut par l'adresse IP de votre Raspberry Pi. Dans mon cas, mes deux centres multimédias Kodi (une chambre et un salon) utilisent cette connexion pour que je puisse diffuser mes chaînes de lecture suédoises. Bien sûr, il y a d'autres choses pour lesquelles vous pouvez également l'utiliser.

Gardez simplement à l'esprit que selon le fournisseur de VPN que vous avez choisi et la vitesse de votre connexion Internet, les performances peuvent être lentes.

Si vous avez des questions ou si vous voulez que je clarifie quelque chose, faites-le moi savoir dans les commentaires ! Pour plus d'articles techniques, veuillez visiter mon blog Hackviking!

Conseillé: