# [ssh] Derrière un proxy... [resolu]

## BENJI

Bonjour,

Vous connaissez ssh ? Evidemment.

Pratique quand on peut prendre la main à distance sur sa machine.

Vous couplez ça avec le très pratique screen et votre PC de la maison n'est jamais très loin quand vous êtes au boulot !

Sauf quand comme moi vous vous trouvez derrière un proxy qui bloque le port 22.

Existe t-il une solution pour contourner cette difficulté ?

Bien sûr, il m'est impossible d'ouvrir le port 22 car mon administrateur appelle les flics si je lui demander de pouvoir utiliser ssh ! Ah les grosses boîtes !

Je pensais à une interface web qui tournerait sur mon pc de la maison et qui serait accessible par le port 80 depuis n'importe quel poste distant ? Ca existe ?

Voyez-vous autre chose ?

MerciLast edited by BENJI on Tue Apr 22, 2008 2:41 pm; edited 3 times in total

----------

## Desintegr

Et en configurant sshd pour écouter sur le port 80 ou 443 ?

----------

## kwenspc

Tu peux ptet faire un reverse tunnel, je pense que ce howto peut t'aider: https://forums.gentoo.org/viewtopic-t-281671.html

----------

## BENJI

 *kwenspc wrote:*   

> Tu peux ptet faire un reverse tunnel, je pense que ce howto peut t'aider: https://forums.gentoo.org/viewtopic-t-281671.html

 

Pour être honnête tout ça pour moi c'est du chinois   :Crying or Very sad: 

Je n'ai pas trouvé dans le how to la notion de "reverse tunnel". Merci de me dire si je me trompe.

Mais sinon si j'ai bien compris la proposition de Desintegr :

 j'ai un PC XP boulot derrière un proxy sur lequel j'utilise putty pour me connecter à mon PC maison sur lequel un serveur ssh tourne.

sur mon PC maison il me suffirait donc de modifier le ficheir de conf de sshd en remplaçant le port 22 par 443 ensuite d'utiliser sur le PC boulot putty comme hostname "monsite.homedns.org" comme port "443" type de connexion "ssh" et le tour serait joué ?

Est-ce que c'est ce qu'il faut comprendre ?

----------

## Desintegr

Oui.

----------

## kwenspc

Ah ok j'avais compris que tu souhaité créer un serveur ssh derrière le proxy et que tu souhaitais y accéder de l'extérieur. 

Finalement oui la méthode de Desintegr est celle qu'il te faut: tu changes le port d'écoute de ton serveur ssh sur le port 443 et zou.

----------

## engil

Pour avoir déja essayer (haa les grosses boites...) la méthode du port 443 à ses limites, j'avais butté sur justement le proxy ( un proxy materiel ).

Il y a aussi une bidouille en montant un serveur Apache sur la machine serveur, quelque chose dans ce gout la : http://dag.wieers.com/howto/ssh-http-tunneling/ (en anglais).

Le principe d'encapsulation SSH via HTTP(S) existe aussi avec un logiciel Java .. http://lightbox.ath.cx/socks/.

Have fun !

----------

## gbetous

Bin moi à chaque fois que j'ai essayé le coup du 443 (y compris dans de très grosses boîtes) ça a toujours marché nickel !

D'ailleurs mon serveur ssh écoute carrément sur 22 et 443, comme ça... toujours prêt !

----------

## nico_calais

tu emerge net-misc/proxytunnel sur l'ordi de ton taf.

Tu configure ton /home/user/.ssh/config comme ceci :

```

Host toto

ProxyCommand /usr/bin/proxytunnel -p [proxy]:[port_proxy] -u [user_proxy] -s [mdp_proxy] -d [IP_de_chez_toi]

```

Comme dit précédemment, ton serveur ssh doit ecouter sur le port 443.

Tu n'as plus qu'à tapper "ssh toto" et c'est bon.

----------

## BENJI

Merci à tous pour vos réponses je n'ai plus qu'à essayer...

 *gbetous wrote:*   

> Bin moi à chaque fois que j'ai essayé le coup du 443 (y compris dans de très grosses boîtes) ça a toujours marché nickel !
> 
> D'ailleurs mon serveur ssh écoute carrément sur 22 et 443, comme ça... toujours prêt !

 

Aurais-tu la bontée de me montrer ton fichier de config que je m'en inspire !

 *nico_calais wrote:*   

> tu emerge net-misc/proxytunnel sur l'ordi de ton taf. 

 

Holala si tu savais... dans les grosses boîtes ton PC tourne sous XP quand c'est pas encore sous windows 2000 et il est totalement alergique à la plume de manchot. Il te faut les droits administrateur pour changer ton adresse IP, un dual boot n'en parlons pas ; alors  tu penses ... faire un emerge c'est comme croire qu'il y aura toujours du pétrole   :Wink: 

----------

## nico_calais

 *BENJI wrote:*   

> Merci à tous pour vos réponses je n'ai plus qu'à essayer...
> 
>  *gbetous wrote:*   Bin moi à chaque fois que j'ai essayé le coup du 443 (y compris dans de très grosses boîtes) ça a toujours marché nickel !
> 
> D'ailleurs mon serveur ssh écoute carrément sur 22 et 443, comme ça... toujours prêt ! 
> ...

 

Le jour ou je dois passer 8h par jour sur un windows, je demissionne de mon taf...

Sinon regardes avec putty, d'après mes souvenirs il existe des paramètres concernant le proxy.

----------

## gbetous

 *BENJI wrote:*   

> Aurais-tu la bontée de me montrer ton fichier de config que je m'en inspire !

 

La seule chose que je change, c'est de rajouter une ligne Port 443 dans le /etc/ssh/sshd_config

J'ai donc :

```

Port 22

Port 443

```

Ensuite j'utilise simplement putty sur un PC windows du boulot, je configure le proxy (le proxy normal du boulot), et je tapes me connecte chez moi en précisant le port 443.

C'est nickel, ça roule.

En prime t'as une manip excellente à faire :

Tu peux t'amuser à monter un proxy chez toi (par exemple squid). Ainsi, tu demandes à ton putty de te faire un tunnel sur ce proxy (par exemple un tunnel entre le port 3128 de ton serveur, et 3128 de ton client Windows du boulot). Ensuite, tu n'as plus qu'à configurer ton browser Internet pour qu'il utilise le proxy localhost:3128 (c'est à dire le port 3128 de ton PC WIndows du boulot), putty va balancer ça sur le 3128 de ton serveur, et hop! tu browse le web en utilisant le proxy de ton serveur, donc no limit, et le tout crypté par ssh !

Bon, évidemment, t'es limité par ton débit montant. Mais je le fais avec une connexion 1024/256, c'est très utilisable.

Firefox propose un plugin (switch proxy) qui permet de passer facilement d'un proxy (boulot) à un autre (perso), c'est le top confort !

----------

## Uggy

 *gbetous wrote:*   

> 
> 
> En prime t'as une manip excellente à faire :
> 
> Tu peux t'amuser à monter un proxy chez toi (par exemple squid). Ainsi, tu demandes à ton putty de te faire un tunnel sur ce proxy [...]

 

Dans ce cas autant juste utiliser le proxy SOCKS SSH... (Dans putty c'est dans "tunnels" puis cocher "Dynamic"  et en ligne de commande c'est l'option -D )

Ca feras tout pareil pour pouvoir surfer mais sans avoir a montrer un Proxy http.

----------

## El_Goretto

 *BENJI wrote:*   

>  *nico_calais wrote:*   tu emerge net-misc/proxytunnel sur l'ordi de ton taf.  
> 
> Holala si tu savais... dans les grosses boîtes ton PC tourne sous XP quand c'est pas encore sous windows 2000 et il est totalement alergique à la plume de manchot. Il te faut les droits administrateur pour changer ton adresse IP, un dual boot n'en parlons pas ; alors  tu penses ... faire un emerge c'est comme croire qu'il y aura toujours du pétrole  

 

Sur le site Proxytunnel, on peut lire qu'il est utilisable sur un Win (2000 et +) via Cygwin. Moi je dis çà, je dis rien, hein...

Perso, j'avais déjà joué avec httptunnel (hts/htc), mais c'était plutôt pénible, surtout que cela nécessite un démon sur le serveur (donc un port ouvert pour çà... ggnnnnnn).

Proxytunnel a l'air super sympa, çà se compile même sur le portable ubuntu du taff (oui, bon, hein, ya 3 mois c'était encore un XP, ça progresse  :Razz: ). Par contre, bon, j'ai pas encore changé le port de mon serveur SSH (qui est >1024), mais j'ai un comportement étrange: le tunnel se coupe direct après s'être établi. Si je prends un port fermé, pas de tunnel et ça tombe en timeout, sur un autre port ouvert, ça monte le tunnel, puis timeout (ouais, pas de ssh sur ce port, logique).

Et j'ai même pas de flux SSH d'authentification qui passe, ça coupe direct.

Du coup, j'ai l'impression que le proxy ne filtre pas les ports, mais j'ai un schmurtz chelou, là.

Je vais changer le port du serveur SSH, mais j'y crois moyennement.

----------

## BENJI

 *gbetous wrote:*   

>  *BENJI wrote:*   Aurais-tu la bontée de me montrer ton fichier de config que je m'en inspire ! 
> 
> La seule chose que je change, c'est de rajouter une ligne Port 443 dans le /etc/ssh/sshd_config
> 
> J'ai donc :
> ...

 

Je pense que j'ai aussi un petit truc à faire chez moi sur mon modem routeur pour rediriger le port 443 sur le bon PC.

Je mets ça en place ce soir et je teste demain matin.

----------

## gbetous

 *BENJI wrote:*   

> Je pense que j'ai aussi un petit truc à faire chez moi sur mon modem routeur pour rediriger le port 443 sur le bon PC.

 

Ah oui bien sur. Dans ce cas, tu peux meme ruser un peu (je vois pas trop l'interet mais bon...) Tu peux demander à ton modem routeur de rediriger 443 sur le 22 de ton serveur. Comme tu veux !

 *Uggy wrote:*   

> Dans ce cas autant juste utiliser le proxy SOCKS SSH... (Dans putty c'est dans "tunnels" puis cocher "Dynamic" et en ligne de commande c'est l'option -D ) 

 

Ouah je connaissais pas !!!  Excellent, je tenterai !

----------

## BENJI

 *gbetous wrote:*   

>  *BENJI wrote:*   Je pense que j'ai aussi un petit truc à faire chez moi sur mon modem routeur pour rediriger le port 443 sur le bon PC. 
> 
> Ah oui bien sur. Dans ce cas, tu peux meme ruser un peu (je vois pas trop l'interet mais bon...) Tu peux demander à ton modem routeur de rediriger 443 sur le 22 de ton serveur. Comme tu veux !
> 
> 

 

Je parle d'address IP pas de port   :Wink:  Mais ceci dit j'avais pas pensé à ce que tu proposes !

----------

## BENJI

 *BENJI wrote:*   

>  *gbetous wrote:*    *BENJI wrote:*   Je pense que j'ai aussi un petit truc à faire chez moi sur mon modem routeur pour rediriger le port 443 sur le bon PC. 
> 
> Ah oui bien sur. Dans ce cas, tu peux meme ruser un peu (je vois pas trop l'interet mais bon...) Tu peux demander à ton modem routeur de rediriger 443 sur le 22 de ton serveur. Comme tu veux !
> 
>  
> ...

 

----------

## dapsaille

Je me greffe un peu la dessus mais ..

 Au boulot on as un proxy de type proxypac avec juste un script cgi à placer dans ffox ..

 Quelqu'un sais comment avoir son adresse exacte/port afin de le placer dans putty ?

J'ai configuré sshd pour qu'il ecoute sur 22 443 et 80 .. de l'extérieur ca marche sans problèmes.

 Je précise que mon serveur n'est pas au boulot bien sur c'est le client qui est derrière le proxy.

----------

## BENJI

Je suis dans le même cas j'ai moi aussi un script proxy.pac à placer dans firefox.

J'ai bien modifié mon sshd_config pour qu'il écoute le port 443.

J'ai redirigé sur mon routeur le port 443 pour qu'il pointe sur mon PC de la maison (l'autre c'est celui de ma femme).

Dans putty (j'utilise la version protable de framakey...)

Dans la catégorie Session :

Host_name : valle--laurent.homedns.org

Port : 443

Protocol : SSH

Dans la catégorie Connexion>Proxy :

Proxy type : SOCKS5

Proxy hostname : XXX.YYY.fr

Port : 8050

Do DNS name lookup at proxy end : Auto est coché

Username : ZZZZ

Password : *******

Je lance la connexion, et je me retrouve avec un bel écran noir un petit carré vert dans le coin haut à gauche et il ne se passe strictement rien jusqu'à ce que le message d'erreur suivant apparaisse !

 *Quote:*   

> Server unexpectedly closed network connection

 

Une idée ?

Je précise que toutes les infos sur le porxy je les ai trouvées dans les paramètres de firefox et que je les ai testées en configurant manuellement le proxy et ça fonctionne.

Alors d'après les symtômes c'est quoi le problème docteur ?

----------

## BENJI

Dernier test en mettant 

proxy type à http et ça marche !

Merci pour l'aide, j'ai l'impression d'être plus libre qu'hier !

 :Wink: 

----------

## El_Goretto

@dapsaille: télécharge le script sur ton poste, ouvre-le, et regarde les @IP/ports qui correspondent à ton subnet  :Smile: 

Bon, moi rien à faire, le proxy continue de faire l'autiste: le tunnel monte, la tentative de connexion est visible sur la machine serveur, mais rien n'est transmis à l'intérieur du tunnel (de mon côté le client ssh ne recoit rien, et en face non plus rien n'est recu, un ami a joué avec nc).

Les symptômes: le tunnel est monté, puis directement après il tombe, le client SSH en mode super verbeux ne voyant absolument rien, côté serveur SSH "no authentication strig recieved from...".

Bref, c'est rapé pour moi, car proxytunnel n'a pas d'option sur lesquelles je pourrais jouer, et côté Serveur, le FW et OpenSSH sont hors de cause.

--

edit: pareil avec corkscrew à la place de proxytunnel, donc ca vient du proxy... ggrrrrrr...

----------

## El_Goretto

Pour ceux que ça intéresse, j'ai trouvé une howto utilisant proxytunnel, et un apache comme second proxy.

Le proxy que je dois affronter (j'ai trouvé le nom et modèle, c'est une appliance et pas un Squid comme le port le suggère) est manifestement capable de voir ce qui circule, même en mode SSL avec proxytunnel. En effet, quand je browse un vrai serveur apache avec un vrai site https via proxytunnel, ça passe, mais pas dès qu'il y a openSSH derrière ou autre, rien ne passe.

----------

## nico_calais

Essaie de matter httptunnel [1]. 

J'ai survolé mais apparemment tu dois l'installer au taf et chez toi (y a un binaire win32).

Donc peut être que ça permet de tromper ton proxy assez facilement.

[1]http://www.nocrew.org/software/httptunnel.html

----------

## BENJI

 *BENJI wrote:*   

> Dernier test en mettant 
> 
> proxy type à http et ça marche !
> 
> Merci pour l'aide, j'ai l'impression d'être plus libre qu'hier !
> ...

 

Ouais, bon l'euphorie est retombée... j'ai pas mis le chrono mais je perds la connexion au bout d'environ 1 minute... C'est à cause du proxy ou c'est autre chose !

Heureusement j'utilise screen donc je ne perds rien !

----------

## razer

 *gbetous wrote:*   

> 
> 
> En prime t'as une manip excellente à faire :
> 
> Tu peux t'amuser à monter un proxy chez toi (par exemple squid). Ainsi, tu demandes à ton putty de te faire un tunnel sur ce proxy (par exemple un tunnel entre le port 3128 de ton serveur, et 3128 de ton client Windows du boulot). Ensuite, tu n'as plus qu'à configurer ton browser Internet pour qu'il utilise le proxy localhost:3128 (c'est à dire le port 3128 de ton PC WIndows du boulot), putty va balancer ça sur le 3128 de ton serveur, et hop! tu browse le web en utilisant le proxy de ton serveur, donc no limit, et le tout crypté par ssh !
> ...

 

Héhé, c'est pile poil ce que je fais au boulot  :Smile: 

Le web est filtré façon chinoise dans l'educ, même pas droit au porno et au warez : je vois plus l'intérêt du web là  :Wink: 

----------

## gbetous

 *BENJI wrote:*   

> Ouais, bon l'euphorie est retombée... j'ai pas mis le chrono mais je perds la connexion au bout d'environ 1 minute... C'est à cause du proxy ou c'est autre chose !
> 
> Heureusement j'utilise screen donc je ne perds rien !

 

Non, non, c'est normal c'est SSH qui le fait par défaut. Active le TCPKeepalive dans ton serveur (toujours le /etc/sshd/sshd.conf) et dans putty (je crois que je le mets toutes les 5 secondes). ainsi t'as un petit paquet qui passe pour dire "eh oh ! je suis toujours vivant !", et ton ssh reste ouvert   :Wink: 

----------

## BENJI

 :Cool:  ok merci ça marche !

----------

## BENJI

euh non ça marche plus   :Confused: 

J'ai toujours des déconnexions, moins rapidement et moins fréquente mais j'en ai toujours !

Sinon effet de bord ou pas voilà ce que me dit apache quand je le lance maintenant :

```
ataualpa ~ # /etc/init.d/apache2 start

 * Starting apache2 ...

(98)Address already in use: make_sock: could not bind to address 0.0.0.0:443

no listening sockets available, shutting down

Unable to open logs                                                       [ !! ]
```

Le port 443, comme par hasard !

Je suis en train de mettre en place un blog sur mon PC, histoire de tester Dotclear et depuis la manip ssh je ne peux plus y accéder depuis l'extérieur.

En local chez moi je n'ai pas testé pour le moment !

----------

## Desintegr

Si tu n'as pas besoin du vhost SSL pour Apache, désactive le.

Sinon change le port du serveur SSH pour un autre port autorisé.

----------

## BENJI

ok ça marche de nouveau ! Merci !

Avec cette connexion ssh je vais faire des progrès à grande vitesse sous gentoo !

----------

## El_Goretto

 *El_Goretto wrote:*   

> Pour ceux que ça intéresse, j'ai trouvé une howto utilisant proxytunnel, et un apache comme second proxy.

 

Ok, j'ai mis en place cette configuration sur ma machine perso, et... ça ne mache pas le proxy initial.

Par contre, via un proxy d'un autre type tout aussi bourru au départ, cela m'a permis de sortir... ouf.

Intéressant, il est question du non support par mod_proxy d'apache de la méthode connect quand SSL est activé... Alors que c'est le cas en http standard. Apparemment, le patch a u mal à faire son chemin jusqu'au code source. cf le lien vers le bas de la howto: http://issues.apache.org/bugzilla/show_bug.cgi?id=29744 On y trouve une version précompilée et un fichier source modifié pour corriger le problème. Cela fonctionne sur un apache 2.2.8.

----------

