Bonjour.
Je voudrais établir un tunnel SSH depuis mon école.
Évidement, cette dernière utilise un proxy, port 8080 avec un nom d'utilisateur et un mot de passe.
Quels outils puis-je me servir pour faire ça ?
J'ai bien trouver quelques trucs, mais à chaque fois, je me chope une erreur 403 car il ne prend pas l'user / pass...
Merci bien :)
# Plus d'infos ?
Posté par JJD . Évalué à 2.
Il faudrait un peu plus d'infos, en particulier concernant les outils que tu as testés, pour éviter te t'envoyer sur des pistes que tu as déjà explorées.
Quoi qu'il en soit, pour passer un proxy http, je ne connais que httptunel (avec le couple hts/htc pour le serveur et le client). J'ai testé avec un proxy squid (sans authentification) et ça semble fonctionner correctement. Les options --proxy-authorization (-A) ou --proxy-authorization-file permettent de spécifier un user/mot de passe pour le proxy, mais je n'ai jamais eu à les utiliser.
Dans un autre domaine, si les paquets ICMP sortent de ton réseau scolaire (ping), tu peux essayer de regarder du côté de ptunel : http://www.cs.uit.no/~daniels/PingTunnel/index.html(...) .
JJD
[^] # Re: Plus d'infos ?
Posté par Thymus . Évalué à 1.
[^] # Re: Plus d'infos ?
Posté par Thymus . Évalué à 1.
Je recommence :
GenTux-Laptop .ssh # connect -d -H <PROXY>:8080 <HOTE> 22
DEBUG: (none)
DEBUG: relay_method = HTTP (3)
DEBUG: relay_host=<PROXY>
DEBUG: relay_port=8080
DEBUG: relay_user=root
DEBUG: local_type=stdio
DEBUG: dest_host=<HOTE>
DEBUG: dest_port=22
DEBUG: Program is $Revision: 1.93 $
DEBUG: resolving host by name: <HOTE>
DEBUG: resolved: <HOTE> (X.X.X.X)
DEBUG: not matched, addr to be SOCKSified: X.X.X.X
DEBUG: connecting to <PROXY>:8080
DEBUG: begin_http_relay()
DEBUG: >>> "CONNECT <HOTE>:22 HTTP/1.0\r\n"
DEBUG: >>> "\r\n"
DEBUG: <<< "HTTP/1.0 403 Forbidden\r\n"
DEBUG: http proxy is not allowed.
FATAL: failed to begin relaying via HTTP.
et
ssh -C -o 'ProxyCommand=/usr/local/bin/corkscrew <PROXY> 8080 %h %p /home/thymus/.ssh/myauth' <HOTE> 22
Proxy could not open connnection to <HOTE> : Forbidden
ssh_exchange_identification: Connection closed by remote host
Merci
[^] # Re: Plus d'infos ?
Posté par symoon . Évalué à 1.
[^] # Re: Plus d'infos ?
Posté par Thymus . Évalué à 1.
[^] # Re: Plus d'infos ?
Posté par symoon . Évalué à 1.
Tu en connais beaucoup des serveurs web sur le port 22 ?
L'administrateur du proxy non plus, c'est pour cela qu'il ne t'autorise sûrement qu'à contacter des serveurs sur les port 443 et 80.
Proxy could not open connnection to HOTE : Forbidden
Tu dois donc faire en sorte que le serveur ssh écoute sur un de ces deux ports.
[^] # Re: Plus d'infos ?
Posté par Thymus . Évalué à 1.
J'avais mal compris en effet :]
Je vais essayer ça, merci :)
[^] # Re: Plus d'infos ?
Posté par JJD . Évalué à 2.
De plus, même en faisant écouter le serveur SSH sur un autre port (80, 443, 8080 ou tout autre port que le proxu accepte de relayer), il y a, à mon avis, peu de chance que cela fonctionne correctement car le proxy ne va relayer que des requêtes HTTP.
Je te conseille donc effectivement l'utilisation de httptunnel : il faut lancer la partie serveur (hts) sur ta machine perso et exécuter le client (htc) sur le poste à ton école en spécifiant les bons paramètres (en particulier le port à utiliser). Le couple htc/hts va encapsuler ton flux SSH dans des requêtes HTTP et tu devrais pouvoir passer le proxy.
En résumé : tu lances hts sur ton serveur SSH en lui disant de se mettre à l'écoute en HTTP sur le port XXXX et de router vers le port 22 en local. Tu lances htc sur la machine cliente en précisant le port d'écoute local YYYY, le proxy HTTP avec son authentification et l'adresse IP/port du serveur hts. Pour établir la connexion SSH, sur la machine cliente tu lances "ssh -l user -p YYYY localhost" (connexion ssh vers la machine locale sur le port YYYY où htc est à l'écoute. htc encapsule les trames TCP dans des requêtes HTTP et les envoie au serveur hts sur le port XXXX via le proxy. hts extraie les trames TCP du flux HTTP et les redirige vers le port 22 du serveur SSH) : c'est (beaucoup ?) plus lent qu'une connexion directe, mais "chez moi ça marche".
JJD
[^] # Re: Plus d'infos ?
Posté par symoon . Évalué à 2.
Le https, c'est du http dans du ssl, le proxy ne remonte alors pas au niveau http.
Lorsqu'on se connecte à un site https, le proxy ne fait que relai en fait, sans regarder le trafic.
Ensuite, il faut que ton client sache envoyer son trafic au proxy http, mais il n'y a besoin de rien côté serveur, je peux t'en assurer :)
Et ça évite une couche HTTP de trop entre le proxy et le serveur.
[^] # Re: Plus d'infos ?
Posté par symoon . Évalué à 2.
cf :
* des bouts de conf de squid :
* ou la rfc 2817 :
http://www.faqs.org/rfcs/rfc2817.html(...)
[^] # Re: Plus d'infos ?
Posté par Thymus . Évalué à 1.
Ca marchera aussi ?
# T'as essayé de demander l'ouverture du port ?
Posté par olosta . Évalué à 2.
Voila, un petit mail au service info de ton école qui détaille tes raisons (vraies ou imaginaires) et ils le feront peut-etre. Après rien ne t'empeche de te retourner vers des bidouilles obscures si ils sont vraiment bornés et paranoiaques.
Je veux pas faire la morale (je pense deja avoir mis en place un ou deux tunnels tordus), mais c'est tellement mieux de faire les choses de façon normale.
mes 2 c
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.