Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:reseau:ssh:vpn [16/09/2012 21:53] martin_mtl |
doc:reseau:ssh:vpn [04/10/2013 09:30] smolski [À l'attaque] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | <note>Tuto récent, des erreurs peuvent s'y être glissées; soyez vigilents et merci de faire suivre vos remarques sur [[http://debian-facile.org/forum.php|le forum Debian Facile]]</note> | + | Tuto récent, des erreurs peuvent s'y être glissées; soyez vigilents et merci de faire suivre vos remarques ici : |
+ | * [[http://debian-facile.org/forum.php|le forum debian-facile.org]] | ||
====== VPN avec SSH ====== | ====== VPN avec SSH ====== | ||
Ligne 6: | Ligne 7: | ||
* Niveau requis : DÉBUTANT | * Niveau requis : DÉBUTANT | ||
* Commentaires : // Contexte d'utilisation du sujet du tuto. // | * Commentaires : // Contexte d'utilisation du sujet du tuto. // | ||
- | * Débutant, à savoir : [[manuel:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | + | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) |
- | * [[:vpn|VPN ou le Réseau privé virtuel]] | + | * [[:doc:reseau:reseau|Réseaux et VPN]] |
- | * [[manuel:ip_publique|Connaitre son IP]] | + | * [[:doc:reseau:ip-publique|Connaitre son IP]] |
- | * [[commande:ssh|La commande SSH]] | + | * [[:doc:reseau:ssh|La commande SSH]] |
===== Introduction ===== | ===== Introduction ===== | ||
Ligne 32: | Ligne 33: | ||
* ajouter l'option -w 0:0 à la commande ssh. | * ajouter l'option -w 0:0 à la commande ssh. | ||
- | root@travail # ssh -w 0:0 root@maison | + | <file root>ssh -w 0:0 root@maison</file> |
<note>L'option -w pour le mode tunnel. 0:0 définissent le numéro des interfaces tun à utiliser. Any peut être utilisé à la place d'un numéro pour utiliser la première interface disponible</note> | <note>L'option -w pour le mode tunnel. 0:0 définissent le numéro des interfaces tun à utiliser. Any peut être utilisé à la place d'un numéro pour utiliser la première interface disponible</note> | ||
Mais une fois logé sur maison, il remarque ce message: | Mais une fois logé sur maison, il remarque ce message: | ||
- | //channel 0: open failed: administratively prohibited: open failed// | + | channel 0: open failed: administratively prohibited: open failed |
- | Et oui, par défaut le serveur ssh n'est pas configuré pour créer des **tunnels**! | + | Et oui, par défaut le serveur ssh n'est pas configuré pour créer des **tunnels**! \\ |
- | Il vérifie quand même avec **ifconfig -a** ; mais ne voit pas d'interface nommée **tun0** :-? | + | Il vérifie quand même avec la commande : |
- | Il modifie donc le **configuration** du **demon ssh** dans **/etc/ssh/sshd_config** avec la ligne: | + | <file root>ifconfig -a</file> |
+ | mais ne voit pas d'interface nommée **tun0** :-? \\ | ||
+ | Il modifie(([[doc:editeurs:nano | commande d'étition de fichier NANO]])) donc le **configuration** du **demon ssh** : | ||
+ | <file root>nano /etc/ssh/sshd_config</file> | ||
+ | |||
+ | avec la ligne: | ||
PermitTunnel yes | PermitTunnel yes | ||
- | Il relance le demon ssh: | ||
- | # service ssh restart | + | Il relance le demon ssh: |
+ | <file root>service ssh restart</file> | ||
Quitte et relance la connexion ssh. | Quitte et relance la connexion ssh. | ||
==== Interface tun maison ==== | ==== Interface tun maison ==== | ||
+ | |||
De nouveau logé en root sur maison plus de message d'alerte. | De nouveau logé en root sur maison plus de message d'alerte. | ||
- | Il utilise ifconfig -a pour voir toutes les interfaces, mêmes celles non activées. | + | Il utilise : |
+ | <file root>ifconfig -a</file> | ||
+ | |||
+ | pour voir toutes les interfaces, mêmes celles non activées. | ||
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 | tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 | ||
POINTOPOINT NOARP MULTICAST MTU:1500 Metric:1 | POINTOPOINT NOARP MULTICAST MTU:1500 Metric:1 | ||
- | Au passage, un petit **lsmod | grep tun** montre que le module **tun** à été lancé par **ssh pour créer l'inteface tun0**. | + | |
+ | Au passage, un petit : | ||
+ | <file user>lsmod | grep tun</file> | ||
+ | |||
+ | montre que le module **tun** à été lancé par **ssh pour créer l'inteface tun0**. | ||
Il est donc logé **root** à la maison, et commence par y **configurer l'interface virtuelle tun0**, puis l'active: | Il est donc logé **root** à la maison, et commence par y **configurer l'interface virtuelle tun0**, puis l'active: | ||
+ | <file root>ifconfig tun0 172.16.0.1 netmask 255.255.255.252</file> | ||
+ | <file root>ifconfig tun0 up</file> | ||
- | # ifconfig tun0 172.16.0.1 netmask 255.255.255.252 | + | Un petit |
- | # ifconfig tun0 up | + | <file root>ifconfig</file> |
- | Un petit **ifconfig** permet de vérifier que **tun0** à bien une **ip** et est en mode **UP**. | + | |
+ | permet de vérifier que **tun0** à bien une **ip** et est en mode **UP**. | ||
==== Interface tun boulot ==== | ==== Interface tun boulot ==== | ||
- | En laissant ouverte la première console qui est connectée à la maison, il ouvre une deuxième console sur son poste au travail. | ||
- | En root il crée l'**interface virtuelle** côté **boulot** donc: | ||
- | boulot # ifconfig tun0 172.16.0.2 netmask 255.255.255.252 up | + | En laissant ouverte la première console qui est connectée à la maison, il ouvre une deuxième console sur son poste au travail. \\ |
+ | En root il crée l'**interface virtuelle** côté **boulot** donc: | ||
+ | <file root>ifconfig tun0 172.16.0.2 netmask 255.255.255.252 up</file> | ||
Plus besoin d'être root maintenant. | Plus besoin d'être root maintenant. | ||
==== Test de communication des interfaces tun ==== | ==== Test de communication des interfaces tun ==== | ||
- | __A partir du boulot:__ | ||
- | Un **ping** sur l'ip de l'**interface virtuelle** qui se trouve à la **maison**: | ||
- | $ ping 172.16.0.1 | + | __A partir du boulot:__ |
+ | Un **[[doc:reseau:ping]]** sur l'ip de l'**interface virtuelle** qui se trouve à la **maison**: | ||
+ | <file user>ping 172.16.0.1</file> | ||
Le ping rebondit; les interfaces communiquent bien ! | Le ping rebondit; les interfaces communiquent bien ! | ||
==== Routage du boulot ==== | ==== Routage du boulot ==== | ||
- | En root, il configure une **route** précisant que pour aller sur le réseau **192.168.1.0/24** ( réseau local de la maison), les paquets doivent partir du boulot par **tun0**: | ||
- | # route add -net 192.168.1.0 netmask 255.255.255.0 gw 172.16.0.1 tun0 | + | En root, il configure une **route** précisant que pour aller sur le réseau **192.168.1.0/24** ( réseau local de la maison), les paquets doivent partir du boulot par **tun0**: |
+ | <file root>route add -net 192.168.1.0 netmask 255.255.255.0 gw 172.16.0.1 tun0</file> | ||
Il tente un ping sur une machine se trouvant aussi dans le réseau local de la maison: | Il tente un ping sur une machine se trouvant aussi dans le réseau local de la maison: | ||
- | <note tip>merci de me proposer une commande plus propre pour créer la route, je nai pas réussi à utiliser la version ip/bits</note> | + | FIXME merci de me proposer une commande plus propre pour créer la route, je nai pas réussi à utiliser la version ''ip/bits'' |
- | $ ping 192.168.1.55 | + | <file user>ping 192.168.1.55</file> |
Mais pas de réponse... | Mais pas de réponse... | ||
Les messages s'arrêtent à son pc de la maison. | Les messages s'arrêtent à son pc de la maison. | ||
Il faut activer l'**ip forwarding**, pour que ce dernier **laisse passer** à travers lui les messages destinés **aux autres machines** de la maison (le réseau local 192.168.1.0/24 entier): | Il faut activer l'**ip forwarding**, pour que ce dernier **laisse passer** à travers lui les messages destinés **aux autres machines** de la maison (le réseau local 192.168.1.0/24 entier): | ||
+ | <file root>echo 1 > /proc/sys/net/ipv4/ip_forward</file> | ||
- | maison # echo 1 > /proc/sys/net/ipv4/ip_forward | ||
Puis activer le NAT : | Puis activer le NAT : | ||
- | + | <file root>iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE</file> | |
- | # iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE | + | |
==== Test du tunnel créé ==== | ==== Test du tunnel créé ==== | ||
+ | |||
Du boulot, il tente de pinger la TrucBox de sa maison en utilisant son ip du réseau local de la maison: | Du boulot, il tente de pinger la TrucBox de sa maison en utilisant son ip du réseau local de la maison: | ||
+ | <file user>ping 192.168.1.254</file> | ||
- | $ ping 192.168.1.254 | + | //Ça ping pour Tux// LOL |
- | Ca ping pour Tux LOL | + | |
<note>l'ip de la trucBox peut varier selon le modèle.</note> | <note>l'ip de la trucBox peut varier selon le modèle.</note> | ||
Ligne 138: | Ligne 157: | ||
two networks to be joined securely. The sshd_config(5) configuration option PermitTunnel controls whether the | two networks to be joined securely. The sshd_config(5) configuration option PermitTunnel controls whether the | ||
server supports this, and at what level (layer 2 or 3 traffic). | server supports this, and at what level (layer 2 or 3 traffic). | ||
- | . | + | |
The following example would connect client network 10.0.50.0/24 with remote network 10.0.99.0/24 using a point-to- | The following example would connect client network 10.0.50.0/24 with remote network 10.0.99.0/24 using a point-to- | ||
point connection from 10.1.1.1 to 10.1.1.2, provided that the SSH server running on the gateway to the remote net‐ | point connection from 10.1.1.1 to 10.1.1.2, provided that the SSH server running on the gateway to the remote net‐ | ||
Ligne 166: | Ligne 185: | ||
==== Sources ==== | ==== Sources ==== | ||
+ | * sujet du forum Debian Facile dédiée à cette page du Wiki [[http://debian-facile.org/viewtopic.php?id=5864|ici (réservé aux inscrits)]] | ||
* Pages de manuel SSH: | * Pages de manuel SSH: | ||
- | $ man ssh | + | man ssh |
* Page basée sur ce : [[http://www.pointslash.eu/?p=94|tuto du site PointSlash]] | * Page basée sur ce : [[http://www.pointslash.eu/?p=94|tuto du site PointSlash]] |