accueilSécuritéDirectives et Recommandations
 

Sécuriser SSH

Nous constatons de nombreuses intrusions utilisant le protocole SSH. Certaines mesures relativement simples à mettre en œuvre auraient pu sinon totalement bloquer les attaques du moins en atténuer les dommages.


Mesures pour améliorer la sécurité de SSH

  • Interdire sur les serveurs SSH les connexions « root ». Elles sont rarement nécessaires, un «  sudo  » permettant d’effectuer toutes les opérations exigeant les privilèges de « root » et de plus de tracer et d’imputer les actions. Sur un serveur OpenSSH, il suffit de mettre dans le fichier de configuration /etc/ssh/sshd_config la directive «  PermitRootLogin no  ». Éventuellement dans certains contextes après prise en compte des risques, pour effectuer des sauvegardes par exemple, il est acceptable d’utiliser «  PermitRootLogin forced-commands-only  ».
  • Remplacer l’authentification par login/mot de passe par une authentification par clé publique/clé privée (l’interception d’une clé privée exige de prendre le contrôle du poste de travail de l’utilisateur alors qu’il y a de nombreuses façons de voler, extorquer, deviner, casser un mot de passe). On commencera par les personnes en charge de l’administration des machines. Utiliser des clés RSA qui font au minimum 2048 bits (généralement la valeur par défaut aujourd’hui). Protéger les clés privées avec des mots de passe suffisamment longs et robustes.
  • Maintenir à jour les systèmes. En effet nous constatons que dans nombre d’attaques il y a eu connexion sur un compte d’un utilisateur sans privilège particulier puis élévation de privilèges en exploitant une faille non corrigée du système.
  • Filtrer au niveau du pare-feu les adresses IP autorisées à se connecter en SSH ou/et configurer le serveur SSH afin de n’accepter qu’une liste limitée d’utilisateurs à partir de machines définies (directive AllowUsers pour un serveur OpenSSH). C’est une mesure simple à mettre en œuvre mais très efficace. Évidemment ce n’est pas applicable pour une machine sur laquelle se connectent des utilisateurs depuis le monde entier mais trop souvent des machines sont totalement ouvertes alors que seul un nombre limité de personnes a besoin d’y accéder à partir de machines connues.
  • Surveiller les journaux de connexions SSH afin de détecter d’éventuelles attaques. Il peut être utilise d’installer des outils comme fail2ban qui analysent les journaux et bloquent automatiquement les IP qui font trop de tentatives infructueuses de connexion.
  • Sensibiliser les utilisateurs et leur demander de rapporter les évènements anormaux.
  • Apprendre aux utilisateurs à tenir compte des messages d’avertissements. Si la clé publique du serveur a changé c’est généralement le signe que l’on se connecte sur un autre serveur que celui qui était souhaité. Cela peut être celui d’un pirate.
  • Limiter le nombre de machines directement accessibles en SSH depuis l’extérieur. Pour cela on peut mettre en place une passerelle SSH qui va relayer les connexions depuis l’extérieur à destination des machines du réseau interne.
  • Interdire les versions antérieures à 2 du protocole. Elles ne sont pas sûres.


ARESU
Direction des Systèmes d'Information du CNRS

358 rue P.-G. de Gennes
31676 LABEGE Cedex

Bâtiment 1,
1 Place Aristide Briand
92195 MEUDON Cedex



 

 

Direction des Systèmes d'Information

Pôle ARESU

Accueil Imprimer Plan du site Credits