Description
Le propos de cet article est d’aider à comprendre ce qu’il faut configurer pour obtenir une configuration sécurisée de votre client SSH.
Cela nécessite que votre version du client OpenSSH soit supérieure à la version 6.5 !
Configuration
Côté client, le plus simple est de modifier votre fichier de
configuration, dans votre home personnel, ~/.ssh/config
…
Cet article n’aborde que la partie concernant le client ; pour la partie serveur, merci de lire mon autre article : OpenSSH : Durcir la configuration du serveur SSH
Chiffrements
Les algorithmes de Chiffrement à autoriser :
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com
Néanmoins, sachez que dans certains cas, tels que Filezilla, Putty,
il vous faudra certainement ajouter l’un des trois paramètres suivants :
aes256-ctr,aes192-ctr,aes128-ctr
Si le serveur sur lequel vous cherchez à vous connecter est dropbear,
il vous sera nécessaire d’ajouter : aes256-ctr
- à définir dans une
configuration personnalisée…
À vérifier au cas par cas… regardez donc le log d’authentification sur votre serveur !
Échange de clés
Les algorithmes des clés d’échange à privilègier sont :
KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org
Algorithmes de la clé d’Hôte
Les recommandations actuelles pour les algorithmes des clés d’hôte sont :
HostKeyAlgorithms ssh-ed25519,ssh-ed25519-cert-v01@openssh.com,sk-ssh-ed25519@openssh.com,sk-ssh-ed25519-cert-v01@openssh.com,rsa-sha2-256,rsa-sha2-512,rsa-sha2-256-cert-v01@openssh.com,rsa-sha2-512-cert-v01@openssh.com
Perso, je n’utilise QUE : HostKeyAlgorithms ssh-ed25519-cert-v01@openssh.com,ssh-ed25519
ssh-rsa
- à définir dans une
configuration personnalisée…Message Authentication Codes
Les algorithmes des Code d’Authentification de Messages à définir sont :
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com
Perso, je n’utilise plus QUE : MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-512
hmac-sha2-256
- à définir dans une
configuration personnalisée…TL;DR
Voici un exemple de configuration sécurisée minimal :
Fichier : ~/.ssh/config
|
|
Selon le manpage officiel, les configurations personnalisées à certains
hôtes doivent être écrites avant la configuration générale Host *
!
Utilisation
Les créations suivantes sont à faire côté client, bien sûr !
Mettre-à-jour vos clés RSA
ssh-keygen -o -p -f id_rsa -a 64
- L’option
-f
spécifie le fichier de clé privée à utiliser. - L’option
-o
est celle qui utilise le durcissement PKBDF. - et pour finir, l’option
-a
définit le nombre de tours “de moulinettes” que va effectuer la génération.
16
.
Vous pouvez lui demander 1000
tours, néanmoins pour les paranoïaques
la valeur de 64
semble préférable ET suffisante.Nouvelles clés
Nouvelle clé ED25519
-o
; en effet,
la génération des clés Ed25519 utilise toujours ce format par défaut !ssh-keygen -t ed25519 -f fichier_id -a nb_tours
Tel que, par exemple :
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -a 64
Nouvelle clé RSA + PKBDF
ssh-keygen -t rsa -b nb_bits -f fichier_id -o -a nb_tours
Tel que, pour l’exemple :
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -o -a 64
Astuces
Si vous avez paramétré l’option LoginGraceTime
sur le serveur, pensez à
augmenter sa valeur, sinon vous aurez le droit à ne pas
pouvoir vous connecter, sans aucun message d’erreur dans le log
d’authentification.
En effet, selon le nombre de tours que vous avez paramétrés pour la génération de votre clé, ou sa mise-à-jour, le déchiffrement et la réponse du serveur prendra plus de temps, peut-être plus que le temps d’ouverture, de la fenêtre de connexion, autorisé.
Je mets à disposition mon script shell de génération de clés, basé sur lesdites informations…
Documentations
Manpages
Autres
- Quand Martin Kleppman a écrit sur le propos d’améliorer la sécurité de ses clés privées SSH…
- Pat Regan nous fait un petit rappel historique de comment utiliser PKCS#8 pour en aboutir à la conclusion d’utiliser PKBDF…
- ou comment Ted Unangst nous explique comment monter à niveau ses vieilles clés en utilisant PKBDF…
- Voici une très bonne lecture, sur le propos de sécuriser son serveur SSH, en utilisant les bons algorithmes, et autres méthodes d’authentification… (osbolète)
- Voire le référentiel de sécurité de l’ANSSI à-propos des recommandations de sécurité autour de SSH. (cf : https://www.ssi.gouv.fr/administration/guide/recommandations-pour-un-usage-securise-dopenssh/ )