Voici une méthode presque simple pour ouvrir un accès en tunnel SSH vers sa fonera distante.

L'énorme avantage que je lui trouve est de pouvoir accéder à distance aux IP de son réseau local que l'on désignera ( notamment en HTTP) en n'ayant rien d'autre à ouvrir sur son routeur et la fonera que le port 22 SSH.
On évite ainsi toute manipulation parfois hasardeuse de son fichier /etc/firewall.user.


bien lire les avertissements de ce billet ...

Pour être plus court dans mes phrases ( sic ), ce que j'appelle le "PC client" est le PC sur lequel tu es ( au bureau si ton SI laisse sortir le port 22 , en vacances sur ton PC portable, etc ...) et qui te sert à te connecter à ta fonera via internet.

L'avantage n°1 c'est qu'il n'y a rien à installer sur la Fonera, et un simple client SSH type PuTTY sur le PC où tu te trouves !
L'inconvénient n°1 est la sécurité : il faut absolument pour l'accès SSH sur la fonera prévoir un mot de passe "costaud", ne le donner à personne, le renouveler régulièrement, ou mieux utiliser des certificats.
Un fonero averti en vaut ... au moins dix !

Fonctionnalités testées et avertissement:

  • accès à la page de config HTTP de la fonera en passant par le tunnel, donc sans avoir à ouvrir le port 80 sur la fonera ( et pas de redirection nécessaire pour routeur/modem/box à part le port 22 évidemment ..).
  • possibilté d'accès également à la config HTTP ou telnet du modem/routeur/box
  • un serveur FTP du réseau local devient aussi accessible
  • - il est également possible d'aller plus loin encore avec les transferts de flux vidéo, ou newsgroups par exemple depuis une fonera mais cette manip vous mettrait en irrégularité avec votre FAI sur vos conditions de ventes (les CGV), voire hors-la-loi, d'où l'importance de n'utiliser cette méthode que pour accéder au réseau local de la fonera. ( merci à mon compère de m'avoir permis de regarder télématin sur mon PC alors que je n'ai pas la TV ADSL...).

Donc dans ce cas il ne peut s'agir que d'un test de quelques minutes et rien de plus sous peine de s'attirer des ennuis, au mieux le FAI, le propriétaire de la fonera si ce n'est pas toi, au pire la justice ...
Et une fonera trop sollicitée chauffe, la bande passante de FAI n'est pas infinie, voici de bonnes raisons pour rester raisonnable.

Attention, ouvrir un tunnel SSH ne revient pas à fabriquer un proxy ou un ouvrir un tunnel VPN, c'est trompeur mais nous restons ici un niveau au dessous.
Il ne s'agit ici que de récupérer (remapper ?) sur un port local de sa machine un accès vers une IP et un port prédéfinis sur le(s) réseau(x) accessible(s) à la fonera .

Concrètement :

http://localhost:8181 (sur mon lieu de vacances ...) peut pointer au travers du tunnel SSH sur http://192.168.10.1 port 80 à mon domicile habituel. (dans le cas la console HTTP de la Fonera)

Bon, c'est parti ...

Pré-requis

- une fonera avec son accès SSH ouvert sur le port ethernet RJ45 ( la méthode est décrite partout sur les FON-sites du web ..)
- le modem, routeur, ou la "box" doit être configuré pour accepter/rediriger les connexions entrantes internet sur le port 22 de la-dite fonera ..
- la machine distante qui servira à se connecter par internet à la fonera distante n'aura besoin que du logiciel ( gratuit ) PuTTY

En résumé, il faut être capable de se connecter à distance en SSH à sa fonera, et rien de plus, ce que sait faire tout fonero bricoleur fréquentant les forums. ;-)


Du côté de la fonera :
Il n'y à aucun script à déployer, aucun package à installer. Il faut remplir les conditions du pré-requis, et s'assurer que la fonera accède à toutes les machines et/ou éléments réseau sur lesquels il faudra accéder depuis l'extérieur.

Pour le PC tout se joue dans la config de la session SSH sous PuTTY:
sur une session existante et fonctionnelle vers ta fonera tu vas pouvoir indiquer quels ports locaux de ton PC clients vont permettre d'accéder aux IP et ports désignés sur ta fonera.

Exemple concret (de ma config) :
la fonera est en IP : 169.254.255.1 et le modem ( simple modem pour du PPPoE, non routeur donc pas de DHCP) est sur 169.254.254.1 avec le masque de sous-réseau qui va bien...

-je prends le port 8282 de mon PC client pour le rediriger vers le port 80 de 169.254.255.1 ( la page de config HTTP de la fonera)
-je prends le port 8181 de mon PC client pour le rediriger vers le port 8080 de 169.254.254.1 ( la page de config HTTP du modem par exemple)



Copie d'écran :
conf_putty_ssh.jpg



Pour modifier les ports dans la session PuTTY, aller dans Connection/SSH/Tunnel, préciser pour "Source port" le port local à utiliser sur le PC client, et pour "Destination" l'adresse IP et le port qui doivent être contacté sur le lan distant ( format IP:port )


Bon ben voilà, c'est fait !


Il ne reste plus qu'à se connecter à la fonera en SSH de manière classique (pour ouvrir le tunnel), puis lancer ton navigateur favori et aller sur http://localhost:8181 pour accéder à la page de config HTTP de ton modem, et http://localhost:8282 pour accéder à ta Fonera en HTTP ...




Dernières remarques :

Il y a sûrement des limites et restrictions à l'utilisation de cette méthode. Aucune résolution DNS ne se fait par le biais du tunnel tu es donc limité à l'adresse IP indiquée dans la redirection.
Si une page présente un lien vers une autre adresse IP, tu ne pourras sûrement pas y accéder.
Dans mon cas précis, ma fonera n'est ni derrière un routeur, ni derrière une box, mais le principe est exactement le même ( avec un routeur ou une box il faudrait ouvrir le port 22 vers la fonera).
L'excellent Jojop a fait la manip au travers de sa box sans aucun problème. Ne pas se laisser perturber par le fait que les IP soient en 169.254.xx.yy pour cet exemple !

Cette méthode devrait fonctionner aussi pour les linksys sous OpenWRT.

Source intéressante qui m'a servi à mettre en place la connexion : ici

Il reste beaucoup à faire, à chacun d'adapter selon ses besoins.

Un grand merci à Jojop, fonero de son état, cobaye et utilisateur occasionnel de FON_BASTIDE