Durcir SSH : la checklist complète

Durcir SSH : la checklist complète

Secure Shell (SSH) est le principal vecteur d'accès distant aux serveurs Linux/Unix. Un durcissement méthodique permet de réduire la surface d'exposition, d'assurer la conformité et de renforcer la défense en profondeur. Cette checklist détaille les étapes d

1. Audit initial du service SSH

1.1 Inventaire des points d'accès

  • Identifier chaque serveur exposé sur le port 22 ou tout autre port alternatif.
  • Recenser les comptes locaux et les clés publiques autorisées dans ~/.ssh/authorized_keys.
  • Vérifier la version du daemon avec ssh -V pour s'assurer qu'elle est supportée par le fournisseur.

1.2 Analyse de la configuration actuelle

  1. Extraire le fichier de configuration principal : cat /etc/ssh/sshd_config.
  2. Comparer chaque directive avec les recommandations de votre référentiel de conformité (CIS, DISA, ISO 27001).
  3. Documenter les écarts dans un tableau de suivi.

2. Renforcement de la configuration du daemon

2.1 Limiter les protocoles et les algorithmes cryptographiques

DirectiveValeur recommandée
Protocol2 (déprécié le protocole 1)
Ciphersaes256-gcm@openssh.com,aes256-ctr
KexAlgorithmscurve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256
MACshmac-sha2-512,hmac-sha2-256

Ces paramètres garantissent l'utilisation d'algorithmes de chiffrement robustes et éliminent les suites obsolètes.

2.2 Appliquer le principe du moindre privilège

  • Interdire l'accès root direct : PermitRootLogin no.
  • Restreindre les utilisateurs autorisés via AllowUsers ou AllowGroups.
  • Désactiver l'authentification par mot de passe si possible : PasswordAuthentication no.

2.3 Gestion du temps d’inactivité

Configurer les délais de déconnexion pour limiter les sessions inutilisées :

ClientAliveInterval 300
ClientAliveCountMax 0

3. Gestion des accès et des clés publiques

3.1 Centralisation des autorisations

Utiliser AuthorizedKeysFile pour pointer vers un répertoire partagé (ex. /etc/ssh/authorized_keys/%u) afin de simplifier la révocation.

3.2 Rotation et révocation des clés

  1. Auditer régulièrement la longueur des clés (ssh-keygen -l -f id_rsa.pub) ; privilégier RSA ≥ 3072 bits ou Ed25519.
  2. Mettre en place un processus de retrait automatisé lorsqu'un collaborateur quitte l'organisation.

4. Authentification renforcée

4.1 Utilisation de l’authentification à deux facteurs (2FA)

Intégrer Google Authenticator ou pam_oath via le module PAM :

# /etc/pam.d/sshd
auth required pam_google_authenticator.so nullok

4.2 Sécurisation du module PAM

  • Activer pam_faillock.so pour limiter les tentatives d’accès.
  • Configurer deny=5 et unlock_time=900 (15 minutes).

5. Supervision, journalisation et détection

5.1 Activation du logging détaillé

LogLevel VERBOSE

Enregistre les tentatives de connexion, les clés utilisées et les changements de configuration.

5.2 Intégration à un SIEM

  • Faire remonter les logs vers /var/log/auth.log ou /var/log/secure vers votre plateforme de supervision.
  • Définir des alertes sur les événements suivants : multiples échecs d’authentification, connexion depuis une adresse IP non autorisée, utilisation d’une clé expirée.

5.3 Analyse de l’intégrité du binaire

Comparer le hachage du binaire /usr/sbin/sshd avec la version officielle via sha256sum et stocker le résultat dans une base d’intégrité.

>_ Ressource pratique

Vous voulez appliquer tout ça sur un vrai serveur, sans y passer des semaines ? Le Cyber Starter Pack rassemble les checklists, les commandes prêtes à l'emploi et la méthode pas à pas.

⚡ Cyber Starter Pack — 9,99 $

6. Sauvegarde et récupération

6.1 Sauvegarde de la configuration

Automatiser la copie du fichier sshd_config et des répertoires de clés dans un dépôt versionné (ex. Git) avec chiffrement des secrets.

6.2 Plan de remise en état

  1. Conserver une image du système de fichiers contenant /etc/ssh dans votre solution de sauvegarde.
  2. Tester régulièrement la restauration sur un environnement de pré-production.

7. Conformité et bonnes pratiques

« La défense en profondeur repose sur la combinaison de contrôles techniques, de procédures d’audit et de sensibilisation du personnel ». – Guide de référence CIS

  • Documenter chaque modification dans un journal d’audit.
  • Effectuer un audit trimestriel conforme aux exigences de votre secteur (ex. PCI‑DSS, RGPD).
  • Former les administrateurs aux bonnes pratiques de gestion des clés et de détection d’anomalies.

8. Checklist récapitulative

  1. Inventorier les points d’accès SSH et les comptes associés.
  2. Vérifier la version du daemon et appliquer les mises à jour de sécurité.
  3. Configurer Protocol 2, désactiver les algorithmes faibles et appliquer les ciphers recommandés.
  4. Interdire PermitRootLogin et restreindre les utilisateurs via AllowUsers/AllowGroups.
  5. Désactiver PasswordAuthentication et privilégier les clés publiques de longueur suffisante.
  6. Mettre en place 2FA et limiter les tentatives via PAM.
  7. Activer le logging VERBOSE et intégrer les logs dans le SIEM.
  8. Planifier des sauvegardes chiffrées de la configuration et des clés.
  9. Réaliser un audit de conformité tous les trois mois.

Conclusion

Le durcissement de SSH repose sur une série d’actions complémentaires : audit rigoureux, configuration sécurisée, gestion stricte des accès, supervision continue et procédures de sauvegarde. En appliquant cette checklist, vous renforcez la protection de vos serveurs, assurez la conformité aux exigences légales et limitez les vecteurs de compromission.

Pour aller plus loin

Structurez votre apprentissage avec le guide pas à pas Cyber Starter Pack, qui propose des exercices pratiques et des ressources complémentaires pour maîtriser le durcissement des services critiques.

>_ À propos de l'auteur

Trésor — KadoHackLabs

Cybersécurité · IA locale · Automatisation

Je documente la cybersécurité offensive, l'IA locale et l'automatisation. Tous mes outils et guides sont open-source sur GitHub — et pour passer vraiment à la pratique, j'ai condensé la méthode dans un pack d'apprentissage pas à pas.


Ressources open-source

  • RedTeaming_CheatSheet
    Aide-mémoire de pentest : toutes les commandes essentielles.
  • AdversarySim-AI
    Assistant IA purple team avec Sliver C2 et LLM locaux (Ollama).
  • aisec
    Suite d'outils de sécurité pilotés par IA, experts par classe, local-first.
  • guide-wireshark
    Guide complet en français sur l'analyse de paquets, de l'OSI aux CTF.

Profil complet : github.com/kadohack12  ·  Boutique : whop.com/KadoHackLabs

Commentaires

Posts les plus consultés de ce blog

Configurer un pare-feu avec nftables : guide pas à pas

Vers l'AGI en 2027-2028 ? Où en est vraiment l'intelligence artificielle générale mi-2026

Guide complet de Nmap pour le pentest : commandes essentielles et détection de vulnérabilités