Linux – Tunnel SSH pour accéder à votre réseau local depuis n’importe où !

Si comme moi vous êtes quelqu’un qui aime éviter les problèmes et donc bloque l’accès à sa box depuis le WAN (internet), peut-être qu’un jour vous en aurez besoin. Si on veut éviter de retourner chez sois, on peut ruser et utiliser un tunnel SSH pour atteindre des pages web locales, comme si on était à la maison.

Tunnel SSH, les prérequis

Déjà, avoir accès à au moins un machine chez sois depuis l’extérieur. Pour l’exemple je vais prendre mon cas, j’ai accès en SSH depuis le WAN à mon NAS, sur un port NATé spécifique. Le NAS tourne sur un OpenMediaVault, ni plus ni moins d’un Debian.

Ensuite, si vous êtes sur un PC sous Linux, pas de soucis pour l’utilisation de SSH, si vous êtes sous un Windows, si c’est un Windows 10 vous pouvez utiliser la console Ubuntu disponible pour l’OS, ou passer par Putty. Pour ma part j’ai opté pour l’Ubuntu intégré à Windows 10, mon Putty ne voulant pas fonctionner en mode Tunnel (peut-être un bug).

Les commandes pour mettre ça en place

Premièrement, se connecter en SSH normalement sur votre machine distante pour préparer le tunnel:

ssh [email protected] ou ssh [email protected] -p 6000 (si votre port SSH par défaut n’est pas le 22, précisez-le avec l’argument -p)

Allez ensuite vérifier dans la conf ssh:

nano /etc/ssh/sshd_config

que la ligne AllowTcpForwarding est bien à yes. Ceci va permettre le routage des requêtes TCP, sans ça le tunnel fonctionnera techniquement mais vous ne serez pas en mesure de l’utiliser.

Ensuite, lancez la commande suivante pour démarrer le tunneling

ssh -D 8181 -C -N [email protected] -p 6000

-D : Mode dynamique, le port de destination s’adaptera. Pour une page web il utilisera le 80, pour une page avec un port particulier par exemple le 8080, lorsque vous préciserez le port il changera également en destination du tunnel.

8181: port local, celui que vous allez utiliser pour emprunter le tunnel

-C:  compression des données

-N: n’exécute pas les commandes distantes, utile pour simplement router des ports

[email protected]: root est votre utilisateur SSH qui a les droits nécessaires pour se connecter, @domaine.net ou @votreIP est votre destination

-p 6000: précise un port particulier pour le SSH, dans mon cas le 6000, si vous n’en utilisez pas par défaut c’est le 22, vous n’avez pas besoin de préciser cet argument

Entre ensuite votre mot de passe pour établir la connexion.

Ca y est, le tunnel est prêt !

Atteindre des URL locales avec son navigateur

On va maintenant paramétrer le navigateur pour utiliser le tunnel et lui faire croire qu’on est à la maison. Rendez-vous dans les paramètres proxy de votre navigateur, cochez la configuration manuelle et entrez l’Hôte SOCKS avec votre domaine ou votre IP de destination, et le port que vous avez utilisé en entrée du tunnel.

Normalement, vous pouvez atteindre depuis votre navigateur votre passerelle (routeur).

 

Voilà, vous pouvez désormais travailler sur votre réseau à distance, depuis n’importe où !

Je l’utilise personnellement pour paramétrer Syncthing et faire le NAT sur ma box quand j’en mets un en place pour de la famille.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *