Description
Par défaut, même sous OpenBSD, la configuration de SSH n’est pas des plus sécurisées.
Les algorithmes NISTP - susceptibles d’être une porte dérobée de la NSA ; mais attention, ce n’est qu’une rumeur -, voire du SHA1, sont encore utilisés.
Configuration
- Le fichier de configuration :
/etc/ssh/sshd_config
Bien sûr, hormis le fait de :
- n’utiliser QUE la Version 2 du protocole,
- NE PAS permettre au compte root de se connecter,
- désactiver l’authentification par mot de passe,
- n’utiliser QUE l’authentification par clés.
Recréation des clés d’Hôte
$ cd /etc/ssh
# rm ssh_host_*
# ssh-keygen -t ed25519 -f ssh_host_ed25519_key -N ""
# ssh-keygen -t rsa -b 4096 -f ssh_host_rsa_key -N "" -o -a 64
Ne mettez pas de passphrases lors de la génération, autrement le serveur ne sera pas capable de les lire…
De toute facon, le fichier /var/log/auth
vous le dira !
Ensuite, il faut veillez aux choses ci-dessous :
HostKey
Commentez les déclarations HostKey
pour ne garder que celles
relatives au chiffrement RSA et ED25519.
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
Chiffrements
Les chiffrements à autoriser sont :
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com
Échange de clés
Les algorithmes d’échanges de clé à privilégier sont :
KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org
Algorithmes de clé Hôte
Les algorithmes de clé 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
Message Authentication Codes
Les algorithmes des Codes d’Authentification de Messages sont :
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com
Le fichier Moduli
Le fichier moduli est un fichier contenant les nombres premiers et les générateurs à utiliser par le serveur SSH dans la méthode d’échange des clés de groupe DH .
Depuis 2017, le bogue #2793 explique que dans certains contextes le bon fonctionnement échoue, suite aux recommandations ci-dessous.
Si vous n’arrivez plus à vous connecter, envisagez de revenir en arrière sur cette modification !
Moduli / Linux
Il est recommandé de le recréer de telle manière :
awk '$5 >= 3071' /etc/ssh/moduli > /etc/ssh/moduli.safe
mv /etc/ssh/moduli.safe /etc/ssh/moduli
Moduli / OpenBSD
S’il est possible de le créer ainsi :
ssh-keygen -G /etc/ssh/moduli -b 3072
attention, la génération sera longue et dépend très fortement de la puissance machine de votre serveur.
Néanmoins, sachez que depuis quelques années/versions, le fichier est déjà
généré et se trouve être : /etc/moduli
Pour en savoir plus, lisez le manpage moduli(5)
Sandbox
Cette option est obsolète depuis la version 7.5.
Veillez à ne plus l’utiliser !
TL;DR
Voici un exemple minimaliste du fichier de configuration sécurisée côté serveur :
Port 22
ListenAddress 192.168.xxx.yyy
ListenAddress fd00:abcd:efg0::1
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com
KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org
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
MACs hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,umac-128-etm@openssh.com
PermitRootLogin no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
Dépannage
Bad key types
Si vous avez l’erreur suivante :
/etc/ssh/sshd_config line 26: Bad key types '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'
Enlevez les deux déclarations suivantes sk-ssh-ed25519@openssh.com,sk-ssh-ed25519-cert-v01@openssh.com
et testez
à nouveau, puis si c’est OK, relancez
le service.
LoginGraceTime
Du fait de générer des clés RSA + PKBDF, ou ed25519, si vous avez paramétré
l’option LoginGraceTime
, pour la diminuer au strict minimum, pensez à
augmenter sa valeur, sinon vous aurez le droit à ne pas pouvoir vous
connecter, sans aucun message d’erreur dans le log d’authentification.
Test
- Vérifier la configuration :
# sshd -t
ssh-audit
Pour tester la configuration de votre serveur, il existe un outil nommé
ssh-audit
. Installez-le et exécutez à l’encontre de votre serveur SSH :
$ ssh-audit adresse-ip-serveur-ssh
- Tout message en rouge est à corriger URGEMMENT.
- Tout message en vert signifie que l’analyse en question est bonne.
sshaudit internet
Il est possible de tester la valeur de la configuration de votre serveur sur le site sshaudit : https://www.sshaudit.com