Copyright © 2011 Don R. Crawley
Copyright © 2011 Eric Gérard
Copyright © Année de relecture Prénom Nom du relecteur
Article paru dans le n°182 de la Gazette Linux de janvier 2011.
Cet article est publié selon les termes de la Open Publication License. La Linux Gazette n'est ni produite, ni sponsorisée, ni avalisée par notre hébergeur principal, SSC, Inc.
Table des matières
Lisez le fichier /var/log/secure
d'un serveur Linux/UNIX connecté à
Internet et vous allez immédiatement comprendre la nécessité de sécuriser votre compte
root
. Les pirates utilisent constamment
« root
» ou d'autres noms
d'utilisateurs, pour essayer de se connecter à votre serveur en utilisant SSH
ou d'autres protocoles. Si vous utilisez un mot de passe
simple, il ne faudra pas longtemps avant que votre serveur ne soit compromis par une attaque de
mot de passe. Que pouvez-vous y faire?
La meilleure pratique est d'interdire la connexion SSH
sur root
, éliminant ainsi une grande part de risque.
Le problème est, qu'en agissant ainsi, vous privez les administrateurs système d'une grande souplesse et compliquez l'usage d'outils comme WinSCP utilisés pour la copie de fichiers entre votre ordinateur fixe ou portable Windows et votre serveur Linux/UNIX.
Une solution simple consiste à utiliser une paire de clés privée/publique pour l'authentification. La clé publique est enregistrée sur le serveur Linux/UNIX et la clé privée enregistrée sur votre PC Windows. Quand vous lancez la connexion à votre serveur Linux/UNIX depuis votre PC Windows, l'authentification est réalisée avec la paire de clés au lieu du mot de passe. L'authentification par mot de passe ayant été désactivée pour le compte root
, toute tentative de login par mot de passe échouera pour vous identifier.
Voici la façon de procéder:
Commencez par télécharger l'installeur Windows de PuTTY depuis http://the.earth.li/~sgtatham/putty/latest/x86/putty-0.60-installer.exe. Lancez l'installation sur votre PC local Windows.
Ensuite, vous devez générer la paire de clés. L'installeur Windows PuTTY, que vous avez lancé, a installé l'application appelée PuTTYgen que vous pouvez utiliser pour générer la paire de clés. L'installeur a vraisemblablement placé PuTTYgen (ainsi que les autres applications PuTTY) dans >> >> .
Quand vous lancez PuTTYgen la première fois, vous devez générer
une nouvelle paire de clés. Dans le bas de la fenêtre PuTTYgen,
vous avez le choix entre trois paramètres : SSH-1 (RSA)
,
SSH-2 RSA
, et SSH-2 DSA
. SSH-2
RSA
est présélectionné avec une longueur de clé de 1024 bits par défaut. Plus
la clé est longue et meilleure est la sécurité, mais cela demande plus de puissance de
calcul. Une longueur de clé de 1024 bits est un compromis acceptable actuellement (fin
2010), mais ne sera plus acceptable dans le futur du fait des l'augmentation des puissances de calcul.
Cliquez sur le bouton PuTTYgen génère la clé.)
pour lancer le calcul de vos clés publique et privée. (Vous devez bouger votre pointeur de souris au-dessus de la zone blanche en haut de la fenêtre pour augmenter le caractère aléatoire de la clé. Bougez votre pointeur de souris en cercle au-dessus de la zone blanche jusqu'à ce que la barre d'avancement atteigne la bordure droite pendant queVous devez ensuite sauvegarder votre clé privée sur votre PC fixe ou portable et copier la clé publique sur votre serveur Linux/UNIX.
Entrez et confirmez un mot de passe pour protéger votre clé privée dans les deux champs réservés à cet effet dans l'application PuTTYgen.
Cliquez sur le bouton
et choisissez un emplacement sur votre disque dur local pour sauver votre clé privée. (Protégez votre clé privée en l'enregistrant dans un endroit sûr!). Personnellemnt, je sauve ma clé publique dans un fichier texte pour en faciliter une future utilisation. Copiez le charabia de la clé publique (en haut de la fenêtre
PuTTYgen) et collez le dans le fichier
/root/.ssh/authorized_keys
situé sur votre serveur. (pour ce faire,
vous devez avoir préalablement créé le répertoire .ssh
ainsi que probablement le fichier authorized_keys
.
Notez que le répertoire .ssh
est un répertoire caché
car son nom débute par un point). Si vous avez sauvé votre clé publique dans un fichier
texte comme décrit précédemment, il vous suffit simplement de copier le contenu de ce
fichier dans le fichier /root/.ssh/authorized_keys
.
Sur votre serveur Linux/UNIX, éditez le fichier /etc/ssh/sshd_config
pour vous assurer que l'authentification RSA
et
les authentifications à l'aide de clé publique sont toutes deux autorisées en modifiant
trois lignes dans le fichier sshd_config
. Suivant le système installé
sur le serveur, vous devrez changer « no » en « yes » ou bien
dé-commenter les lignes pour autoriser l'authentication. Assurez vous également que le
chemin du fichier authorized_keys
est défini comme suit
« %h/.ssh/authorized_keys
» et dé-commentez la ligne.
Ces lignes se situent approximativement ligne 43 sur une distribution RedHat et ligne 29 sur
Debian.) Lorque vous avez terminé, ces lignes doivent ressembler à ceci:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
Pour valider ces changements, vous devez redémarrer SSHD
:
Si vous tentez maintenant de vous connecter en tant que root
avec le mot de passe de root
la connexion doit échouer:
Vous devez ensuite configurer PuTTY pour qu'il utilise la paire de clés publique/privée pour effectuer l'authentification. Lancez PuTTY, puis dans l'arbre situé à gauche, développez la clé SSH et sélectionnez Auth. Dans la partie droite de la fenêtre, naviguez jusqu'à l'endroit où vous avez enregistré votre clé privée ou bien simplement l'insérer dans le champ Private key file for authentication:.
Ensuite, dans le menu de gauche, sélectionnez Session (en haut de la liste). Dans la fenêtre de droite, entrez l'adresse IP ou le nom de domaine de votre serveur Linux/UNIX puis cliquez sur le bouton marqué .
Lorsque PuTTY se connecte au serveur, entrez « root
» comme nom d'utilisateur.
Le programme va alors demander le mot de passe que vous avez renseigné lors de la création de la clé privée.
Entrez ce mot de passe et vous devriez vous retrouver connecté au serveur en tant que root
.
L'intérêt de cette méthode est qu'il est pratiquement impossible pour un pirate de se
connecter à votre serveur sur le compte root
en attaquant le mot de passe.
Pour qu'un pirate puisse se connecter en tant que root
, il devra disposer de votre clé privée et connaitre le mot de passe associé.
L'adaptation française de ce document a été réalisée dans le cadre du Projet de traduction de la Gazette Linux.
Vous pourrez lire d'autres articles traduits et en apprendre plus sur ce projet en visitant notre site : http://www.traduc.org/Gazette_Linux.
Si vous souhaitez apporter votre contribution, n'hésitez pas à nous rejoindre, nous serons heureux de vous accueillir.