Accès distant à une config modem via SSH et Firefox

Configurer son modem ADSL est une chose facile… un petit coup de Firefox, et c’est fait… ;-)

Mais à distance ?
Vous devez modifier la configuration du modem ADSL (ou d’un autre équipement local) d’un ami et vous n’avez pas la possibilité de passer chez lui…



Evidemment, vous pouvez guider cet ami par téléphone. Parfois cela suffit.
Mais pour des choses un peu plus difficiles (ouvrir des ports, etc) ça devient pénible par téléphone.

J’ai donc besoin d’accéder avec Firefox (ou Opéra ou Konqueror) à son modem qui n’est accessible que sur son Lan (adresse locale du genre 192.168.0.1).
Je ne vais pas ici me lancer dans du X-Window sous SSH, ça me semble un peu lourd… et puis ce n’est pas toujours évident si vous n’étes, par exemple, pas chez vous et que vous êtes obligés d’utiliser un PC non Linux :-(

La situation ici :

  • je suis en Linux, mais ce n’est pas fondamental.
  • cet ami est en Linux avec un serveur SSH qui tourne et qui est accessible depuis Internet (le port forwarding est déjà configuré dans le modem pour SSH)
  • évidemment, son modem fonctionne. La configuration ADSL est correcte, sinon je ne peux pas espérer me connecter chez lui ;-)

SSH est ici la seule porte entrante ouverte. Je dois donc passer par une session SSH.

Je me base sur la page, très claire et très bien faite, Firefox encapsulé par SSH, de Laurent RICHARD

Ce genre de configuration peut en fait servir à d’autre chose, comme contourner un firewall ou un filtrage d’URL quand vous n’êtes pas chez vous ;-)

Je suppose que vous connaissez déjà SSH et son utilisation.

A propos, la page de Wikipedia anglaise sur SSH donne pas mal d’exemples du genre de ce que nous allons faire ici ;-)

On va donc ouvrir une session SSH en spécifiant que ce tunnel SSH doit lui-même contenir un autre flux.
ssh -D 4545 monami.homelinux.net Que fait cette commande ?

  • - elle ouvre une session SSH (sur le port 22) entre votre PC et le serveur “monami.homelinux.net
  • - elle ouvre sur VOTRE machine le port 4545 et tout ce que vous allez envoyer sur ce port, passera dans le tunnel SSH et resortira du côté distant sur le port 4545

Le Man Page de SSH dit ceci au sujet du paramètre ” -D 4545 ”

-D [bind_address:]port

Specifies a local “dynamic” application-level port forwarding.
This works by allocating a socket to listen to port on the local side, optionally bound to the specified bind_address.
Whenever a connection is made to this port, the connection is forwarded over the secure channel, and the application protocol is then used to determine where to connect to from the remote machine.
Currently the SOCKS4 and SOCKS5 protocols are supported, and ssh will act as a SOCKS server. Only root can forward privileged ports. Dynamic port forwardings can also be specified in the configuration file.

Remarque :

  • Vous pouvez changer le numéro de port.
  • Dans mon cas, mon accès est facilité car cette connaissance à un accès via Dyndns
  • Si ce n’est pas le cas, demandez lui son adresse IP sur Internet (pas celle de son PC sur le Lan) et remplacer le nom du host par son IP

Vous devrez éventuellement accepter la clé, et ensuite introduire votre mot de passe.

Vous avez bien évidemment un logon SSH sur ce serveur ;-)

Si votre userid actuel n’est pas le même que celui que vous devez utiliser pour vous connecter, voici la commande complète :

ssh -D 4545 userid@monami.homelinux.net  -p 22

(22 est le port utilisé par la session SSH, et le 4545 celui par le quel vous voulez faire passer vos données)

Il reste à configurer Firefox pour qu’il passe par ce tunnel SSH.

Lancer Firefox, et aller dans les préférences (menu Edit sous Linux, menu Outils sous Windows).

Dans “Avancé” allez dans l’onglet Réseau et cliquer sur Paramètres.

Configurez Firefox pour passer par le serveur SOCKS.
Ce serveur pour Firefox, se trouve sur votre PC (127.0.0.1) sur le port 4545.

Firefox va donc transmettre toutes ses requètes sur le port 4545 de votre PC et la session SSH va transmettre tout cela, encrypté, dans le tunnel ouvert sur le port 4545.

Votre demande d’accès Web “sortira” en fait sur le PC distant (celui de votre ami) sur le port 4545, vers… la page Web que vous voulez ! (et oui ! On peut en contourner des choses quand on a une session SSH ouverte)

Dans mon cas, l’intéret est plus basique !

Comme mes demandes Firefox sortent sur le PC de cette connaissance à 50 (ou 5000) Km de chez moi, j’ai accès à des addresses IP qui ne sont pas accessibles sur Internet.

Je peux ainsi accéder à son modem qui est en http://192.168.0.1 et modifier la configuration de son modem. (attention quand même… si vous coupez la connexion ADSL… plus de SSH évidemment).

Voilà, c’est ce que je voulais ;-)

Si vous voulez essayer d’autres choses avec des tunnels SSH, cette 2ème page de Laurent RICHARD vous explique comment faire passer Jabber à travers une session SSH:-)

ssh -L 1234:localhost:4242 -R 4242:jabber.org:5222 votreserveurdistant.org

Pour les explications, allez voir sa page web. Comme ça, si vous avez envie de surfer au boulot… euh… non, je n’ai rien dit ! ;-)

4 Responses to “Accès distant à une config modem via SSH et Firefox”

  1. Berbeex Says:

    Super cool tes infos sur ssh et firefox….
    Bernard Culbuttux

  2. Didier Says:

    Merci merci :-)

    Ca me prend pas mal de temps de faire tous ces essais…
    Alors autant que ça serve à d’autres personnes :-)

  3. azriek Says:

    Merci pour l’info :) j’utilisais déjà les options -L et -R pour une prise en main à distance d’une session rdp dédiée derrière un ssh, mais je découvre l’option -D. Cela me servira assurément.

  4. Didier Says:

    ah oui… ça peut servir ;-) en effet.
    Content que ce billet te soit utile.

    (ps: pas mal ton billet anti-trailer RIAA)

    Bon WE ;-)