Kévin Subileau

Espace personnel

win10-client-serveur-ssh-natif

Windows 10 - Activer et utiliser le client/serveur SSH natif

Il aura fallu être très patient, mais ça y est, Microsoft a enfin intégré un support natif de SSH sur Windows ! Depuis la mise à jour de septembre 2017 de Windows 10 (Fall Creators Update), il est en effet possible d'installer un client et un serveur OpenSSH natif. Plus besoin de Putty, Cygwin ou autres verrues diverses et variées, ni même de passer par le sous-système Windows pour Linux introduit en 2016. C'est bel et bien du 100% natif Windows !

Une nouveauté qui contribuera à améliorer l'interopérabilité entre Windows et Linux, en permettant de se connecter à un serveur Linux depuis Windows et inversement, et qui pourrait simplifier l'usage de certains outils de gestion de configuration comme Ansible.

Mais pour le moment, cela reste toutefois une implémentation en bêta et Microsoft déconseille de l'utiliser sur un environnement de production critique.

Installation du client et/ou du serveur SSH

Ce support de SSH est fourni en tant que fonctionnalité facultative. Il faut donc passer par une rapide installation pour pouvoir en bénéficier.

Avant toute chose, vérifiez bien que vous possédez la dernière version de Windows 10 en date (1709 minimum), et que toutes les mises à jour disponibles sont installées.

Ensuite, rendez-vous dans les Paramètres Windows via le bouton « roue dentée » du menu Démarrer ou le raccourci clavier Win+I, puis cliquez sur Applications. A l'écran suivant, cliquez ensuite sur Gérer les fonctionnalités facultatives, puis sur le bouton Ajouter une fonctionnalité.
win10-ssh-applis-fonctionnalites

Dans la liste des fonctionnalités optionnelles disponibles, cliquez sur OpenSSH Client puis sur Installer. Si vous souhaitez également pouvoir vous connecter à distance par SSH à votre poste, vous pouvez installer le serveur SSH en sélectionnant OpenSSH Server.
win10-ssh-install

Patientez quelques instants le temps de l'installation puis redémarrez le poste. Lire la suite →

firefox-incognito-private

Firefox - Faire passer les requêtes DNS par le tunnel SSH

Mise à jour du 28/02/2015 : Je viens de m'apercevoir que les dernières versions de Firefox (>= 34 je crois) proposent désormais une case à cocher "DNS distant" dans l'écran de configuration du proxy. Cette case à cocher agit sur la même variable de configuration que l'astuce ci-dessous, et a donc le même effet. Plus la peine de bidouiller dans about:config ! Mais bon, je laisse quand même l'astuce si vous utilisez une ancienne version ou si vous aimez vous compliquer la vie :D

Vous pensiez avoir mis votre navigation Web bien à l'abri des regards indiscrets grâce à votre proxy SOCKS réalisé par exemple via un tunnel SSH ? Détrompez-vous ! En réalité, par défaut, seule une partie de vos communications Web sont protégées par cette méthode. L'essentiel des informations nécessaires pour connaitre les sites Web que vous avez visités passent toujours en clair.

C'est le cas notamment des requêtes DNS, qui ne passent pas par le proxy avec la configuration par défaut de Firefox. Le genre de détail qui tue... En effet, à chaque fois que vous visitez un site, un message indiquant son nom est envoyé en clair ! Il suffit d'intercepter ces messages pour avoir un historique assez détaillé de votre navigation.

Heureusement, il est plutôt simple d'y remédier. Sur Firefox, ouvrez une nouvelle fenêtre ou un nouvel onglet et tapez about:config dans la barre d’adresse, comme ci-dessous, puis validez en tapant sur la touche Entrée.

Firefox - Accès à about:config

Vous arrivez alors sur un message d’avertissement vous signalant qu’il peut être dangereux d’apporter des modifications.

Firefox - Avertissement about:config

Prenez note de cet avertissement, puis cliquez sur « Je ferai attention, promis ! ». Dans la nouvelle page qui s’affiche, recherchez la clé network.proxy.socks_remote_dns en utilisant le champ prévu à cet effet.

firefox-about-config-socks-remote-dns

Par défaut cette clé a pour valeur false (désactivé). Pour masquer vos requêtes DNS, faites passer la valeur à true (activé) en double-cliquant sur la ligne ou en cliquant dessus avec le bouton droit de la souris puis sur Inverser. Si la clé n'existe pas, vous pouvez la créer en faisant un clic droit sur une zone blanche de la fenêtre, puis en cliquant sur Nouvelle / Valeur Booléenne.

Vous pouvez ensuite fermer la fenêtre ou l'onglet, les modifications sont immédiatement prises en compte.

Attention, si vous utilisez simultanément Google Chrome, le même problème existe également et il faut lancer le navigateur en précisant le paramètre --proxy-server pour le corriger. Idem pour Internet Explorer, où il n'existe en revanche pas de solution à ma connaissance.

Vos requêtes DNS sont maintenant protégées, mais sachez toutefois que d'autres contenus peuvent continuer à être transmis en clair, notamment les contenus Flash comme les vidéos ou les jeux, et vous ne pourrez pas être sûr à 100% que vous êtes totalement intraçable. Si vous souhaitez vraiment vous assurer autant que possible de masquer toutes les communications de votre PC, alors il est préférable de se tourner vers d'autres solutions, comme le VPN ou le réseau Tor.

Maintenir une connexion SSH inactive ouverte

Avec certains serveurs, il arrive parfois de subir des déconnexions intempestives après une période d'inactivité plus ou moins longue. Vous ouvrez la connexion SSH, vous l'utilisez un peu, vous faites autre chose pendant un certain temps en laissant votre connexion ouverte, puis, quand vous revenez, vous constatez que la connexion SSH s'est interrompue.

En fait, le plus souvent, il ne s'agit pas d'un problème au niveau du serveur SSH, ni même du réseau de votre fournisseur d'accès Internet. Dans la plupart des cas, la connexion inactive est interrompue par les routeurs NAT (comme votre box Internet par exemple).

En effet, SSH utilise une connexion TCP, et les routeurs NAT conservent une table des connexions TCP actives, et suppriment de cette table les connexions inactives depuis trop longtemps pour faire un peu de ménage, ce qui provoque la déconnexion.

Pour contourner ce problème, il faut faire en sorte que des données (quelques octets suffisent) transitent de manière régulière sur la connexion, même lorsque vous ne tapez rien au clavier ou qu'il ne doit rien être affiché. Les routeurs NAT percevront ainsi la connexion comme étant active, et la conserveront dans leurs tables. La bonne nouvelle, c'est que cette solution est très simple à mettre en place, que ce soit sur Windows avec PuTTY ou sur Linux avec le client SSH de base. Lire la suite →