Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 29/04/2008, à 19:36

®om

[Tuto] Passer à travers un proxy et creuser un tunnel ssh

EDIT: présentation plus complète de SSH, incluant cette partie, est postée sur mon blog.

Il vous est peut-être déjà arrivé d'être derrière un proxy en entreprise, et évidemment, seuls quelques ports (sortants) sont ouverts, et certains sites sont bloqués.

Vous ne pouvez pas lire vos mails dans votre logiciel de courrier, vous n'avez pas accès à des sites qui sont bloqués (si le blocage est injustifié, il faut envoyer un mail à l'admin, etc...), vous n'avez pas accès à irc (c'est pratique pour avoir de l'aide sur du développement)...
Bref, vous êtes bloqués.

Ce tuto va présenter comment passer à travers le proxy, et comment, avec une machine "rebond" (votre pc fixe chez vous par exemple), vous pouvez accéder à tous les sites, à irc, à votre messagerie instantanée...

Passer à travers le proxy

Le proxy filtre tout le trafic, et décide ce qu'il doit accepter ou refuser.
Mais bien sûr, il existe des connexions sécurisées (pour accéder à des sites sécurisés sur https par exemple, comme les sites bancaires), et par définition, il ne peut pas analyser ce traffic, car c'est crypté !

Il suffit donc de se connecter à un serveur qui écoute sur le port 443 (port du https) pour le proxy vous laisse passer. C'est le cas par exemple avec Jabber, dans votre client jabber, vous pouvez spécifier d'utiliser SSL sur le port 443, dans ce cas vous pouvez vous y connecter sans problème.

Mettre en place un tunnel SSH

Mais bon, c'est bien gentil, mais tous les serveurs n'ont pas un démon qui tourne sur le port 443 pour vous accueillir. Donc vous allez configurer un serveur (votre pc fixe chez vous par exemple) pour que lui, écoute sur le port 443 et vous obéisse.

Sur votre serveur, installez un serveur SSH qui écoute sur le port 443 :

sudo apt-get install openssh-server

Pour changer le port, éditez /etc/ssh/sshd_config :

gksudo gedit /etc/ssh/sshd_config

Et remplacez 22 par 443 sur la ligne :

Port 22

(ou laissez la ligne Port 22 et rajoutez une ligne Port 443)
Ouvrez le port 443 sur votre routeur.

Alternativement, vous pouvez laisser 22, et configurer votre routeur pour qu'il redirige le port 443 sur le port 22, ça permet d'utiliser le ssh en local sur le port 22, qui est le port par défaut.

Redémarrez le serveur ssh :

sudo /etc/init.d/ssh restart

Voilà c'est tout pour le serveur.

Pour plus de facilité et de sécurité, vous pouvez mettre en place une connexion par clés publique/privée, cf http://doc.ubuntu-fr.org/ssh


Maintenant le client.

Installez corkscrew :

sudo apt-get install corkscrew

Cela vous permettra de passer une connexion ssh au dessus de https.

Supposons que le proxy que vous essayez de passer est : proxy.entreprise.fr sur le port 3128
Et que votre PC fixe est accessible depuis l'extérieur par moi.mondomaine.fr (si vous n'en n'avez pas, utilisez votre ip).

Sur le pc client, tapez la commande :

ssh -D1111 -p443 moi@moi.mondomaine.fr -o"ProxyCommand corkscrew proxy.entreprise.fr 3128 %h %p"

Si le proxy nécessite une authentification :

ssh -D1111 -p443 moi@moi.mondomaine.fr -o"ProxyCommand corkscrew proxy.entreprise.fr 3128 %h %p votrelogin votremotdepasse"

(laissez la fenêtre ouverte)
(vous pouvez choisir le port que vous voulez au lieu de 1111)

Voilà, maintenant, localhost:1111 est un proxy SOCKS5 !


Vous pouvez le configurer dans les paramètres de votre système :
1209492967_proxy.png
ou dans chacun des logiciels (comme firefox par exemple).

Toutes vos connexions passeront dans le tunnel ssh de manière sécurisée (entre votre pc client et votre pc fixe), et c'est votre pc fixe qui effectuera la connexion vers les sites que vous voulez accéder, mais lui, contrairement au proxy de l'entreprise, ne refusera pas les connexions smile


Pour éviter de passer toute la commande "ProxyCommand" en paramètre de ssh, vous pouvez la configurer définitivement pour un host particulier.
Pour cela, éditez /etc/ssh/ssh_config

gksudo gedit /etc/ssh/ssh_config

Et tout à la fin du fichier, rajoutez (en adaptant) :

Host moi.mondomaine.fr
	ProxyCommand corkscrew proxy.entreprise.fr 3128 %h %p

ou, si le proxy nécessite une authentification :

Host moi.mondomaine.fr
	ProxyCommand corkscrew proxy.entreprise.fr 3128 %h %p votrelogin votremotdepasse

Maintenant vous pouvez simplement taper

ssh -D1111 -p443 moi@moi.mondomaine.fr

pour créer le tunnel.




De la même manière (avec corkscrew), vous pouvez monter vos répertoires distants en local avec sshfs à travers une connexion ssh sur https... et lire votre musique ou regardez vos vidéos à distance (si la connexion le permet).


Amusez-vous bien smile

Dernière modification par ®om (Le 14/12/2009, à 14:13)

Hors ligne

#2 Le 29/04/2008, à 20:36

akira86

Re : [Tuto] Passer à travers un proxy et creuser un tunnel ssh

Merci ...
Tu devrais le mettre dans la doc plutot que sur le forum ... non ??


astuce de la console :
tab pour compléter automatiquement le nom d'une commande d'un dossier ou d'un fichier.
clique molette pour recopier une sélection.

Hors ligne

#3 Le 01/05/2008, à 16:38

ToMaZi

Re : [Tuto] Passer à travers un proxy et creuser un tunnel ssh

Je suis dans la situation que tu as indiqué (proxy avec WebSense au boulot) par contre nos postes clients sont sous windows (erfff !).
Ca serait bien que tu expliques comment configurer le poste client sous windows pour utiliser le tunnel SSH.

Merci !

#4 Le 01/05/2008, à 16:47

pmd

Re : [Tuto] Passer à travers un proxy et creuser un tunnel ssh

Je n'arrive déjà pas à me connecter à jabber via le port 443 avec pidgin. Compte sur http://www.nuxo.net

Du coup, j'ose même pas lire la suite. Et pourtant ça me serait plus qu'utile big_smile

Hors ligne

#5 Le 01/05/2008, à 16:51

®om

Re : [Tuto] Passer à travers un proxy et creuser un tunnel ssh

ToMaZi a écrit :

Je suis dans la situation que tu as indiqué (proxy avec WebSense au boulot) par contre nos postes clients sont sous windows (erfff !).
Ca serait bien que tu expliques comment configurer le poste client sous windows pour utiliser le tunnel SSH.

Merci !

Euh, c'est possible avec putty, mais je ne saurais pas t'expliquer, désolé...


pmd a écrit :

Je n'arrive déjà pas à me connecter à jabber via le port 443 avec pidgin. Compte sur http://www.nuxo.net

Du coup, j'ose même pas lire la suite. Et pourtant ça me serait plus qu'utile big_smile

C'est parce qu'ils n'ont pas de serveur sur le port 443 en ssl...
Avec jabberfr ça marche smile

Hors ligne

#6 Le 12/06/2008, à 19:13

MiAmor

Re : [Tuto] Passer à travers un proxy et creuser un tunnel ssh

Bonsoir
Je cherche une solution comme celle la depuis un moment.
Ton post enfin explique correctement et en francais smile

Notre proxy loggue toute l'activité , avec rapport regulier mis a dispo...
Que verra t'il passer lors de la premiere requete ?
Il va logguer que je suis allé vers https://chezmoi.mondomaine.fr:443 , non ?

Si l'admin veut voir le site , il va vite se rendre compte si il essaye avec son navigateur que ce site n'existe pas vraiment ... sad

Bonne soiree
Mia

#7 Le 12/06/2008, à 20:29

sloter

Re : [Tuto] Passer à travers un proxy et creuser un tunnel ssh

hello,

ça passe pour moi, donc super Rom cool
j'ai consulté http://doc.ubuntu-fr.org/tutoriel/acces … iere_proxy
j'ai utilisé la procédure depuis un poste Windows par contre je n'ai pas eu a modifier la configuration du proxy http.

Par contre comment savais-tu que le proxy de la boite écoutais sûr le port 3128?
Et comment déterminer le port d'écoute si ce n'est pas celui-là?
Est-il possible d'explique un peu plus la translation de port D6588 dans le tutoriel ou D1111 sur ce fil ?

Merci,
sloter

Hors ligne

#8 Le 12/06/2008, à 20:52

Benjdev

Re : [Tuto] Passer à travers un proxy et creuser un tunnel ssh

Sous jabberfr... pas de connexion par hotspot Neuf !


Boire du café empêche de dormir. Par contre, dormir empêche de boire du café. "L'excellent du chat", Geluck
Fibré, chez red... Enfin, internet une semaine sur deux quoi !
coinbase.com/join/devine_za3?

Hors ligne

#9 Le 03/07/2008, à 22:45

kerkael

Re : [Tuto] Passer à travers un proxy et creuser un tunnel ssh

Hep, vous me donnez un coup de pouce à moi aussi ?

Depuis mon boulot, je ne configure pas l'adresse de mon proxy. C'est-à-dire que mon butineur a pour paramètres : connexion directe à internet.

J'ai un accès web quasi illimité mais pas de serveur pop ni certains ports java.

Donc, je veux faire du rebond sur mon pc@home. Attention, ça ne m'intéresse pas d'accéder précisément à mon linux@home et à ses applis. Je veux faire du rebond vers le full accès web que j'ai depuis la maison. Je sais paramétrer mon client SSH et mon serveur SSH, je sais utiliser VNC, mais je ne sais pas quoi faire de mon routeur.

Y a plein de rubriques et pas une qui s'appelle SSH !!!
Je vois :
- Serveur Virtuel dont je comprends que ça me permettrait d'accéder à un serveur web@home depuis l'exterieur (pas ce que je veux, j'héberge rien)
- Redirection de Port présenté aussi comme une manière d'héberger un serveur de jeu. Plein d'entrées prévues pour des range de ports compatibles avec le jeu. Mais toujours pas pour moi, n'est-ce pas ?
- Routage pour personnaliser l'acheminement ? Il faut y renseigner une IP de destination, subnetmask et passerelle .... C'est pour les données sortant, ça, non ?
- Firewall SPI, NAT ....DMZ (bon, pour DMZ je sais, c'est si je veux mettre mon pc@home un peu plus sur le web qu'il n'est, des fois que des applis en ont besoin, mais là ça me sert à rien).
- J'ai aussi des Règles d'Application prédéfinies pour lesquelles j'indique un port de déclenchement et un port de pare-feu (ca forme une plage, non) pour TCP, UDP ou les deux ...avec des applis de Voice over Ip prédéfinies. mais ça m'a toujours l'air de venir de l'interieur verx l'exterieur.

Bref, si ca vous parle, mon routeur est un DLINK Dir-635, et je sais pas ce qu'il veut !

Dernière modification par kerkael (Le 03/07/2008, à 23:22)

Hors ligne

#10 Le 04/07/2008, à 09:11

®om

Re : [Tuto] Passer à travers un proxy et creuser un tunnel ssh

Si tu es en connexion directe à internet, normalement c'est bon, non?
Tu n'as pas accès à tout?

Si ce n'est pas le cas, arrives-tu à te connecter en ssh sur ton pc @home (juste pour accéder à ton pc)?

Dernière modification par ®om (Le 04/07/2008, à 09:11)

Hors ligne

#11 Le 04/07/2008, à 09:35

kerkael

Re : [Tuto] Passer à travers un proxy et creuser un tunnel ssh

Ben, j'ai beau être en accès direct à Internet, ma boîte filtre les ports accessibles. Comme je disais, je peux pas me connecter à un serveur pop depuis thunderbird ou outlook express.

Par contre, c'est cette histoire de routeur@home que je ne sais pas paramétrer pour me laisser me connecter via ssh.

Mais je sais que le ssh est autorisé en sortie de ma boîte, vu qu'on se connecte chez des clients par ce mode.

Hors ligne

#12 Le 04/07/2008, à 09:52

®om

Re : [Tuto] Passer à travers un proxy et creuser un tunnel ssh

En gros, tu ne sais pas configurer ton routeur qui est chez toi?

C'est dans Redirection de ports qu'il faut que tu regardes.
Il suffit que tu redirige un port «externe» sur une machine et un port.

Par exemple, tu dis :
rediriger 1234 sur 192.168.0.1 port 22, ce qui signifie que si tu accèdes à tonipexterne:1234, tu accèderas au ssh de 192.168.0.1 sur le port 22.

Hors ligne

#13 Le 06/07/2008, à 00:00

kerkael

Re : [Tuto] Passer à travers un proxy et creuser un tunnel ssh

Ah, merci.

Bon, si je comprends enfin le principe, en revanche mon routeur, dans la rubrique Redirection de Ports ne me présente pas les choses ainsi.
C'est pour ça que j'avais pas saisi.

En redirection de ports je vois :
Nom : pour nommer ma redirection, en l'associant à une appli
Ports ouverts : TCP .... UDP ... à renseigner. je suppose que je mets ici le port 1234 que tu me donnes en exemple.
Adresse IP : celle sur mon réseau interne.

Ce qui m'embête c'est que je ne vois pas comment indiquer le port de mon adresse interne à utiliser. A moins que dans l'adresse IP j'utilise la syntaxe 192.168.0.100:22 mais j'ai pas l'impression que c'est fait pour ca.

Je teste ...

Hors ligne

#14 Le 06/07/2008, à 00:52

kerkael

Re : [Tuto] Passer à travers un proxy et creuser un tunnel ssh

Ah ben ca y est, merci, ça marche.

Enfin, je veux dire que j'arrive à me connecter par SSH à mon linux@home par on ipexterne:1234 redirigée vers le port 443. J'ai bien l'accès terminal ssh sur ma machine ... mais il me manque un truc. Le coup du rebond, ca passe pas on dirait.

Mon Firefox me donne cela : Firefox est configuré pour utiliser un serveur proxy mais celui-ci n'accepte pas les connexions. après que j'ai collé localhost 1234 dans les paramètres socks5 de mon proxy.

Docteur, qu'est-ce que j'ai fait de mal ?

Au fait, mon client est sous windows, donc j'utilise putty. Est-ce que c'est le tunnel SSH que j'ai oublié de configurer ?
Si je me connecte par ssh à ipexterne:1234, je vois bien mon ubuntu@home attaqué par le port 443, puisque je l'ai ouvert.
Mais quelle manip faire pour le tunnel ? J'ai essayé de remettre la même chose mais ca me paraissait absurde (du coup ca ne marche pas).
J'ai essayé de spécifier un autre port, 1111, et l'adresse interne + 5900 mais ca serait pour vnc, alors quid ?

bon, je pars pour 1 mois, ca vous laisse le temps de plancher pour moi lol

Merci les aminches

Hors ligne

#15 Le 08/09/2008, à 22:50

Skippy le Grand Gourou

Re : [Tuto] Passer à travers un proxy et creuser un tunnel ssh

Y-a-t'il un intérêt particulier à passer par le port 443 plutôt que le port 22 ? Ou on présuppose que le port 22 fait partie des ports bloqués ??

Chez moi (avec un serveur ssh déjà normalement configuré) il a suffit de faire :

ssh -D 8080 -fN login@serveur

puis de mettre localhost sur port 8080 comme hôte SOCKS dans firefox ou dans les options réseau, pas besoin de corkscrew ou de configuration particulière du serveur ou du client…

Dernière modification par Skippy le Grand Gourou (Le 08/09/2008, à 22:51)

Hors ligne

#16 Le 08/09/2008, à 22:54

®om

Re : [Tuto] Passer à travers un proxy et creuser un tunnel ssh

Skippy le Grand Gourou a écrit :

Y-a-t'il un intérêt particulier à passer par le port 443 plutôt que le port 22 ? Ou on présuppose que le port 22 fait partie des ports bloqués ??

Chez moi (avec un serveur ssh déjà normalement configuré) il a suffit de faire :

ssh -D 8080 -fN login@serveur

puis de mettre localhost sur port 8080 comme hôte SOCKS dans firefox ou dans les options réseau, pas besoin de corkscrew ou de configuration particulière du serveur ou du client…

Si le proxy autorise une connexion sortante sur le port 22, effectivement, y'a aucun problème.

Hors ligne

#17 Le 19/09/2008, à 14:11

Zakhar

Re : [Tuto] Passer à travers un proxy et creuser un tunnel ssh

Alors bien sûr, ce tuto ne marche pas pour les proxy "sérieusement" gérés ! big_smile

Vous connaissez le coup de la liste-noire/liste-blanche ?

Voici comment cela fonctionne (de façon simplifiée).

Port 80, trafic HTTP => liste noire.
- Tout ce qui est sur la liste noire est interdit.
- Tout le reste est autorisé.

Port 443, trafic HTTPS => liste blanche.
- Tout ce qui est sur la liste blanche est autorisé.
- Tout le reste est interdit.

Ca n'a pas l'air logique me direz-vous, on a l'air d'être plus laxiste sur HTTP alors que c'est moins sécurisé.
Oui, mais précisément Rom l'a dit plus haut, HTTP on peut tout tracer et regarder ce qu'il se passe "en clair". HTTPS on ne voit rien.
Donc si quelqu'un fait quelque chose de répréhensible en HTTP, on pourra toujours remonter la trace et le prouver.
En HTTPS, on sait juste que IP source a échangé du trafic avec IP destination, mais on ne peut pas savoir la teneur de l'échange.

Conclusion : si vous avez un tel proxy, ce qui est expliqué ici ne marchera pas.
Pourquoi : il n'y a aucune raison que votre PC chez vous soit sur la "liste blanche", vous n'êtes pas une banque ou un organisme marchand reconnu.

La seule solution, un tunnel HTTP (j'explore), et bien sûr y faire passer du flux crypté sinon voir ci-dessus !
Et là ça marchera.
Pourquoi : il n'y a guère plus de raison que votre PC chez vous soit sur la liste noire : vous n'êtes pas un site connu pour faire des choses que l'entreprise interdit, du moins tant que....

... comme disent les concepteurs de certains tunnels HTTP, si ça vous pète à la figure, que votre entreprise se chope des virus à cause de votre tunnel, que vous êtes virés pour vos activités normalement interdites... ne vous en prenez qu'à vous même tongue

Ah, un dernier point, n'espérez pas "ruser" le Proxy en faisant du SSH, FTP, VNC, ou ce que vous voulez sur le port 80. Evidemment le proxy est tout à fait capable de se rendre compte que ce n'est pas du HTTP et de bloquer tout ça.
Par contre, si c'est pour échanger des fichiers seulement, WebDAV est en général OK puisque c'est simplement du HTTP étendu.

Dernière modification par Zakhar (Le 19/09/2008, à 14:22)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#18 Le 30/09/2008, à 15:37

thomine

Re : [Tuto] Passer à travers un proxy et creuser un tunnel ssh

Bonjour,
Question très bête mais c'est juste pour me rassurer tongue.
Est-ce que le proxy voit le mot de passe SSH en clair ?
Je pense que non mais bon...
Par avance, merci !

Hors ligne

#19 Le 30/09/2008, à 15:47

®om

Re : [Tuto] Passer à travers un proxy et creuser un tunnel ssh

thomine a écrit :

Bonjour,
Question très bête mais c'est juste pour me rassurer tongue.
Est-ce que le proxy voit le mot de passe SSH en clair ?
Je pense que non mais bon...
Par avance, merci !

Bien sûr, le mot de passe ne passe JAMAIS en clair... smile

Hors ligne

#20 Le 01/10/2008, à 08:46

thomine

Re : [Tuto] Passer à travers un proxy et creuser un tunnel ssh

Merci ®om.
Pour ceux qui sont intéressés par le pourquoi du comment, j'ai trouvé un article très intéressant sur le site de ProxyTunnel. L'auteur explique pas à pas et avec des exemples ce que fait ProxyTunnel, et donc le mécanisme d'encapsulation dans du HTTP avec la méthode CONNECT.
Bonne lecture : http://proxytunnel.sourceforge.net/paper.php.

Hors ligne

#21 Le 01/10/2008, à 10:38

traaf

Re : [Tuto] Passer à travers un proxy et creuser un tunnel ssh

mon cousin m'a fait ca :http://www.breizh-ardente.fr/public/Com … bureau.pdf
ca date un peu, mais ca m'a servi

Dernière modification par traaf (Le 01/10/2008, à 10:44)


Vault106, musique libre, enjoy it /!\

Hors ligne

#22 Le 07/10/2008, à 08:52

kronoss7878

Re : [Tuto] Passer à travers un proxy et creuser un tunnel ssh

j'ai une petite question:

je voudrais telecharger des demo et patch de jeu ( actuellement le patch de the witcher qui fais "seulement" plus d'1 go) a la fac étant donnée qu'ils ont une bande passante de malade et que mon cota a la maison est vite limité (belgique power big_smile), si maintenant je dois passer par mon pc pour telecharger, je telechargerais a la vitesse de ma connection avec le cota de chez moi ou celui de l'école ?

#23 Le 07/10/2008, à 09:18

®om

Re : [Tuto] Passer à travers un proxy et creuser un tunnel ssh

Vu que tu passes par chez toi, tu téléchargeras à la vitesse min(upload(server),download(home),upload(home),download(school)) smile

Hors ligne

#24 Le 07/10/2008, à 15:52

Se6

Re : [Tuto] Passer à travers un proxy et creuser un tunnel ssh

kerkael a écrit :

mais il me manque un truc. Le coup du rebond, ca passe pas on dirait.

Mon Firefox me donne cela : Firefox est configuré pour utiliser un serveur proxy mais celui-ci n'accepte pas les connexions. après que j'ai collé localhost 1234 dans les paramètres socks5 de mon proxy.

Docteur, qu'est-ce que j'ai fait de mal ?

Il faut que tu installes un serveur proxy a la maison, privoxy par exemple. Toutes tes connexions web passeront alors par chez toi, ca sera un peu plus lent, mais pas filtre par ton entreprise...

Seb.

Hors ligne

#25 Le 25/10/2008, à 15:53

Goldy

Re : [Tuto] Passer à travers un proxy et creuser un tunnel ssh

J'étais en train de me demander si cette méthode était capable de passer au travers des connexion web mobile limité. Par exemple, la plupart des accès internet mobiles illimités sont bloqué sur le port 80 (et peut être 443), il serait alors possible de faire tout passer par ce port 80 ou 443 pour pouvoir y faire de la voip ou bien de la messagerie instantanée ou même de l'admin ssh. Le trafique n'étant pas surveillé (normalement) sur ces proxy, mais simplement bloqué de façon automatique, il ne devrait pas y avoir de problèmes.

Sinon, je cherche un moyen de sécuriser ma connexion dans une bibliothèque. J'ai un abonnement à ozone qui est un maillage de hot spot wifi, et bien entendu, bien que l'accès à internet ne soit absolument pas restreint, ça pose quelques problèmes de sécurités car n'importe qui sniffant les paquets sans même être connecté au réseau peut très bien récupérer un peu tout ce qui passe.

Cette méthode semble particulièrement adapté, surtout qu'il semble possible de l'utiliser de façon transparente (y'a quelques points qui reste flou pour moi, par exemple, si justement il est possible grâce à un tel proxy il est possible d'utiliser absolument tout internet sans restriction ou si c'est limité à chaque applications).

Hors ligne