22/12/2024

Apprendre à manier Putty : Les options de connexion

Nous avons vu dans le module précédent comment initialiser une connexion avec Putty. Il faut savoir que Putty est un outil très utile et qu'il dispose de nombreuses fonctionnalités. Afin d'avoir une vue plus "power user" de l'outil, nous allons explorer quelques une de ces fonctionnalités

Nous allons commencer par explorer les options et fonctionnalités de Putty en ce qui concerne les paramètres de connexion. Bien que Putty gère plusieurs types de protocoles, certaines options leurs sont communes comme l'utilisation d'un proxy, la spécification d'un login… C'est ce que nous allons voir ensemble.

I. Spécification du login de connexion et des variables d'environnement

Putty permet la spécification d'un "username" avant l'initialisation de la connexion. Cela permet de rendre plus rapide l'établissement et le lancement d'une connexion notamment en SSH. Cette option prendra d'ailleurs tout son sens lorsque nous verrons comment enregistrer des sessions et des préférences dans Putty. Pour spécifier un username dans Putty, il faut se rendre dans l'onglet "Connection" puis "Data" :

utilisation-avancee-putty-007
Ajout d'un login de connexion dans PuTTY

On pourra alors remplir le champ "Auto-login username". Ainsi, lors de l'initialisation de la connexion SSH, le champ utilisateur sera déjà saisi :

utilisation-avancee-putty-008
Login de connexion prédéfini via PuTTY

Dans ce même onglet, il est possible de spécifier des variables d'environnement, ces variables seront alors propres à la session SSH lancée. Pour qu'une variable d'environnement puisse être passée au travers le lancement d'une connexion SSH, il faut que celle-ci soit explicitement déclarée dans la configuration du serveur SSH, cela pour un souci de sécurité principalement.

On se rend dans le fichier de configuration SSH sur le serveur (/etc/ssh/sshd_config) pour y trouver la valeur suivante :

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

Ici, on peut voir qu'une variable d'environnement est déjà autorisée à être passée via l'initialisation d'une connexion SSH, il s'agit de la variable d'environnement LANG LC_* qui permet de définir les paramètres régionaux comme l'encodage des caractères. Si l'on souhaite autoriser une autre variable d'environnement, il suffit de le rajouter ici, par exemple une variable d'environnement "Hello" :

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*
AccetEnv Hello

Il faudra alors redémarrer le service SSH pour que cette modification soit prise en compte :

systemctl restart sshd

Dans Putty, on pourra alors spécifier cette variable d'environnement et sa valeur :

utilisation-avancee-putty-009

Une fois que la connexion SSH sera lancée, nous pourrons vérifier que la variable d'environnement est bien présente avec la commande "env" :

root@debian:~# env
XDG_SESSION_ID=30
TERM=xterm
SHELL=/bin/bash
SSH_CLIENT=192.168.218.37 56978 22
Hello=test_hello
SSH_TTY=/dev/pts/1
USER=root
MAIL=/var/mail/root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/root
LANG=fr_FR.UTF-8
SHLVL=1
HOME=/root
LOGNAME=root
SSH_CONNECTION=192.168.218.37 56978 192.168.218.42 22
XDG_RUNTIME_DIR=/run/user/0
_=/usr/bin/env

Ici, on peut donc voir la variable d'environnement "Hello" est paramétrée à "hello_test". Le paramétrage de notre variable d'environnement au travers l'initialisation de notre connexion SSH a donc fonctionné. Une autre manière de voir que la variable d'environnement est bien définie est tout simplement l'affichage de son contenu :

root@debian:~# echo $Hello
test_hello

 II. Renseignement du proxy dans Putty

Lorsque vous devez passer par un proxy pour sortir de votre réseau, il est possible de renseigner les informations de ce proxy directement dans Putty, il faut pour cela aller dans Putty dans les onglets "Connection", puis "Proxy" :

utilisation-avancee-putty-010

La connexion SSH lancée par Putty passera donc directement par le proxy spécifié avec les informations saisis dans "Proxy hostname", "Port", "Username" et "Password".

III. Enregistrement des session et des préférences dans Putty

De nombreuses options sont disponibles dans Putty, qu'il s'agisse d'options propre à la mise en format (Police, Couleur) ou propre au protocole de connexion utilisé, il peut être fastidieux d'avoir à configurer Putty à chaque fois qu'on l'ouvre pour qu'il corresponde à nos besoins.

Ainsi, Putty intègre une fonctionnalité d'enregistrement de session, permettant de retrouver une configuration rapidement dès l'ouverture de Putty.

Pour l'utiliser, commençons par ouvrir Putty. Nous pouvons alors configurer Putty comme bon nous semble. Nous allons par exemple aller modifier la police, qui par défaut est "Courrier New". On se rend pour cela dans "Window" puis "Appearance" :

utilisation-avancee-putty-001

En cliquant sur "Change", nous pourrons choisir l'une des polices proposées, sa taille et sa mise en forme :

utilisation-avancee-putty-002
Changement de la police dans PuTTY

Je choisi par exemple la police "Lucida Console" en taille "11" puis je valide en cliquant sur "OK". Bien, à présent, et pour éviter d'avoir à modifier cette configuration à chaque fois que l'on démarre Putty, nous allons enregistrer ces paramètres, nous retournons pour cela dans l'onglet "Session", dans le champ "Saved Session", je vais donner un nom à ma session :

utilisation-avancee-putty-003
Enregistrement d'un profil de connexion dans PuTTY

A noter qu'il est également possible de remplacer la session "Default Settings", on peut ensuite cliquer sur "Save" pour que la session se retrouve dans les sessions proposées au démarrage de Putty :

utilisation-avancee-putty-004Dès lors, il sera possible de sélectionner une configuration ou une autre selon nos envies. Dans ce cas précis, nous serons en police "Courrier New" avec la session par défaut "Default Settings" et avec la police "Lucida Console" si l'on sélectionne la session "ma_session001".

Changer et sauvegarder une police, c'est bien sympathique, mais nous pouvons utiliser cela de façon beaucoup plus pratique !

Prenons le cas où je dispose de plusieurs serveurs SSH et que saisir leur IP, leur port à chaque fois que je souhaite initier une connexion me prend du temps. Avec la sauvegarde des sessions dans Putty, il est également possible de sauvegarder ces informations. Nous allons, pour l'exemple et pour vous faire manipuler un peu, créer une seconde session avec les paramétrages spécifiques d'un serveur. On reste pour cela dans l'onglet "Session" dans lequel on va saisir l'IP, le protocole (SSH dans notre cas) et le port (s'il ne s'agit pas du port standard SSH, 22) dans les champs adéquates :

utilisation-avancee-putty-005

Nous allons alors pouvoir créer une seconde session en suivant la même procédure que la première fois, on saisit un nom de session dans le champ "Saved Sessions" puis en clique sur "Save".

Dès lors, il est possible dans Putty de prédéfinir nos serveurs pour y avoir un accès plus rapide :

utilisation-avancee-putty-006

En situation opérationnelle, cette fonctionnalité de sauvegarde peut s'avérer très utile car elle permet un accès rapide aux serveurs pré-enregistrés. Toutes les configurations et paramétrages que nous avons vu et que nous allons voir dans la suite du cours peuvent être sauvegardées ainsi dans PuTTY.

IV. Raccourcis Putty Windows

Dans cette partie du cours, nous allons voir comment créer des raccourcis de connexion vers vos serveurs SSH directement sur le bureau Windows. Cela peut être pratique dans le cas où vous positionnez, sur votre bureau, des raccourcis de connexion rapide qui vous lancerons alors une connexion PuTTY en SSH simplement en double cliquant dessus.

Pour créer des raccourcis sous Windows, rien ne vaut un bon script batch, enfin si, sûrement un Powershell, mais pourquoi se compliquer la vie ! 😉

Nous allons donc créer des scripts .bat qui vont se charger de lancer nos commandes Putty avec les paramètres qui nous intéressent. Nous allons voir quelques paramètres basiques qui peuvent être utilisés dans la plupart des cas.

Le cas le plus basique étant celui dans lequel on cherche à lancer une connexion SSH vers un serveur avec une IP ou un nom prérempli et avec le nom d’utilisateur également.

J’entends d’ici ceux qui réclament également d’y stocker le mot de passe, surtout pas ! Si ce fichier arrive à être lu ou volé par un tiers, voire exécuté par une autre personne que vous, il aura alors un accès libre à votre serveur. Il est en effet fortement déconseillé de stocker des mots de passe dans ce genre de raccourcis. Préférez une saisie manuelle et systématique du mot de passe de la session ou de la passphrase de votre clé.

Tout comme dans les configurations de connexion dans mRemoteNG ou MtPutty par exemple !

Nous allons donc aller sur notre Bureau Windows ou un dossier quelconque pour y faire un clic droit puis un "Nouveau" puis "Document texte". Nous allons ensuite renommer ce fichier, par exemple "Serv01.bat".

Note : Pour plus de sécurité, je vous conseille d’être vigilant avec les scripts que nous créons ici, en effet, ils peuvent contenir des informations sensibles. Plusieurs mesures peuvent être prises pour assurer une meilleure protection de ces informations :
- N’autoriser leur exécution que par un administrateur
- Chiffrer le contenu de ces fichiers via des solutions natives Windows
- Mettre ces fichiers en lecture seule pour qu’ils ne soient plus modifiés une fois créés

Voici ce que l’on peut mettre dans notre fichier batch pour qu’il lance Putty avec directement une connexion SSH sur un serveur précis et avec un nom d’utilisateur précis :

start /D "C:\Program Files\MTPutty\" putty.exe -ssh 172.16.59.84 -l johnny

Ici donc, Putty va être lancé directement en mode connexion SSH sur l’IP 172.16.56.84 avec l’utilisateur “johnny”. Merveilleux n’est-ce pas ?

Par sécurité, il est courant de mettre le serveur SSH sur un autre port que son port standard, le port 22. Dans ce cas, voici l’option à ajouter à notre commande : -P Numero_Port

start /D "C:\Program Files\MTPutty\" putty.exe -ssh 172.16.59.84 -l johnny -P 5248

Une autre petite astuce dont nous pouvons avoir besoin, la gestion des profils.

En effet, nous avons vu que dans Putty, il est possible de gérer des profils qui enregistrent des préférences comme la police, différentes spécificités de configuration, d’apparence, etc. Il est possible, dans nos raccourcis, de spécifier le profil à utiliser via l’option “-load” :

start /D "C:\Program Files\MTPutty\" putty.exe -load ma_session001

Je vous recommande de placer cette option avant toutes les autres.

Allez, une dernière astuce pour la route, celle-ci pourra être très utile, j’en suis sûr.

Il s’agit de la possibilité de lire un fichier qui contient des commandes (bash cette fois) une fois que la connexion SSH a été lancée. On va donc avoir notre script batch qui va lancer Putty, et une fois que la connexion sera lancée et que nous nous serons identifiés sur le serveur distant, les commandes contenues dans notre second fichier seront exécutées.

Je créé donc un fichier "commande.txt" dans lequel je mets "ls -al" (c’est un bon début :p ) et que je positionne dans le même répertoire que Putty (attention, celui-ci peut ne pas être le même que le répertoire où se situe notre script .bat !). Je rajoute ensuite l’option "-m commande.txt" à ma commande dans mon fichier .bat :

start /D "C:\Program Files\MTPutty\" putty.exe -load ma_session001 -m commande.txt

Et voilà ! Quand nous exécuterons notre script .bat, on pourra se loguer et une fois cela fait, la ou les commandes pourrons s’exécuter.

Je pense bien que cela sera utile à bien des sysadmins, mais il est possible de pré-saisir le mot de passe dans le script .bat via l’option "-pw". Je renouvelle à nouveau le fait d’être extrêmement prudent lors de l’ajout de cette option dans votre script, votre mot de passe sera totalement en clair dans un fichier texte.

On peut penser que cela permet d’exécuter un script directement, mais ce n’est pas fait pour aller si loin, cela peut en effet causer des problèmes et être dur à débugger. Si votre but est vraiment d’exécuter un script, je vous conseille de construire et positionner ce script dans le serveur Linux pour ensuite le lancer via notre script .bat. Cela sera beaucoup plus pratique.

Note : À la fin de l’exécution des commandes pré sentes dans notre fichier, la connexion Putty va se fermer automatiquement.

Voilà ! Nous avons fait le tour des principales fonctionnalités dont il est possible de profiter. Vous pourrez maintenant avoir des raccourcis pour établir des connexions vers vos serveurs préférés ! Et n’oubliez pas de sécuriser et protéger les données que ces raccourcis contiennent !

author avatar
Mickael Dorigny Co-founder
Co-fondateur d'IT-Connect.fr. Auditeur/Pentester chez Orange Cyberdéfense.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail