Il faut bien sûr adapter ces recommandations à la version d’OpenSSH (ou autre serveur SSH) utilisée, puisque les algorithmes supportés varient d’une version à une autre. Ainsi, j’ai dû adapter la configuration pour la version de OpenSSH présente dans Debian Wheezy, de la manière suivante :
KexAlgorithms diffie-hellman-group-exchange-sha256
HostKey /etc/ssh/ssh_host_rsa_key
Ciphers aes256-ctr,aes192-ctr,aes128-ctr
MACs hmac-sha2-512,hmac-sha2-256,hmac-ripemd160
au lieu de :
KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256
HostKey /etc/ssh/ssh_host_ed25519_key HostKey /etc/ssh/ssh_host_rsa_key
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-ripemd160-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,hmac-ripemd160,umac-128@openssh.com
En effet, les algorithmes en gras ci-dessus sont inconnus de cette vieille version de OpenSSH. Je modifierai à nouveau la configuration lorsque je changerai de version ; les informations nécessaires sont dans la page de manuel du fichier sshd_config
.
Et si cette sécurité accrue ne suffisait pas à vous convaincre, il y a un bonus : après avoir effectué les changements, j’ai constaté la complète disparition des dizaines de tentatives quotidiennes de connexions frauduleuses sur mon serveur SSH ! Fail2ban va s’ennuyer :-D
La raison à cela semble être que les robots qui attaquent les serveurs n’ont pas été mis à jour depuis quelques temps et qu’ils utilisent des algorithmes dépassés. J’ai ainsi dans mes logs de très nombreuses occurrences des 3 lignes suivantes :
sshd: fatal: Unable to negotiate a key exchange method [preauth]
sshd: fatal: no matching cipher found: client aes128-cbc,blowfish-cbc,3des-cbc server aes256-ctr,aes192-ctr,aes128-ctr [preauth]
sshd: fatal: no matching mac found: client hmac-md5,hmac-sha1 server hmac-sha2-512,hmac-sha2-256,hmac-ripemd160 [preauth]
Petite note finale : pour plus de sûreté, il faut guetter les mises à jour de la page sur GitHub, car cette page est construite collaborativement et se perfectionne au fur et à mesure que l’auteur synthétise les connaissances acquises.