# [Howto] Tunnels et utilisation avancée de ssh

## scout

"Là où ssh passe, tout passe": telle est la devise que nous allons démontrer dans ce Howto

Configuration de ssh

Je rapelle que le fichier de configuration de ssh est dans ~/.ssh/config

Le format y est documenté dans "man ssh_config"

typiquement ça ressemble à ça:

```
ForwardAgent=yes

Host=raccourci

Hostname=machine.domaine.com

User=nom_utilisateur

Compression=yes

Host=hote2

Hostname=ordi.projet.org

User=dugland

Compression=no

Host=*

Compression=yes
```

ainsi si vous tapez "ssh raccourci" cela revient à faire

```
ssh -A -C nom_utilisateur@machine.domaine.com
```

ce qui est un gain de temps appréciable (-A est l'option qui correspond à ForwardAgent=yes et -C à Compression=yes)

pour ce qui est de l'ordre des paramètres:

 *man ssh_config wrote:*   

>      ssh obtains configuration data from the following sources in the following order:
> 
>            1.   command-line options
> 
>            2.   user's configuration file ($HOME/.ssh/config)
> ...

 

Par exemple si le fichier de conf est:

```
Compression=yes

Host=hote2

Hostname=ordi.projet.org

User=dugland

Compression=no
```

Alors, ssh hote2 va activer la compression.

Ainsi spécifier des paramètres au début du fichier c'est spécifier pour toutes les connexions. Si on veux que le paramètre puisse être changé dans la configuration spécifique à un hote, il faut faire:

```
Host=hote2

Hostname=ordi.projet.org

User=dugland

Compression=no

Host=*

Compression=yes
```

alors, ssh hote2 n'aura pas la compression, contrairement à tous les autres ssh bidule@machin que l'on executera

Connexion sans mot de passe

Pour ce faire on doit créer une clef publique.

Manière simple

création de la clef:

```
ssh-keygen -t rsa -b 1024
```

 pour créer une clef rsa de 1024 bits

Mettez une passphrase vide et laissez le fichier à son endroit par défaut.

Ensuite

```
scp ~/.ssh/id_rsa.pub hote:

ssh hote

# sur l'hôte distant:

cat id_rsa.pub >> ~/.ssh/authorized_keys

# on peux enlever id_rsa.pub sur l'hote distant:

rm id_rsa.pub
```

maintenant "ssh hote" ne devrait plus vous demander de mot de passe

Manière un peu plus sécu

lire ceci: Guide de Keychain pour Gentoo Linux

Le principe du "Forward Agent"

en réalité quand vous faites "ssh hote" avec le mécanisme de clef, l'authentification se fait grace à la clef privée chez vous: ~/.ssh/id_rsa (à garder précieusement, toute personne qui s'en empare peux se logguer là où vous avez mis vos clef publique si vous avez suivi la méthode simple)

maintenant admettons que vous soyez derrière l'écran de la machine A, sur laquelle vous êtes admin, et que vous souhaitez vous logger sur B sans mot de passe: pas de problème, vous faitez comme décrit ci dessus.

Si maintenant de B vous souhaitez vous logguer sur C, il vous faut faire pareil, mais si vous n'avez pas confiance en l'admin de B alors ça pose problème: en effet l'admin de B pourrait récupérer la clef privée qui est dans votre home sur B et s'en servir pour se logguer sur C.

Il ne faut donc pas mettre de clef privée sur B.

Pour ce faire vous mettez ForwardAgent=yes dans les fichiers de config des 3 machines A, B et C (pêut être pas nécessaire sur les 3 mais bon ...) et vous copiez votre clef publique sur B et C (pas la peine de créer de clef privée sur B ...). Alors, une fois loggé sur B, le "ssh C" ne demande pas de mot de passe car grace au forward agent, ssh sait authentifier grace à la clef publique de A.

Tunnels à travers ssh

Les tunnels via ssh ne sont que des tunnels TCP. si vous souhaitez faire des tunnels pour UDP (le tunnel étant toujours en TCP) alors vous pourrez regarder zebedee (dans portage).

Le LocalForward par l'exemple

Si votre ~/.ssh/config contient ceci:

```
Host=A

Hostname=machine.internet.pipo

User=blah

LocalForward=1234 serveurweb.internet.pipo:80
```

Alors lors de "ssh A" un tunnel est crée:

prenez votre navigateur web favori et allez sur http://localhost:1234

à ce moment là les paquets que vous envoyez sur localhost:1234 passent à travers ssh et arrivent jusqu'a machine.internet.pipo. Une fois là bas ils sont envoyés à serveurweb.internet.pipo sur le port 80 de manière normale (comprendre, sans ssh et de manière non cryptée ...). Les paquets en retour suivent le chemin inverse et la page web de serveurweb.internet.pipo s'affiche dans votre navigateur.

Le RemoteForward

il sert à faire passer les connexions dans l'autre sens: avec le localforward vous mettez en place un tunnel où vous initiez les connexions vers la machine distante, avec un certain port. Avec le Remote Forward, c'est la machine distante qui peux initier les connexions vers un certain port de votre ordinateur. (cf la doc ...)

Le DynamicForward par l'exemple

Il permet de créer un proxy socks sur le port spécifié.

Par exemple

```
Host=A

Hostname=machine.internet.pipo

User=blah

DynamicForward=1234
```

ensuite vous pouvez configurer votre programme pour utiliser le proxy socks crée par ssh sur votre machine. si votre programme ne supporte pas les proxy socks, utilisez tsocks ou dante.

exemple de configuration avec tsocks (paquet tsocks dans portage): 

fichier /etc/socks/tsocks.conf:

```
server = 127.0.0.1

server_port = 1234

server_type = 5
```

ensuite le fait de lancer "tsocks navigateur_web_favori" vous permettra d'accéder à la page web de serveurweb.internet.pipo en tapant http://adresse_ip_serveurweb_internet_pipo dans la barre d'addresses.

Petite remarque: si vous voulez utiliser un client ftp il vaux mieux le configurer en mode passif; en effet je n'ai pas l'impression que le proxy socks crée par ssh supporte l'utilisation du mode actif. je ne suis arrivé pour l'instant qu'a faire marcher ncftp lançé avec tsocks. lftp compilé avec USE=socks5 ne marchait pas pour moi ...

Tunnels avec ssh en plusieurs sauts

Méthode grace à ce que l'on a vu

vous êtes sur la machine A, vous êtes derrière un firewall qui ne vous permet que de vous connecter à B en ssh. Par contre une fois loggé sur B vous pouvez vous connecter en ssh sur les machines d'internet. Vous souhaitez récupérer grace à scp des fichiers qui sont sur une machine C sur internet.

Avant vous vous loggiez sur B vous récupériez vos fichiers de C vers B puis de B vers A. seulement l'admin de B n'est pas content car vous mettez vraiment de gros fichiers sur B, et en plus ce ne sont pas des fichiers pour votre travail.

Vous souhaiteriez pouvoir vous connetcer directement à C par un tunnel pour que l'admin de B n'y voie que du feu.

Vous mettez donc en place un LocalForward:

```
Host=B

Hostname=serveurssh.reseau_interne.fr

User=dupont

LocalForward=1234 machine_C.domaine.com:22

Host=CviaB

Hostname=localhost

Port=1234

User=moi
```

là vous prenez une console et vous faites "ssh B"

vous prenez une autre console et vous faites "ssh CviaB" et hop vous êtes directement sur C! maintenant vous pouvez faire "scp CviaB:video_interessante.avi ." en tranquilité.

Encore mieux grâce à la ProxyCommand

oui vous arrivez à vous connecter sur C directement, mais vous avez fait pareil sur une machine D et ssh râle à chaque fois car les clef des hôtes changent.

En plus ce salaud d'admin sur B a compris votre manège et a mis un "AllowTcpForwarding=no" dans le fichier de conf du serveur ssh sur B.

De toute façon ça vous emmerdait d'avoir deux clients ssh à lancer dans deux consoles différentes ...

On va utiliser le paramètre ProxyCommand.

Par exemple:

```
Host=B

Hostname=serveurssh.reseau_interne.fr

User=dupont

Host=CviaB

User=user_sur_C

ProxyCommand=ssh B nc -q 0 machine_C.domaine.com 22
```

grace à la proxy command, ssh va se rediriger dans l'entrée standard de cette commande et va récupérer les paquets en retour dans la sortie standard de cette commande. ainsi un "ssh CviaB" tout seul va vous connecter sur C.

l'option -q 0 de netcat est pour signaler à netcat de se terminer lorsque l'on se déloggue de C, en effet dans le cas contraire il va rester des processus fous.

Ceci requiere que netcat soir installé sur B. que faire dans le cas contraire ?

soit vous compilez netcat dans votre home sur B

soit vous utilisez le netcat présent sur C si il y en a un.

Le fichier de conf prends alors la forme:

```
Host=B

Hostname=serveurssh.reseau_interne.fr

User=dupont

Host=CviaB

User=user_sur_C

ProxyCommand=ssh B ssh moi@machine_C.domaine.com nc -q 0 127.0.0.1 22
```

Pour que ceci marche il faut que le "ssh moi@machine_C.domaine.com" qui est executé sur B ne demande pas de mot de passe. En effet je vous rappelle que ceci est basé sur la redirection des entrées et sorties de la ProxyCommand et vous ne pouvez donc pas tapez votre mot de passe ...

Reprendre les téléchargements non finis avec rsync

Voilà maintenant que vous avez appris à faire tout ça vous pouvez faire passer des données via vos tunnels ssh, et vous connecter à une machine via plusiers sauts.

Si vous souhaitez copier de gros fichiers entre la machine distante et vous, la solution la plus simple consiste à utiliser scp.

Mais si une coupure réseau se produit, et que votre téléchargement n'est pas fini, il n'est pas possible de le reprendre directement avec scp.

remplacez votre commande scp par rsync: rsync prends exactement les mêmes arguments que scp, et utilise ssh en coulisse, mais lui sait reprendre les téléchargements non finis.

Pour ce type d'utilisation, les options les plus utiles à rajouter de rsync sont --partial et --size-only; pour une meilleur visualisation de l'avancement du téléchargement, les options -v, --progress et --stats.

plus d'infos dans la documentation de rsync

Ce Howto est sous licence FDL

(merci à Ey pour l'explication de la ProxyCommand et du DynamicForward et à Celeborn pour la correction des fautes)

----------

## kernelsensei

Alors la !!!! Merci tout plein pour le beau HOWTO !!  :Very Happy: 

----------

## Polo

ouai, bravo!!!

a ajouter dans la liste des howtos, et en bonne place   :Laughing: 

----------

## Celeborn

Que dire...... Merci   :Exclamation: 

je crois que ça résume bien la situation !

----------

## kwenspc

ah quel beau howto!

retour sur impression :

en voyant le sujet je me suis dit : "Quel bonne idée!"

En voyant le contenu plus qu'interéssant j'ai pensé : "Nan c'est pas possible!"

Après avoir remarqué qu'il était complet : "Incroyaaable!"

Et enfin, après tout ceci il a bien fallu triompher : "Genial!"

merci scout!

----------

## scout

 *kwenspc wrote:*   

> ah quel beau howto!
> 
> retour sur impression :
> 
> en voyant le sujet je me suis dit : "Quel bonne idée!"
> ...

 

Ah merci merci  :Very Happy: 

----------

## babykart

impek'...  :Wink: 

un grand merci   :Very Happy: 

----------

## Pachacamac

Ah c'est bien expliqué !

Tu as prévu d'ajouter X11 forwarding ? Je voulais l'utiliser cet aprem mais ca ne marche pas chez moi... j'attend donc la suite de ton tuto avec impatience !   :Wink: 

----------

## zdra

Pour tout dire, j'imprime !!! c'est un topic que j'aurais fini par poster sous forme d'une question pendant les vacs  :Laughing: 

merci   :Exclamation: 

 *Quote:*   

> Le format y est documenté dns "man ssh_config" 

 

dns -> dans

Pour le X11forwarding moi ça foire à cause de ça: https://bugs.gentoo.org/show_bug.cgi?id=70585

----------

## scout

 *zdra wrote:*   

>  *Quote:*   Le format y est documenté dns "man ssh_config"  
> 
> dns -> dans

 corrigé

----------

## Pachacamac

Bien joué ! 

Je viens de commenter #DISPLAY DEFAULT=${REMOTEHOST}:0.0 OVERRIDE=${DISPLAY} dans /etc/security/pam_env.conf 

Ca à l'air de fonctionner, du moins en local, mais je ne peux pas le tester à distance...

----------

## bob1977

Très bon Howto! Félicitations

----------

## Enlight

Wow! direction bookmark de suite! Merci!!!

----------

## Trevoke

 *Pachacamac wrote:*   

> Bien joué ! 
> 
> Je viens de commenter #DISPLAY DEFAULT=${REMOTEHOST}:0.0 OVERRIDE=${DISPLAY} dans /etc/security/pam_env.conf 
> 
> Ca à l'air de fonctionner, du moins en local, mais je ne peux pas le tester à distance...

 

Fais peter le mot de passe root..   :Twisted Evil: 

----------

## Pachacamac

Nan je le garde ! 

Je sais que tu es méchant !  :Razz: 

Cet aprem je n'arrivai pas à accéder à ma machine depuis la fac, en fait je ne l'avais pas allumé avant de partir   :Laughing: 

----------

## Trevoke

http://www.bash.org/?5273

C'est tout ce que j'ai a dire  :Smile: 

----------

## Enlight

Ah j'ai eu pareil aujourd'hui... sauf que c'est ma mère qui l'a éteint l'ordi et elle, pour éteindre... elle appuye sur le bouton!!!  :Evil or Very Mad:   :Evil or Very Mad:   :Evil or Very Mad: 

----------

## yuk159

Merci scout pour le How-to et pour m'avoir prévenu et désolé du temps de réaction  :Wink: 

@+

----------

## scout

 *yuk159 wrote:*   

> Merci scout pour le How-to et pour m'avoir prévenu et désolé du temps de réaction 

 

T'as pas à t'excuser, déja que tu te tapes le boulot fastidieux de regrouper les howto, c'est pas moi qui irait critiquer ton temps de réaction ...

Bon sinon je vais bientôt ajouter une section sur le DynamicForward ... un truc encore plus énorme que le LocalForward  :Very Happy: 

----------

## scout

Ajout de la section sur le fabuleux DynamicForward et sur l'utilisation de rsync pour la copie efficace de fichiers. Merci à Ey pour ses explications.

----------

## Pachacamac

Va falloir que j'essaye le DynamicForward à la fac. Le proxy interdit certains sites mais je me demande s'il n'est pas possible d'y accéder comme ça...   :Rolling Eyes: 

----------

## zdra

Tant qu'on est dans le sujet de SSH:

J'ai une question, je suis maintenant derriere un routeur ADSL, donc c'est le routeur qui a la connection internet et qui la partage sur les autre pc du réseau. Depuis l'extérieur alors comment faire pour se connecter en ssh sur l'un des ordi du réseau ? Si je fais une connection sur le routeur il me refuse. J'ai le routeur depuis se matin j'ai pas encore eu le temps de lire la documentation au complet et regarder partout si ils en parlent mais ça m'étonnerait.

Moi il me semble qu'une solution serait de faire de router le port 22 du routeur vers le port 22 d'une des machines du réseau local ??? on sait faire ça avec un routeur classique ?

Merci de m'éclairer sur la question  :Smile: 

----------

## scout

 *zdra wrote:*   

> Moi il me semble qu'une solution serait de faire de router le port 22 du routeur vers le port 22 d'une des machines du réseau local ??? on sait faire ça avec un routeur classique ?

 

oui c'est la solution la meilleure, et normalement tous les routeurs y arrivent

----------

## anigel

Clap clap clap !

Excellent travail ! 19/20 ! (oui, parcequ'on peut toujours faire mieux  :Laughing: ).

----------

## kwenspc

je pensais : ça serait intéréssant d'ajouter une partie sur sftp, et les possibilités de tunnel sftp (ça doit être les mêmes que pour ssh non? vu que c finalement les mêmes outils), et l'utilisation par gftp etc...(j'ai un peu essayer, j'ai pas réussis à utiliser les hostname pré-configuré dans .ssh/config avec gftp...). je vais continuer à tester ça.

----------

## marvin rouge

Beau HowTo  -> bookmark. Merci  :Smile: 

 *kwenspc wrote:*   

> je pensais : ça serait intéréssant d'ajouter une partie sur sftp, et les possibilités de tunnel sftp (ça doit être les mêmes que pour ssh non? vu que c finalement les mêmes outils), et l'utilisation par gftp etc...(j'ai un peu essayer, j'ai pas réussis à utiliser les hostname pré-configuré dans .ssh/config avec gftp...). je vais continuer à tester ça.

 Exactement pareil. Je vote pour  :Smile: 

----------

## manu.acl

Chose sympa aussi quand on a un proxy à l'école qui ne laisse passer les connections qu'en 80/tcp ou qui filtre beaucoup trop de pages intéressantes  :Confused: 

Sur une machine externe on lance sshd sur le port 80 et un joli proxy sur le port 8080 et sur l'ordi à l'école :

```
$ ssh -p 80 -L 4444:127.0.0.1:8080 user@ip_serveur_externe
```

dans le navigateur y'a plus qu'à spécifier 127.0.0.1:4444 comme proxy  :Smile: 

Le proxy de l'école ne devrait y voit plus que du feu, vu qu'il n'y a que du 80/tcp qui passe  :Very Happy: 

J'ai pas encore testé mais ça fonctionne sans problème avec d'autres serveurs donc y'a pas de raison  :Razz: 

----------

## sireyessire

 *manu.acl wrote:*   

> Chose sympa aussi quand on a un proxy à l'école qui ne laisse passer les connections qu'en 80/tcp ou qui filtre beaucoup trop de pages intéressantes 
> 
> Sur une machine externe on lance sshd sur le port 80 et un joli proxy sur le port 8080 et sur l'ordi à l'école :
> 
> ```
> ...

 

oui, oui très bien...

l'admin réseau va pas trop apprécié s'il te choppe mais bon...

no more comment

----------

## Thymus

Bonsoir,

 *Quote:*   

> Pour que ceci marche il faut que le "ssh moi@machine_C.domaine.com" qui est executé sur B ne demande pas de mot de passe. En effet je vous rappelle que ceci est basé sur la redirection des entrées et sorties de la ProxyCommand et vous ne pouvez donc pas tapez votre mot de passe ...

 Et qd on doit mettre un mot de passe ? Il doit bien y avoir moyen, non ?

Merci :]

----------

## Enlight

 *sireyessire wrote:*   

>  *manu.acl wrote:*   Chose sympa aussi quand on a un proxy à l'école qui ne laisse passer les connections qu'en 80/tcp ou qui filtre beaucoup trop de pages intéressantes 
> 
> Sur une machine externe on lance sshd sur le port 80 et un joli proxy sur le port 8080 et sur l'ordi à l'école :
> 
> ```
> ...

 

Ca ce saurait si les admins réseau calaient quelque chose à ce qui se passe sur les réseaux qu'ils administrent   :Laughing:  de toute façon il verra   rien du contenu... je me demande si cette technique peut marcher avec putty car simplement en mettant mon sshd sur le port 80 j'ai jamais pu y acceder   :Mad: 

<off> Hey, content d'être de retour en France? </off>

----------

## Antares

Ce Howto a été retranscris sur fr.gentoo-wiki.org   :Very Happy: 

----------

## gorgonite

Salut,

Dans mon cas, ce que vous avez décrit ne semble pas marcher...   :Crying or Very sad: 

Lorsque je me logue normalement depuis chez moi vers la machine en question, je fais

```
ssh -t login@passerelle_ssh.domain.com \ login@machine.domain.com
```

Par ailleurs,  je n'ai pas le droit de faire du ssh directement sur passerelle_ssh

Donc je n'ai pas pu mettre les clefs dans ~/.ssh/authorized_keys

J'ai donc essayé avec votre méthode "Tunnels avec ssh", sans utiliser ProxyCommand bien sûr

Si vous aviez une solution, ça m'arrangerait   :Very Happy: 

Mon seul but serait de pouvoir faire du scp depuis chez moi vers cette machine

----------

## truc

suite à un lien pointant vers cet article, me voila donc en train de le lire, il est très bien fait franchement, j'ai juste une question, pour la clée qui est choisie:

Pour des raisons qui m'échappent, les clées de type dsa sont plus "sécurisée" que les clées rsa, il existerai un faille avec rsa à ce que j'ai compris.. Je trouverai cool, que ce howto mette plutôt en place de telles clées:)

voili-voilou, pour ce que j'avais à dire. C'est du beau boulot.

----------

## geekounet

Ben pour des clés dsa, tu fais tout simplement :

```
# ssh-keygen -t dsa -b 1024
```

 :Wink: 

----------

## truc

 *pierreg wrote:*   

> Ben pour des clés dsa, tu fais tout simplement :
> 
> ```
> # ssh-keygen -t dsa -b 1024
> ```
> ...

 

arf.. c'était pas pour moi en fait.. mais pour le howto.. pour les gens qui vont éventuellement se baser dessus.. M'enfin.. merci quand même:)

----------

## gorgonite

 *gorgonite wrote:*   

> Si vous aviez une solution, ça m'arrangerait  
> 
> Mon seul but serait de pouvoir faire du scp depuis chez moi vers cette machine

 

up... personne ne voit  :Confused: 

----------

## Ey

Si j'ai bien compris la desciption du problème, la passerelle ssh ne te permet pas d'ouvrir de shell, lorsque l'on ouvre une session dessus, il faut obligatoirement lui donner le nom de la machine a laquelle on veut se connecter et elle ouvre la session ensuite.

Pour répondre à ce problème, à priori la solution c'est le netcat sur la machine distante. (La deuxième option pour le proxycommand)

Quelque chose du genre

```
ProxyCommand=ssh -t login@passerelle_ssh.domain.com \ login@machine.domain.com nc -q 0 127.0.0.1 22
```

----------

## gorgonite

 *Ey wrote:*   

> Si j'ai bien compris la desciption du problème, la passerelle ssh ne te permet pas d'ouvrir de shell, lorsque l'on ouvre une session dessus, il faut obligatoirement lui donner le nom de la machine a laquelle on veut se connecter et elle ouvre la session ensuite.
> 
> Pour répondre à ce problème, à priori la solution c'est le netcat sur la machine distante. (La deuxième option pour le proxycommand)
> 
> Quelque chose du genre
> ...

 

ben ça veut pas...  :Crying or Very sad: 

```
Pseudo-terminal will not be allocated because stdin is not a terminal.

```

----------

## Ey

Tu procèdes comment en temps normal pour te connecter ?

----------

## gorgonite

 *Ey wrote:*   

> Tu procèdes comment en temps normal pour te connecter ?

 

ben je tape

```
ssh -t login@passerelle_ssh.domain.com \ login@machine.domain.com
```

----------

## Ey

Essaie avec un 2e -t c'est sensé forcer le tty meme quand tu n'as pas de tty local.

----------

## maestro1303

Merci à tous, merci surtout au fil qui m'a donné accès à votre forum. 

Je vous explique sommairement ma situation: 

J'ai: 

1)une machine cliente ayant l'adresse 192.168.4.21(A) avec PUTTY 

2)un serveur win2003 ayant l'adresse 192.168.2.80(B) avec Cygwin/Openssh 

3)un serveur de mail que j'appelle C (accessible depuis l'intranet et depuis l'extérieur). 

Je veux savoir comment -à partir de A- pouvoir lire mon mail(C) en utilisant la connexion (tunnel SSH) en B. 

Pour être plus clair:

B est le serveur SSH accessible par A (et de partout ailleurs): le seul port ouvert en B est 22(SSHd)

A est une machine cliente par laquelle je me connecte facilement à B par :login_B, mdp_B.

C est à la fois un serveur POP et SMTP (messagerie entrante et sortante) et on peut lire/ecrire ses messages soit par Client Internet Explorer soit en utilsant Outlook Express et en faisant : login_C, mdp_C.

D'abord est-ce possible? Et si oui comment. 

Merci d'avance!

----------

## maestro1303

Bonjour, 

Je viens de forwarder un port 80 en 8080 du moins, j'ai suivi ce qui est dans le tuto et(en tapant dans mon navigateur:http://localhost:8080 j'obtiens ceci:

Error - 503

--------------------------------------------------------------------------------

Connection refused by server:

153.162.70.8 (80)

Reason: Remote host is not listening.

Je suis à l'intérieur du réseau :

De façon schématique:

__________                                                                        _______________

Je suis ICI   |

----------

## truc

si c'est pas sûr à l'interieur même du réseau ça va être plus délicat, cat il te  faudrait faire le tunnel entre le 153.162.70.8 et toi (le toi risquant en plus de bouger (changer d'ip), donc il te faudrait un accès ssh sur le serveur si je n'm'abuse :/

Si toute fois l'interieur du réseau n'était pas insécurisé? un compte vers la machine ssh suffirait(si je n'm'abuse)

----------

## maestro1303

Bonjour truc,

Merci de ta réponse, mais si tu peu voirmon mail précedent!

 *Quote:*   

> 
> 
> Merci à tous, merci surtout au fil qui m'a donné accès à votre forum. 
> 
> Je vous explique sommairement ma situation: 
> ...

 

En retournat à ta réponse:

 *Quote:*   

> 
> 
> donc il te faudrait un accès ssh sur le serveur 
> 
> 

 

Tu parles de quel serveur? 153.162.70.8 où du 192.168.7.2?

 *Quote:*   

> 
> 
> le toi risquant en plus de bouger (changer d'ip), 
> 
> 

 

Comment ? car j'ai une ip privée mais fixe(pas de DHCP)!

 *Quote:*   

> 
> 
> Si toute fois l'interieur du réseau n'était pas insécurisé? un compte vers la machine ssh suffirait
> 
> 

 

Je n'ai pas bien compris.

Merci encore une fois de ta réponse!

----------

## truc

j'avais mal lu je pensais que tu voulais avoir un accès depuis l'exterieur aussi, mais comme tu l'as dit, une fois l'interieur reglé, (connexion sécurisée entre C et B par exemple, si B est joignable de l'exterieur par ssh, alors c'est possible..)

cela dit, si tu n'as pas de moyen de faire une connexion sécurisé entre Bet C ou entre A et C, tu n'as rien :/ imagine tu fais ton tunnel de A vers B, et ce qui arrive en B sur le port que tu auras choisi tu le redirige vers C, voila ce que tu auras:

A -- crypté par le tunnel -- B -- non crypté -- C

et voila tout le problème.

suis-je plus clair?

----------

## maestro1303

Merci bien truc,

Je crois que j'ai compris!

Mais si entre A(qui est dans le réseau: 192.168.4.0 dans un immeuble XX) et B(Serveur SSH et qui est dans le réseau: 192.168.2.0) la connexion est cryptée, alors je suis sûr que tout sniffer installé dans XX ne peut voir mes mails?

Entre B et C, ça ne va pas être crypté.

Merci beaucoup de ta réponse

----------

## truc

ça sera crypté oui, donc il ne comprendront rien à ce qui passe sur le réseau (à destination de B).

Par conter d'un point de vue sécurité, c'est étrange ce que tu veux faire, mais bon, chacun ses raisons:)

----------

## maestro1303

Merci de ta réponse,

Oui effectivement c'est étrange car je n'ai pour le moment peur que du tronçon réseau dans l'immeuble XX.

Mais comme je suis tout à fait newby dans ce domaine, je me permets bien de te poser une ou 2 questions pour arriver à cette fin:

1. Comment faire pour crypter le tronçon de A à B?

2. Y aurait il une différenciation pour le mail et le flux http?

Excuse mon ignorance.

Merci

----------

## truc

jvais faire cours, mais franchement c'est vraiment génial ce qu'on peut faire avec ssh, interesse toi tout particulièrement aux options -D, -L et son amie -R

----------

## maestro1303

Merci beaucoup,

Cher truc, on n'a pas fini d'en voir sur le net: des gens qui connaissent, d'autres pas du tout(comme moi), mais qui s'efforceront d'être le moins em... possible!  :Very Happy: 

Si je te pose tant de question c'est qu'hier j'ai monté le tunnel, mais après il ne m'était plus possible de me connecter, alors, je l'ai démonté en allant à Options/connection Inetrnet, paramètres réseaux etc...

Je vais (re)tenter et je te dirais comment j'ai procédé!

Merci une fois encore.

----------

## truc

y'a pas de soucis, de toutes façons, on est beaucoup ici, et le but du forum est bien de poser des questions;) (et d'essayer d'y répondre..)

----------

## maestro1303

Quel bel esprit!

Je pensais pas tomber mieux!

C'est une véritable aubaine pour moi:

1)Une documentation détaillée en Français

2)Des gens prêt à aider les autres!

Merci!

----------

## maestro1303

Bonjour à tous,

J'ai mis en place le tunnel et ça marche comme prévue de A à B.

j'ai pri comme port local 8080 et comme port sur la macchine C 80!

J'ai fait aussi outils/option internet/connexion/paramètres réseau/serveurb proxy et 127.0.1:8080

Le tunnel marche bien entre A et B car on ne voit plus rien quand on sniffe!!

Mais Chose etrange quand je fait un site autre que google(qui marche!!??!) j'ai une de deux chose:

1) site introuvable

2) on me redirige sur le site de C comme si je ne fais que l'adresse IP de C dans mon URL.

Alors

Est ce normal?

Est ce que ça peut être contourné surtout point 1.

Merci infiniment!!

----------

## truc

je ne sai spas vraiment ce que tu as fait.. tu ne le dit pas   :Rolling Eyes: 

tu as du faire quelque chose dy style ssh -L 8080:localhost:80 remotehost  :Question: 

avec ça , en affichant chez toi localhost:8080  (sans faire encore le truc de la passerelle) ça fait comme si tu faisais localhost:80 en étant sur remotehost

tu peux même faire à la place un ssh -L 8080:www.exalead.fr:80 remotehost

et , en affichant chez toi localhost:8080, ça fait comme si tu faisais www.exalead.fr:80 en étant sur la machine distante (remotehost)

avec l'option -R tu peux faire dans tunnel dans le sens inverse: tout ce qui arrive sur un port de la machine distante est redirigée vers chez toi.

et l'option pour faire un espèce de proxy , c'est -D

exemple:

ssh -D 9898 remotehost

ensuite tu vas dans ton navigateur, -->parametre de connection, proxy SOCK5 (ne me demande pas pourquoi..) tu mets localhost et 9898, et tupeux naviguer, tout ce que tu feras par le navigateur, va passer en étant crypté jusqu'a remotehost puis ça ira, (non crypté) sur le net, une simple vérif consiste à afficher www.monip.org pour constater que l'adresse IP qui s'affiche est...

....

suspence!! 

essayez vous même:)

----------

## maestro1303

Merci beaucoup truc,

Je suis sûr qu'avec ce que tu viens de me filer là, je ne pourrais plus me tromper, je vais le creuser et on verra bien.

Déjà par rapport à hier j'estime que je suis bien avancé! OUPS et tant mieux!!

Je vais t'exposer ici un autre petit problème que je n'avais pas constater avant mon précédent Post:

J'ai sur ma machine A un autre client Telnet (PCUTE en l'occurence)que j'utilise pour me connecter à un serveur métier(ServMet) dans le même réseau que la B. Ce qui fait que ce matin en mettant le tunnel en place, ce flux là n'est pas passé dans mon tunnel(Je l'ai vérifié de visu  :Wink: ) alors que le flux port 80 est bien passé dans mon tunnel entre A et B.

Je suis peut-être un peu bête de le penser, mais je croyais qu'on pouvait tout (TCP/IP) faire passer dans le tunnel.

A moins qu'on ne doive faire un autre tunnel et forwarder le port de ServMet(23=Telnet)!

Merci beaucoup et bon Week End, même si personnellement je reste sur les machine  :Very Happy: !

----------

## truc

encore une fois, je ne lis pas dans tes pensées, je ne sais pas ce que t'as fait, donne nous vite faite un résumé des commandes que tu as rentré pour faire le tunnel puis pour lancer ta connection telnet.

Pour telnet, j'ignore si il est capable de se servir d'un proxy, j'te laisse voir ça, mais si ce n'est pas le cas alors 

```
ssh -L 9999:adresse_IP_ou_NOM_ServMet:23 remotehost
```

devrait te permetre de faire ce que tu souhaites

il ne te resteras alors plus qu'à lancer ta session telnet comme ça

```
telnet localhost 9999
```

----------

## maestro1303

Voilà ce que j'avais fais:

Excuse moi si tu n'a pas l'habitude d'utiliser le client Putty

1) J'ai lancé Putty sur ma machine (A)

2)Menu Seesion de Putty: j'ai mis l'adresse du serveur SSH ( qui est en B). En spécifiant port 22.

3)Menu Tunnels:

-J'ai mis 8080 pour source port

-J'ai mis dans Destination @ip_de_C:80

-j'ai fait Add ce qui m'a donné (à qulques espaces près)dans la zone Forwarded Ports  la ligne 

```
L8080       @ip_de_C:80
```

-puis j'ai fait Open

4) J'ai eu la fenêtre d'authentification habituelle aun niveau du serveur SSH  login as:.

5) une fois authentifié je lance Inetrnet Explorer.

6) Dans menu /outils/Options Internet/onglet connexion/Paramètres Réseau/Serveur Proxy/ Où j'utilise l'adresse:

127.0.0.1 port 8080.

Excuse moi je crois que j'ai été un peu long. Mais j'espère avoir été clair sur le micmac que j'ai fait.

----------

## maestro1303

Qu'est ce que je dois te dire?????

Ton coup 

```

ssh -L 9999:adresse_IP_ou_NOM_ServMet:23 remotehost

```

est tout simplement génial!!!!!

Je ne vois plus mon login et mdp.

Donc à part quelque petit problèmes me restant sur le mail, je crois que tout est REGLED:

Si je veux utiliser le logiciel métier avec telenet, je fais ton

 *Quote:*   

> 
> 
> ssh -L 9999:adresse_IP_ou_NOM_ServMet:23 remotehost
> 
> 

 

Si je veux lire mes mail, je fais l'autre (que je n'ai pas encore complètement mûri).

Mais pour aujourd'hui:

ssh -L 9999:adresse_IP_ou_NOM_ServMet:23 remotehost

me suffit!

Je n'ai rien changé, j'ai mis la commande exactement comme tu le dit.

BRAVO ET MILLE MERCIS!!!!

----------

## truc

ravi d'avoir fait un nouveau fan d'ssh, c'est tellement bien:)

Sinon, pour ton problème de mail, bah, on va pas polluer ce thread, donc soit tu te créés un post pour toi, soit tu pm, soit tu demandes sur un chan (serveur freenode.net par exemple)

Putty, je ne connais que très sommairement, j'en ai quelques fois eu besoin: c'est L'application qui me permet de ne pas trop déprimer quand je suis sur un poste windows...  :Laughing: 

----------

## maestro1303

Merci be&aucoup,

Déjà saches qu'hier vouant t'envoyer un MP, je me le suis envoyé à moi-même: tellement j'étais content de ce que tu m'a fait faire là dedans:

J'ai déjà téléchargé un client IRC, et c'est le nom du serveur qui me manquait!

Mais NON, je crois que dans notre réseau l'IRC est carrément bloqué   :Mad:   :Question: 

Je vais essayer effectivement de me créer un nouveau sujet! 

Merci et à bientôt !

----------

