cClaude.rocks ☕ Le blog

L'informatique et les nouvelles technologies

Menu

Garder un ordinateur sĂ©curisĂ©, c’est prendre du temps pour vĂ©rifier qu’il n’y a pas de faille de sĂ©curitĂ©. Ce travail demande une grande expertise et n’est jamais fini, car de nouvelles failles potentielles sont rĂ©guliĂšrement dĂ©tectĂ©es.

L’expertise nĂ©cessaire demande une Ă©nergie considĂ©rable, qu’il n’est pas possible d’avoir seul. Il est donc nĂ©cessaire de s’appuyer sur des outils qui ont cette expertise. Pour cette tĂąche, il est prĂ©fĂ©rable de s’appuyer sur des communautĂ©s et des outils mis rĂ©guliĂšrement Ă  jour.

Dans le cas du protocole ssh, je vous propose d’utiliser ssh-audit.

L’objectif de ssh-audit est de tester vos serveurs ssh et de vous indiquer les Ă©lĂ©ments de configuration qui posent problĂšme en suivant les diffĂ©rents CVE (Common Vulnerabilities and Exposures en anglais, dĂ©signe une liste publique de failles de sĂ©curitĂ© informatique).

Installation

Attention, la version de ssh-audit présente dans le dépÎt de Debian est ancienne et pas vraiment à jour par rapport aux différentes failles de sécurité spécifique du protocole ssh. Cependant cette version est déjà un bon outil pour commencer à améliorer votre configuration.

ssh-audit mĂȘme s’il peut sembler compliquĂ© est assez simple Ă  utiliser. Il vous indiquera en rouge ce qui ne va pas.

Si vous souhaitez utiliser la derniĂšre version de ssh-audit, je vous propose de rĂ©cupĂ©rer directement le code source sur github en python. En rĂ©alitĂ© vous pouvez mĂȘme vous contenter du fichier ssh-audit.py.

Si vous avez un dossier ~/bin pour ce type de binaire, vous pouvez simplement faire :

wget https://raw.githubusercontent.com/jtesta/ssh-audit/master/ssh-audit.py -O ~/bin/ssh-audit.py && chmod -v +x ~/bin/ssh-audit.py

Ensuite si le dossier ~/bin est dans votre PATH, vous pouvez directement utiliser ssh-audit comme suit :

ssh-audit.py 127.0.0.1

Optionnellement vous pouvez mettre en place un alias dans votre fichier ~/.bashrc :

alias ssh-audit='python3 ~/bin/ssh-audit.py'

Et ensuite la syntaxe suivante sera utilisable :

ssh-audit 127.0.0.1

Audit d’un serveur ssh

Pour auditer un serveur, c’est trùs simple, il suffit d’utiliser la syntaxe suivante :

ssh-audit 192.168.1.90

Notez que vous pouvez auditer le serveur de votre propre machine :

ssh-audit 127.0.0.1

D’autres options sont disponibles, l’aide est disponible :

ssh-audit --help

Audit d’un client ssh

Pour auditer les clients ssh, il faut que vous dĂ©marriez un serveur ssh spĂ©cifique Ă  l’aide de ssh-audit

ssh-audit --client-audit

Cela dĂ©marrera un serveur ssh fictif sur le port 2222 de la machine. L’option -p permet de changer de port et l’option -t de modifier le timeout.

Ensuite, rien de plus simple connectez-vous sur ce serveur.

Par exemple pour tester le client ssh de la machine oĂč vous venez de dĂ©marrer la commande d’audit, depuis un nouveau terminal, utilisez :

ssh 127.0.0.1 -p 2222

SĂ©curisation de votre serveur ssh

Pour une base Ubuntu 20.04 LTS Server, voici ce qui est préconisé.

Ces commandes doivent ĂȘtre exĂ©cutĂ©es en tant qu’administrateur du systĂšme (rooƧ).

# Régénérer les clés RSA et les clés ED25519
rm /etc/ssh/ssh_host_*
ssh-keygen -t rsa -b 4096 -f /etc/ssh/ssh_host_rsa_key -N ""
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ""

# Suppression du module Diffie-Hellman
awk '$5 >= 3071' /etc/ssh/moduli > /etc/ssh/moduli.safe
mv /etc/ssh/moduli.safe /etc/ssh/moduli

# Activer les clés RSA et ED25519 keys à partir du fichier /etc/ssh/sshd_config
sed -i 's/^\#HostKey \/etc\/ssh\/ssh_host_\(rsa\|ed25519\)_key$/HostKey \/etc\/ssh\/ssh_host_\1_key/g' /etc/ssh/sshd_config

# Restreindre les algorithmes pris en charge pour l’échange de clĂ©s, le chiffrement et MAC (algorithme de protection d’intĂ©gritĂ©)
echo -e "\n# Restrict key exchange, cipher, and MAC algorithms, as per sshaudit.com\n# hardening guide.\nKexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha256\nCiphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr\nMACs hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,umac-128-etm@openssh.com\nHostKeyAlgorithms 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" > /etc/ssh/sshd_config.d/ssh-audit_hardening.conf

# Redémarrer le serveur OpenSSH
service ssh restart

SĂ©curisation de votre client ssh

Voici les préconisations pour Ubuntu 20.04 LTS Client et Linux Mint 20 Client :

Ces commandes doivent ĂȘtre exĂ©cutĂ©es par l’utilisateur local pour durcir la configuration du client ssh :

mkdir -p -m 0700 ~/.ssh; echo -e "Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr\nKexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha256\nMACs hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,umac-128-etm@openssh.com\nHostKeyAlgorithms 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-256-cert-v01@openssh.com,rsa-sha2-512,rsa-sha2-512-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com\n" >> ~/.ssh/config

En résumé :

La configuration du serveur se fait en tant qu’administrateur de la machine en modifiant le fichier /etc/ssh/sshd_config. Notez qu’il est possible et souhaitable d’utiliser des fragments en crĂ©ant un fichier dans le dossier /etc/ssh/sshd_config.d/, cela permet de ne pas toucher Ă  la configuration de base. Plus haut, nous avons utilisĂ© le fichier /etc/ssh/sshd_config.d/ssh-audit_hardening.conf.

La configuration du client se fait avec le compte de l’utilisateur local à partir du fichier : ~/.ssh/config.

**Attention: ** Modifier la configuration d’un serveur revient souvent Ă  invalider les clefs SSH autorisĂ©es (pour cause de changement de clĂ© de hachage servant Ă  identifier les machines). Vous serez amenĂ© Ă  nettoyer votre fichier ~/.ssh/authorized_keys.

Références

኿


â„č 2006 - 2021 | 🕾 Retour Ă  l'accueil du domaine | 🏡 Retour Ă  l'accueil du blog