reverse ssh

13 réponses
Avatar
bernard schoenacker
bonjour,

je vais essayer de réaliser un tunnel ssh en mode reverse, mais je
ne sais pas faire ...

ou que mon novice n'est pas à la hauteur ...


j'ai trouvé la doc en ligne, mais c'est très confus dans mon
esprit ...

est ce que j'ai ommis quelque chose pour devoir relire la doc ?


http://geekfault.org/2011/02/19/reverse-ssh-acceder-a-un-serveur-derriere-un-natfirewall/


http://wiki.kogite.fr/index.php/Reverse_ssh_:_Accéder_à_un_serveur_derrière_un_NAT_-_Firewall


désolé, mais c'est assez urgent pour que je puisse comprendre


slt
bernard
--
bernard schoenacker <bernard.schoenacker@free.fr>

10 réponses

1 2
Avatar
Daniel Huhardeaux
Le 20/11/2016 à 11:44, bernard schoenacker a écrit :
bonjour,
je vais essayer de réaliser un tunnel ssh en mode reverse, mais je
ne sais pas faire ...
ou que mon novice n'est pas à la hauteur ...
j'ai trouvé la doc en ligne, mais c'est très confus dans mon
esprit ...
est ce que j'ai ommis quelque chose pour devoir relire la doc ?
http://geekfault.org/2011/02/19/reverse-ssh-acceder-a-un-serveur-derriere-un-natfirewall/
http://wiki.kogite.fr/index.php/Reverse_ssh_:_Accéder_à_un_serveur_derrière_un_NAT_-_Firewall
désolé, mais c'est assez urgent pour que je puisse comprendre
[...]

Installe autossh sur la machine distante. Tu as besoin de 2 ports sur ta
machine (ou sur le serveur sur lequel tu veux centraliser si plusieurs
clients), peu importe lesquels.
--
Daniel
Avatar
hamster
Le 20/11/2016 11:44, bernard schoenacker a écrit :
bonjour,
je vais essayer de réaliser un tunnel ssh en mode reverse, mais je
ne sais pas faire ...
ou que mon novice n'est pas à la hauteur ...
j'ai trouvé la doc en ligne, mais c'est très confus dans mon
esprit ...
est ce que j'ai ommis quelque chose pour devoir relire la doc ?
http://geekfault.org/2011/02/19/reverse-ssh-acceder-a-un-serveur-derriere-un-natfirewall/
http://wiki.kogite.fr/index.php/Reverse_ssh_:_Accéder_à_un_serveur_derrière_un_NAT_-_Firewall
désolé, mais c'est assez urgent pour que je puisse comprendre

Desolé mais c'est beaucoup trop succinct pour que je puisse comprendre.
Un tunnel ssh peut servir a faire une foultitude de choses, j'ai besoin
de plus de précisions sur ce que tu veux faire. Quel est ton besoin ?
C'est pour faire quoi ?
Avatar
bernard schoenacker
On Sun, 20 Nov 2016 13:51:40 +0100
hamster wrote:
Le 20/11/2016 11:44, bernard schoenacker a écrit :
bonjour,
je vais essayer de réaliser un tunnel ssh en mode reverse,
mais je ne sais pas faire ...
ou que mon novice n'est pas à la hauteur ...
j'ai trouvé la doc en ligne, mais c'est très confus dans mon
esprit ...
est ce que j'ai ommis quelque chose pour devoir relire la doc ?
http://geekfault.org/2011/02/19/reverse-ssh-acceder-a-un-serveur-derriere-un-natfirewall/
http://wiki.kogite.fr/index.php/Reverse_ssh_:_Accéder_à_un_serveur_derrière_un_NAT_-_Firewall
désolé, mais c'est assez urgent pour que je puisse comprendre

Desolé mais c'est beaucoup trop succinct pour que je puisse
comprendre. Un tunnel ssh peut servir a faire une foultitude de
choses, j'ai besoin de plus de précisions sur ce que tu veux faire.
Quel est ton besoin ? C'est pour faire quoi ?

bonjour,
je pose le problème, je souhaite que un novice puisse se connecter
à l'une de mes machines ....
ssh
moi je veut faire de même
ssh
ensuite, je souhaite pouvoir aller à son ordi par la même voie
sachant que le port ssh n'est pas ouvert chez lui en entrant ....
donc je fait comment pour remonter ?
la doc qui me dit comment faire et que je ne comprend pas
complètement :
https://renoirboulanger.com/blog/2012/02/creer-un-tunnel-ssh-inverse-pour-pouvoir-supporter-a-distance-un-ami-utilisant-linux/
merci pour essayer d'éclairer ma lanterne
slt
bernard
--
bernard schoenacker
Avatar
hamster
Le 20/11/2016 15:12, bernard schoenacker a écrit :
je pose le problème, je souhaite que un novice puisse se connecter
à l'une de mes machines ....
ssh
moi je veut faire de même
ssh
ensuite, je souhaite pouvoir aller à son ordi par la même voie
sachant que le port ssh n'est pas ouvert chez lui en entrant ....
donc je fait comment pour remonter ?

Donc en fait, tu veux prendre la main sur sa machine. Juste en ligne de
commande ? Ou tu veux aussi controler sa souris, son clavier et voir son
écran grace a VNC ?
Il faut qu'il y ait une machine accessible depuis internet. Ca peut etre
un serveur mais pas nécessairement. Moi je le fais depuis mon laptop en
configurant mon modem pour qu'il transfere le port 22. Si t'a pas envie
d'ouvrir le port 22 tu peux aussi ouvrir un autre port et dire a ssh
d'écouter sur cet autre port. Par exemple on va dire que l'adresse IP de
la machine accessible depuis internet que tu va utiliser c'est
88.88.88.88 avec ssh qui écoute en standard sur le port 22.
Je te conseille fortement de faire sur cette machine un compte spécial
dédié au novice qui se connecte. Par exemple on va dire que ce compte
s'appelle toto.
Il faut que le novice se connecte a la machine EN FAISANT LE TUNNEL.
ssh -N -R 22222:localhost:22 :88.88.88
- le tunnel se construit a la connexion, pas apres s'etre connecté
- 22222 c'est le port d'entrée du tunnel sur ta machine, tu peux mettre
n'importe quel autre numéro supérieur a 1000 et inférieur a 65535
- localhost c'est la machine sur laquelle le tunnel va arriver, comme
c'est ton novice qui va taper cette commande, ca sera sa machine
- 22 c'est le port sur lequel le tunnel va arriver sur la machine de ton
novice, tu peux mettre un autre port si tu veux mais il faudra alors
régler son ordi pour que ssh écoute sur cet autre port.
Quand le tunnel est fait, tout ce qui est envoyé sur le port 22222 de ta
machine arrive sur le port 22 de sa machine. Tu peux donc te connecter a
sa machine en te connectant a la tienne sur le port 22222, ca sera
transféré chez lui :
ssh -p 22222
- il faut faire ca sur la machine d'ou le tunnel part, si c'est un
serveur il faut d'abord que tu te connecte a ton serveur en ssh
- user doit etre le nom du compte auquel tu veux te connecter sur SA machine
- vu que tu passe par le tunnel, ca marche meme si le port 22 est bloqué
chez lui au niveau du modem ou du pare feu, par contre c'est une
connexion ssh classique, il faut donc que openssh-server soit installé
chez lui.
Si tu veux utiliser VNC je te conseille de construire un tunnel direct
(avec l'option -L) qui remonte dans le tunnel reverse pour tranférer le
port de VNC. Si c'est le cas demande moi plus de précisions en me disant
si tu passe par un serveur (c'est plus compliqué) ou si le tunnel part
directement de chez toi.
PS : tu peux tres bien construire le tunnel sans l'option -N, mais dans
ce cas, une fois le tunnel construit, le novice aura un terminal ouvert
sur ta machine, et il pourra l'utiliser a volonté. L'option -N évite ca,
mais du coup ca fait que quand le tunnel est ouvert, il voit dans son
terminal le curseur qui va a la ligne et qui reste fixe sans lui rendre
le prompt. Il y a des novices que ca perturbe et qui ne comprennent pas
que le tunnel est pret, qui disent "attends, ca travaille" ou encore "il
ne se passe rien". C'est aussi plus chiant pour débugger quand ca marche
pas parce que c'est plus dur de savoir si le tunnel a bien été construit
ou pas, donc en cas de souci je lui fais recommencer sans cette option -N.
Avatar
Daniel Huhardeaux
Le 20/11/2016 à 13:20, Daniel Huhardeaux a écrit :
Le 20/11/2016 à 11:44, bernard schoenacker a écrit :
bonjour,
je vais essayer de réaliser un tunnel ssh en mode reverse, mais je
ne sais pas faire ...
ou que mon novice n'est pas à la hauteur ...
j'ai trouvé la doc en ligne, mais c'est très confus dans mon
esprit ...
est ce que j'ai ommis quelque chose pour devoir relire la doc ?
http://geekfault.org/2011/02/19/reverse-ssh-acceder-a-un-serveur-derriere-un-natfirewall/
http://wiki.kogite.fr/index.php/Reverse_ssh_:_Accéder_à_un_serveur_derrière_un_NAT_-_Firewall
désolé, mais c'est assez urgent pour que je puisse comprendre
[...]

Installe autossh sur la machine distante. Tu as besoin de 2 ports sur
ta machine (ou sur le serveur sur lequel tu veux centraliser si
plusieurs clients), peu importe lesquels.

Oubli: pour se connecter sur n'importe quel port de la machine distante,
on monte un tunnel de type (ex pour http):
ssh -gNL 9001:<ip LAN locale du distant>:80 [user@]<ip LAN locale du
distant>, puis http://localhost:9001 à partir du navigateur. Et voilà.
--
Daniel
Avatar
daniel huhardeaux
Le 20/11/2016 à 15:12, bernard schoenacker a écrit :
On Sun, 20 Nov 2016 13:51:40 +0100
hamster wrote:
Le 20/11/2016 11:44, bernard schoenacker a écrit :
bonjour,
je vais essayer de réaliser un tunnel ssh en mode reverse,
mais je ne sais pas faire ...
ou que mon novice n'est pas à la hauteur ...
j'ai trouvé la doc en ligne, mais c'est très confus dans mon
esprit ...
est ce que j'ai ommis quelque chose pour devoir relire la doc ?
http://geekfault.org/2011/02/19/reverse-ssh-acceder-a-un-serveur-derriere-un-natfirewall/
http://wiki.kogite.fr/index.php/Reverse_ssh_:_Accéder_à_un_serveur_derrière_un_NAT_-_Firewall
désolé, mais c'est assez urgent pour que je puisse comprendre

Desolé mais c'est beaucoup trop succinct pour que je puisse
comprendre. Un tunnel ssh peut servir a faire une foultitude de
choses, j'ai besoin de plus de précisions sur ce que tu veux faire.
Quel est ton besoin ? C'est pour faire quoi ?

bonjour,
je pose le problème, je souhaite que un novice puisse se connecter
à l'une de mes machines ....
ssh
moi je veut faire de même
ssh
ensuite, je souhaite pouvoir aller à son ordi par la même voie
sachant que le port ssh n'est pas ouvert chez lui en entrant ....
donc je fait comment pour remonter ?
la doc qui me dit comment faire et que je ne comprend pas
complètement :
https://renoirboulanger.com/blog/2012/02/creer-un-tunnel-ssh-inverse-pour-pouvoir-supporter-a-distance-un-ami-utilisant-linux/
merci pour essayer d'éclairer ma lanterne
[...]

Ouvres un port ssh par ex. 12345 sur ton serveur. Ensuite, sur la
machine distante, dans un crontab:
@reboot /usr/bin/autossh -M 61111 -f -p12345 -CXN -R
60000:localhost:23456 <ip ou hostname de ton serveur>
12345=port ssh sur ton serveur
23456=port ssh sur le serveur distant
61111 et 60000 sont des ports choisis aléatoirement. À noter que le port
61112 -celui immédiatement après celui que tu auras choisis, ici 61111-
doit être disponible pour autossh.
Ensuite sur ton serveur, pour te connecter sur le distant:
ssh -p60000 localhost
Ne pas oublier que l'utilisateur qui execute le @reboot autossh sur le
distant doit pouvoir se connecter sur ton serveur par clé afin que cette
connexion soit automatique.
Le distant se connecte chez toi par un simple ssh -p12345 <ip ou
hostname de ton serveur>
--
Daniel
Avatar
bernard schoenacker
On Sun, 20 Nov 2016 15:57:19 +0100
hamster wrote:
Le 20/11/2016 15:12, bernard schoenacker a écrit :
je pose le problème, je souhaite que un novice puisse se
connecter à l'une de mes machines ....
ssh
moi je veut faire de même
ssh
ensuite, je souhaite pouvoir aller à son ordi par la même voie
sachant que le port ssh n'est pas ouvert chez lui en entrant ....
donc je fait comment pour remonter ?

Donc en fait, tu veux prendre la main sur sa machine. Juste en ligne
de commande ? Ou tu veux aussi controler sa souris, son clavier et
voir son écran grace a VNC ?
Il faut qu'il y ait une machine accessible depuis internet. Ca peut
etre un serveur mais pas nécessairement. Moi je le fais depuis mon
laptop en configurant mon modem pour qu'il transfere le port 22. Si
t'a pas envie d'ouvrir le port 22 tu peux aussi ouvrir un autre port
et dire a ssh d'écouter sur cet autre port. Par exemple on va dire
que l'adresse IP de la machine accessible depuis internet que tu va
utiliser c'est 88.88.88.88 avec ssh qui écoute en standard sur le
port 22.
Je te conseille fortement de faire sur cette machine un compte
spécial dédié au novice qui se connecte. Par exemple on va dire que
ce compte s'appelle toto.
Il faut que le novice se connecte a la machine EN FAISANT LE TUNNEL.
ssh -N -R 22222:localhost:22 :88.88.88
- le tunnel se construit a la connexion, pas apres s'etre connecté
- 22222 c'est le port d'entrée du tunnel sur ta machine, tu peux
mettre n'importe quel autre numéro supérieur a 1000 et inférieur a
65535
- localhost c'est la machine sur laquelle le tunnel va arriver, comme
c'est ton novice qui va taper cette commande, ca sera sa machine
- 22 c'est le port sur lequel le tunnel va arriver sur la machine de
ton novice, tu peux mettre un autre port si tu veux mais il faudra
alors régler son ordi pour que ssh écoute sur cet autre port.
Quand le tunnel est fait, tout ce qui est envoyé sur le port 22222 de
ta machine arrive sur le port 22 de sa machine. Tu peux donc te
connecter a sa machine en te connectant a la tienne sur le port
22222, ca sera transféré chez lui :
ssh -p 22222
- il faut faire ca sur la machine d'ou le tunnel part, si c'est un
serveur il faut d'abord que tu te connecte a ton serveur en ssh
- user doit etre le nom du compte auquel tu veux te connecter sur SA
machine
- vu que tu passe par le tunnel, ca marche meme si le port 22 est
bloqué chez lui au niveau du modem ou du pare feu, par contre c'est
une connexion ssh classique, il faut donc que openssh-server soit
installé chez lui.
Si tu veux utiliser VNC je te conseille de construire un tunnel
direct (avec l'option -L) qui remonte dans le tunnel reverse pour
tranférer le port de VNC. Si c'est le cas demande moi plus de
précisions en me disant si tu passe par un serveur (c'est plus
compliqué) ou si le tunnel part directement de chez toi.
PS : tu peux tres bien construire le tunnel sans l'option -N, mais
dans ce cas, une fois le tunnel construit, le novice aura un terminal
ouvert sur ta machine, et il pourra l'utiliser a volonté. L'option -N
évite ça, mais du coup ça fait que quand le tunnel est ouvert, il
voit dans son terminal le curseur qui va a la ligne et qui reste fixe
sans lui rendre le prompt. Il y a des novices que ca perturbe et qui
ne comprennent pas que le tunnel est pret, qui disent "attends, ca
travaille" ou encore "il ne se passe rien". C'est aussi plus chiant
pour débugger quand ca marche pas parce que c'est plus dur de savoir
si le tunnel a bien été construit ou pas, donc en cas de souci je lui
fais recommencer sans cette option -N.

bonjour,
grâce à yannick, j'ai pu faire un essai en grandeur nature et
c'est bon ...
je récapitule :
la machine à dépanner se connecte sur un ordi tiers :
ssh -nNT -R 1103:localhost:22 lui@"machine distante de rencontre"
ce que je doit faire :
ssh moi@"machine distante de rencontre"
screen
ssh -p 1103
attention :
il faut que le paquet ssh et screen soient installés
merci pour les tuyaux
slt
bernard
--
bernard schoenacker
Avatar
hamster
Le 23/11/2016 18:39, bernard schoenacker a écrit :
bonjour,
grâce à yannick, j'ai pu faire un essai en grandeur nature et
c'est bon ...
je récapitule :
la machine à dépanner se connecte sur un ordi tiers :
ssh -nNT -R 1103:localhost:22 lui@"machine distante de rencontre"
ce que je doit faire :
ssh moi@"machine distante de rencontre"
screen
ssh -p 1103
attention :
il faut que le paquet ssh et screen soient installés

Je comprend pas l'interet de screen. Si tu le fais pas, ca marche aussi
bien.
Avatar
raphael.poitevin
hamster writes:
Je comprend pas l'interet de screen. Si tu le fais pas, ca marche
aussi bien.

En cas de rupture de la liaison pour ne pas perdre les tâches en cours.
--
Raphaël POITEVIN
Avatar
S
Bonjour,
Le mercredi 23 novembre 2016 à 21:42, Raphaël POITEVIN a écrit :
hamster writes:
Je comprend pas l'interet de screen. Si tu le fais pas, ca marche
aussi bien.

En cas de rupture de la liaison pour ne pas perdre les tâches en cours.

Oui, mais il vaudrait mieux lancer screen sur la machine à dépanner et non pas
sur la « machine distante de rencontre ». Ce sera plus sûr en déplaçant le
lancement de screen à la toute fin.
Au passage, depuis que je suis passé de screen à tmux, je n’ai plus _jamais_
utilisé screen (sauf lorsque tmux n’était pas disponible).
Sébastien
1 2