En télétravail comme beaucoup de gens en ce moment, j’ai un accès à mes machines du travail par VPN. Si je veux poser des jours de congés, je dois me connecter à la machine conges.mon-travail.fr qui n’est accessible que depuis l’intranet. De l’extérieur c’est un peu fastidieux de s’y connecter… mais on peut le faire en utilisant Open-SSH !

Alors bien sûr, il y a la solution évidente. Supposons que j’ai accès via le VPN à donut.mon-travail.fr; il me suffit alors de faire :

$ ssh -X donut.mon-travail.fr
> firefox-esr &

Ca marche mais c’est lent. L’autre solution serait de mettre en place une redirection de port dynamique pour supporter SOCKS5. Ceci se fait via l’option -D de ssh :

$ ssh -D 8000 -C -N donut.mon-travail.fr

L’option -C demande une compression des données et -N indique qu’on ne souhaite pas transmettre de commande via ssh. Le port 8000 a été choisi arbitrairement.

Il suffit ensuite de configurer son navigateur local pour qu’il se connecte via SOCKS5. Avec Firefox, il faut aller dans les préférences. Dans l’onglet “Général” il faut aller tout en bas et cliquer sur le bouton “Paramètres…” de Paramètres réseau.

Activation du protocole SOCKS5 avec Firefox

J’ai été surpris de voir que cela a fonctionné du premier coup ! En particulier, je n’ai pas eu à activer l’utilisation du DNS distant. Je m’attendais à ce que ma résolution d’adresse échoue. Mais en fait, non c’était prévisible car OpenVPN fait bien les choses !

$ cat /etc/resolv.conf 
# Generated by NetworkManager
search mon-travail.fr
nameserver 192.168.10.1
nameserver 192.168.10.2
nameserver 192.168.5.254

On remarque que les résolutions d’adresse pour le domaine mon-travail.fr sont en priorité addressées aux serveurs 192.168.10.1 et 192.168.10.2 alors que ma box est sur le réseau 192.168.5.0/24 (les IP ont bien évidemment été changées).

Vérifions que le réseau 192.168.10.0/24 correspond bien à l’interface virtuelle :

$ route -n | grep 192.168.10 | awk '{print $NF}'
tun0
tun0

Et on contrôle bien que ce sont les DNS du boulot qui ont effectué la requête :

$ dig conges.mon-travail.fr | grep SERVER
;; SERVER: 192.168.10.1

Au final passer par le protocole SOCKS5 a sensiblement accéléré les choses !