PI en tant que routeur VPN pour les machines locales

18

Je voudrais permettre à deux de mes machines d'accéder à Internet via une connexion VPN. Mon idée est que le PI peut simplement établir une connexion et acheminer les demandes des autres machines à travers elle.

Je pense que la mise en place d'un routeur par défaut de l'appareil à l'IP du PI.

Bien que vous ayez une certaine expérience de la configuration en ligne de commande d'une multitude de choses, pourriez-vous me montrer les instructions sur les packages / services dont j'ai besoin?

Résumé de la configuration:

  • PI se connectant à Internet directement via le routeur par défaut
  • PI crée une connexion VPN (OpenVPN) et écoute sur son interface locale le trafic
  • PI rétablit la connexion en cas de panne
  • les autres périphériques réseau ont une passerelle par défaut définie sur l'IP du PI et tout leur trafic passe par le VPN, à condition qu'il soit actif (et pas de connexion Internet si le VPN est en panne).

Je n'ai pas besoin de services NAT ou DHCP (DNS peut également passer par le VPN).

petr
la source
à quoi ça sert? si vous utilisez votre Pi sur votre réseau local pour créer une connexion sortante, pourquoi n'utilisez-vous pas vos autres ordinateurs pour créer directement une connexion sortante similaire, vous épargnant ainsi le coût de Pi et le casse-tête de l'installation et de la configuration logicielle? la configuration VPN conventionnelle est l'ordinateur sur votre réseau local, qui écoute les connexions entrantes et vérifie les mots de passe, puis laisse l'ordinateur distant utiliser directement votre réseau local, et non l'inverse.
lenik
1
@lenik, le fait est que j'ai une multitude de machines qui utilisent la même connexion VPN. En outre, il est beaucoup plus simple de configurer une seule machine que de changer la configuration de plusieurs machines en veillant à ce qu'elles recomposent, etc.
petr
1
Sans oublier que l'utilisation d'un autre appareil pour faire le routage permet de s'assurer que TOUT le trafic passe par le VPN beaucoup plus simple
petr
3
Certains appareils sont également incapables de se connecter aux VPN. Ces appareils incluent de nombreuses consoles de jeux et d'autres appareils qui n'exécutent pas de systèmes d'exploitation standard qui peuvent facilement être configurés pour se connecter à un VPN.
Kibbee
@lenik Cette configuration est courante dans les équipements de mise en réseau au niveau de l'entreprise. Il s'agit de routeurs intégrés à partir d'environ 300 $. L'OP recherche une solution pour environ un dixième du prix ... comme moi.
Philip Couling

Réponses:

15

J'ai la même configuration que vous:

Cable modem -> Router (192.168.1.1) +-> Raspberry Pi (192.168.1.11)
                                    |-> iPad (DHCP)
                                    |-> PC (DHCP)
                                    `-> AppleTV (DHCP)

Tout d'abord, j'ai changé mes paramètres réseau ( /etc/network/interfaces) sur le RPi en une adresse statique

iface eth0 inet static
address 192.168.1.11
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

Après cela, vous devez configurer OpenVPN sur le RPi:

sudo apt-get install openvpn

Ensuite, vous devez définir le fichier de configuration pour le vpn /etc/openvpn/server.conf. J'ai utilisé l'échantillon fourni par mon service vpn (Witopia) et le changement dev tunà dev tun0et ajouté redirect-gatewayà la fin.

Étape suivante, modifiez iptables pour autoriser NAT

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Pour le rendre permanent, enregistrez-le comme ceci

sudo bash
iptables-save > /etc/iptables.up.rules
nano /etc/network/if-pre-up.d/iptables

Ajoutez ceci au nouveau fichier:

#!/bin/bash
/sbin/iptables-restore < /etc/iptables.up.rules

Enregistrez-le et exécutez-le avec chmod +x /etc/network/if-pre-up.d/iptables. Vous devez maintenant activer le transfert IP en modifiant /etc/sysctl.confet décommentant la lignenet.ipv4.ip_forward = 1

Le redémarrage et le RPi doivent se connecter à votre VPN et être prêts à recevoir le trafic entrant. J'ai ajouté une nouvelle option à mon service DHCP sur mon routeur (exécutant OpenWrt) pour spécifier la passerelle envoyée au client. J'ai ajouté la ligne list 'dhcp_option' '3,192.168.1.11'au fichier /etc/config/dhcpet redémarré le routeur. Mon iPad, PC et AppleTV se connectent désormais via le RPi pour accéder aux URL externes.

Sources:

StebQC
la source
1
Je viens de terminer la configuration d'une configuration similaire le week-end dernier. J'ai également dû ajouter "net.ipv4.tcp_ecn = 0" au fichier /etc/sysctl.conf. Je ne sais pas ce qu'il fait, mais la passerelle ne fonctionnerait pas correctement sans elle.
Kibbee
Cela a fonctionné pour moi, avec une modification: la règle NAT devrait êtreiptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
Regan Walsh
0

Essayer

https://help.ubuntu.com/community/OpenVPN

Raspbian devrait être suffisamment proche d'Ubuntu pour que la configuration soit la même, et je viens de vérifier que le package OpenVPN est disponible dans le dépôt Raspbian.

Cependant, notez que la plupart des instructions VPN vous diront comment créer un serveur pour ouvrir votre LAN aux clients VPN sur Internet plutôt que vice-versa, vous devrez donc peut-être expérimenter un peu avec les paramètres de routage.

Matt Thomason
la source
Merci, je comprends un peu mieux ce que je ne sais pas comment faire pour que le PI écoute les connexions et les transfère via le VPN?
petr
1
@petr Vous avez juste besoin d'exécuter sysctl -w net.ipv4.ip_forward = 1, et demandez à vos autres machines d'utiliser le RPI comme passerelle par défaut, et le RPI se fera un plaisir de router.
nos
0

Je ne sais pas si cela est utile, mais j'utilise VPN sur Raspberry Pi d'un fournisseur de VPN lorsque je voyage hors des États-Unis en Chine , ils ont un script dd-wrt que j'ai installé et cela a fonctionné dès la première fois. Ainsi, vous pouvez vous épargner beaucoup de problèmes si vous recherchez un fournisseur avec un script dd-wrt déjà fait. Si quelqu'un est curieux du script, je peux le poster ici.

Michael Donnahew
la source
0

Voici ma configuration qui est très similaire à votre besoin; la seule chose dont vous avez besoin, installer le client OpenVPN et faire quelques configurations sur le Raspbian. entrez la description de l'image ici

Je l'ai décrit dans mon blog; Configuration de la passerelle VPN avec Raspberry PI

afelaho
la source
Bonjour et bienvenue! Pour l'instant, je ne pense pas que la question "pourriez-vous s'il vous plaît me diriger vers les directions sur les forfaits / services dont j'ai besoin? Pourriez-vous s'il vous plaît me diriger vers les directions sur les forfaits / services dont j'ai besoin?" est abordé dans la réponse. Pourriez-vous développer un peu plus sans obliger les gens à suivre le lien (qui n'est en fait que le chiffre)?
Ghanima
@Ghanima, merci pour votre commentaire. J'ai changé ma réponse.
afelaho