SSH derrière un proxy, Sslh

, par  Genma , popularité : 3%

Le proxy du boulot

Actuellement je suis en mission chez un client et derrière un proxy (voir à ce sujet mes différents billets taggués proxy). Les seuls ports ouverts sur ce proxy sont les ports 80 (http) et 443 (https).

Ayant un Raspberry qui tourne chez moi derrière ma Freebox, je peux me connecter dessus en SSH en passant par le port 443. Dans Putty ou Kitty, j’ai défini le proxy, le fait d’utiliser le port 443. J’arrive par SSH sur le port 443 de la Freebox. Sur la Freebox, j’ai défini que le port 443 était redirigé vers le port SSH du Raspberry Pi (22 par défaut). Dans Firefox, il me suffit alors de lui dire d’utiliser le proxy local créé pour que ma connexion Internet se fasse via la Freebox. Pour plus de détail, voir le tutoriel détaillé et complet que l’on trouve ici Contourner un proxy (au boulot…) via SSH et Putty.

Avec Yunohost déjà en place

Or sur ma Freebox, les ports 80 et 443 sont déjà ouverts et redirigés vers les ports correspondant du Raspberry pi sur lequel tourne Yunohost. Il n’y a donc pas de place, le port 443 est déjà utilisé/dédié aux connexions httpS au serveur web de Yunohost

Si je souhaite pouvoir me connecter en SSH sur mon Raspberry depuis la connexion Internet de mon lieu de travail, il faut que je sorte via le port 443... Et donc j’arrive sur le port 443 de la Freebox...

Une solution simple ?

Une solution simple et non technique est donc de passer par la connexion 3G/4G du téléphone (La connexion via le téléphone se fait via un abonnement Freemobile et les différents ports testés en sortie du PC (et en entrée sur la Freebox) ne sont pas bloqués/filtrés. Le téléphone me sert alors de modem). Ainsi je ne suis plus bloqué/filtré par le proxy et j’arrive via un autre port sur le serveur SSH (22 par défaut). Laissant le port 443 pour le https.

Oui mais si je veux quand même utiliser SSH depuis le réseau derrière un proxy ?

Une autre solution plus technique : Sslh

SSLH est un multiplexeur, qui permet de gérer les requêtes venant du port 443 pour rediriger vers les services SSH et SSL, ce qui permet par exemple de creuser un tunnel SSH et outre passer les règles des proxys professionnel ou tout simplement sécuriser sa connexion lors d’accès à des spots wifi public.
 SSLH : HTTPS et SSH sur le même port !
 SSLH : choisir le protocole ssl par défaut en cas de timeout

Dit autrement, on arrive sur la Freebox, via https ou SSH via le port 443. Les connexions sont redirigées par la Freebox sur le Raspberry. Et c’est SSLH qui tourne sur le Raspberry qui lui va déterminer si la connexion est de type https ou SSH et rediriger alors vers le bon service (ngnix ou le serveur SSH). Je n’ai pas encore mis en place ce système, mais ça ne saurait tarder. A suivre donc.