%

OpenSSH : Durcir la configuration du serveur SSH

Article publié, le et modifié le
4 minutes de lecture

Cet article contient 668 mots.
Source brute de l'article :
Commit version : bfa7829

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.

Attention

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
Info

Ensuite, il faut veillez aux choses ci-dessous :

HostKey

Attention

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
Astuce

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

Info

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 .

Attention

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

Attention

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


Documentation

Manpages

Autres