Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 20-04-2015 09:34:07

Lunatic
Membre
Lieu : Lyon
Distrib. : Fedora 24
Noyau : Linux 4.6.5-300.fc24.x86_64
(G)UI : Gnome
Inscription : 03-08-2013
Site Web

Utilisation d'un VPN

Bonjour à tout·te·s,

J'ai récemment souscrit à un abonnement VPN et j'aimerais que l'ensemble de mes machines en bénéficient. L'idée serait de configurer le service VPN sur un Raspberry Pi (connecté en ethernet sur la box) et de faire en sorte que les autres machines ne se connectent non plus directement sur le wifi de la box, mais sur le RPi.

Je suppose que ce n'est pas trop sorcier à mettre en place… mais je ne sais pas comment m'y prendre. J'imagine qu'il faut créer un réseau Wifi « depuis » le Rpi et faire de ce dernier un serveur DNS ?

Parallèlement, une autre question me taraude : sur ce Rpi est hébergé un petit site. Il faudrait que ce dernier soit accessible depuis l'extérieur. Une fois le VPN configuré, le RPi peut-il « répondre » sur son adresse IP « réelle » ? J'imagine qu'il faut jouer avec iptables ?

Merci smile

Je suis aussi sur Twitter et nouvellement sur Diaspora*
Mon blog de geekeries : HAL-9000

(J'applique la règle de proximité)

Hors ligne

#2 20-04-2015 13:16:34

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian Stretch/Sid/Rc-Buggy
Noyau : Linux (≥ 4.3)
(G)UI : i3-wm (≥ 4.11)
Inscription : 07-07-2008
Site Web

Re : Utilisation d'un VPN

Salut,

En fait, c'est une question de routes.
Si tu parles de wifi, je suppose que tes machines sont en réseau en local ?

Dans ce cas, c'est assez simple.

Supposons

  • que ton réseau local soit en 192.168.0.0/24,

  • que ton raspberry pi ait pour ip sur ce réseau 192.168.0.254

  • que ta box ait pour ip sur ce réseau 192.168.0.1

  • que ton VPN soit en 192.168.1.0/24

  • que on VPN soit sur l'interface tun0 sur ton RPi

  • que l'adresse IP de la passerelle VPN, dans le VPN soit 192.168.1.254

  • et que l'ip publique du serveur VPN soit a.b.c.d.



Tes PC connectés sur le réseau local doivent avoir dans leur table de routage quelque chose comme :

192.168.0.0   0.0.0.0         255.255.255.0 U    0      0        0 eth0
0.0.0.0         192.168.0.254   0.0.0.0         UG    0      0        0 eth0



Ton RPi qui fait client VPN doit avoir dans ses tables quelque chose comme ça :

192.168.0.0   0.0.0.0         255.255.255.0 U    0      0        0 eth0
192.168.1.0   0.0.0.0         255.255.255.0 U    0      0        0 tun0
a.b.c.d       192.168.0.1     0.0.0.0       UG   0      0        0 eth0
0.0.0.0       192.168.1.254   0.0.0.0       UG   0      0        0 tun0



Ton RPi doit activer le forwarding nat

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o tun0 -s 192.168.0.0/24 -j MASQUERADE



Ensuite, il y a effectivement la question des DNS.
Tu peux installer un serveur de DNS faisant office de cache sur ton RPi, et déléguant les requêtes à un serveur DNS public, comme opendns/google, ou directement aux DNS racines (ce que fait Bind9.)
Dans ce cas, tu donneras comme serveur DNS l'ip du Rpi.

Sinon, tu peux aussi donner directement aux pc du réseau l'ip des DNS publics.


captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.

Hors ligne

#3 21-04-2015 13:01:12

raleur
Membre
Inscription : 03-10-2014

Re : Utilisation d'un VPN

Lunatic a écrit :

sur ce Rpi est hébergé un petit site. Il faudrait que ce dernier soit accessible depuis l'extérieur. Une fois le VPN configuré, le RPi peut-il « répondre » sur son adresse IP « réelle » ? J'imagine qu'il faut jouer avec iptables ?


Non, pas nécessairement. Un "simple" routage avancé basé sur l'adresse IP source des paquets émis peut suffire pour les services n'utilisant que des connexions TCP entrantes ou du moins qui répondent avec la même adresse IP.

ip rule iif lo from $ADRESSE_IP table $TABLE
pour chaque route de la table principale sauf la route par défaut
    ip route add $DESTINATION [ via $PASSERELLE ] [ dev $INTERFACE ] table $TABLE
ip route add default [ via $PASSERELLE ] [ dev $INTERFACE ] table $TABLE

Hors ligne

#4 24-04-2015 10:42:27

nikau
Banni(e)
Distrib. : jessie
Noyau : 3.16.0-4-amd64
(G)UI : Xfce 4.10.1
Inscription : 19-10-2011

Re : Utilisation d'un VPN

raleur a écrit :

Lunatic a écrit :

sur ce Rpi est hébergé un petit site. Il faudrait que ce dernier soit accessible depuis l'extérieur. Une fois le VPN configuré, le RPi peut-il « répondre » sur son adresse IP « réelle » ? J'imagine qu'il faut jouer avec iptables ?


Non, pas nécessairement. Un "simple" routage avancé basé sur l'adresse IP source des paquets émis peut suffire pour les services n'utilisant que des connexions TCP entrantes ou du moins qui répondent avec la même adresse IP.

ip rule iif lo from $ADRESSE_IP table $TABLE
pour chaque route de la table principale sauf la route par défaut
    ip route add $DESTINATION [ via $PASSERELLE ] [ dev $INTERFACE ] table $TABLE
ip route add default [ via $PASSERELLE ] [ dev $INTERFACE ] table $TABLE




Ces lignes sont <<imboufables>> pour celui qui ne connait pas le routage avancé si tu ne donnes pas un exemple, en plus tel que présenté cela ne fonctionnera pas, il faut indiquer la table à iproute2

dans  /etc/iproute2/rt_tables   rajouter: 

1     connection




adapter:
passerelle :192.168.0.254
réseau:192.168.0.0/24
ip local: 192.168.0.100
interface:eth0

ip route add default via 192.168.0.254  table connection
ip route add 192.168.0.0/24 dev eth0 src 192.168.0.100 table connection
ip rule add from 192.168.0.100 table connection

Hors ligne

#5 24-04-2015 12:16:40

raleur
Membre
Inscription : 03-10-2014

Re : Utilisation d'un VPN

Si ces lignes sont "imbouffables", je compte sur Lunatic pour demander des éclaircissements.

nikau a écrit :

tel que présenté cela ne fonctionnera pas, il faut indiquer la table à iproute2 dans  /etc/iproute2/rt_tables


Pas besoin : il suffit de désigner la table directement par son numéro, qui peut être choisi entre 1 et 252.

Hors ligne

#6 24-04-2015 12:40:43

nikau
Banni(e)
Distrib. : jessie
Noyau : 3.16.0-4-amd64
(G)UI : Xfce 4.10.1
Inscription : 19-10-2011

Re : Utilisation d'un VPN

raleur a écrit :

Si ces lignes sont "imbouffables", je compte sur Lunatic pour demander des éclaircissements.

nikau a écrit :

tel que présenté cela ne fonctionnera pas, il faut indiquer la table à iproute2 dans  /etc/iproute2/rt_tables


Pas besoin : il suffit de désigner la table directement par son numéro, qui peut être choisi entre 1 et 252.



justement le numéro n'est pas spécifié par un exemple concret...  une exemple concret évite de faire chercher inutilement et aller directement au résultat escompté.

Hors ligne

#7 24-04-2015 16:46:19

Lunatic
Membre
Lieu : Lyon
Distrib. : Fedora 24
Noyau : Linux 4.6.5-300.fc24.x86_64
(G)UI : Gnome
Inscription : 03-08-2013
Site Web

Re : Utilisation d'un VPN

En tout cas merci pour vos réponses. Je n'ai pas eu le temps de me repencher sur la question depuis l'ouverture du fil. Une lecture rapide me fait penser que ça ne va pas être de la tarte, à moi qui ne pige pas grand chose en réseau. Je reviendrai avec des questions précises lorsque j'essaierai de mettre cela en œuvre.

Je suis aussi sur Twitter et nouvellement sur Diaspora*
Mon blog de geekeries : HAL-9000

(J'applique la règle de proximité)

Hors ligne

Pied de page des forums