Aller au contenu

Prendre en main à distance des serveurs Linux via openSSH

1. Objectif du cours

Acquérir les compétences essentielles pour administrer des serveurs Linux à distance avec SSH : établir des connexions sécurisées, utiliser l’authentification par clé, transférer des fichiers et appliquer des mesures de sécurité adaptées.

2. Notions et définitions essentielles

  • SSH (Secure Shell) : protocole chiffrant les communications entre client et serveur pour l’administration à distance.
  • Authentification par mot de passe vs par clé : la clé SSH repose sur une paire cryptographique (publique/privée), offrant une sécurité supérieure.
  • SCP / SFTP : protocoles utilisant SSH pour transférer des fichiers de manière sécurisée.
  • fail2ban : outil qui surveille les tentatives d’accès et bloque les adresses IP malveillantes.
  • ~/.ssh/config : fichier de configuration utilisateur permettant, entre autres, de définir des alias de connexion.

3. Fonctionnement et principes

SSH établit un canal chiffré entre deux machines sur un réseau non sécurisé, empêchant l’écoute et le détournement de session. L’authentification par clé repose sur une paire de clés : la clé privée reste sur la machine cliente et ne doit jamais être partagée ; la clé publique est déposée sur le serveur pour autoriser l’accès. Le transfert de fichiers s’appuie sur les mêmes mécanismes de chiffrement qu’un shell SSH. La sécurisation de l’accès combine la réduction de la surface d’attaque (changer le port par défaut), la limitation des tentatives d’accès (fail2ban), la gestion stricte des permissions et la mise à jour régulière des logiciels SSH.

4. Commandes et manipulations

Regroupées par procédures (commandes extraites du document) :

  • Connexion et fermeture de session
  • ssh utilisateur@adresse_du_serveur : établir une connexion SSH.
  • exit : fermer proprement la session SSH.

  • Gestion d’un espace distant (navigation et création)

  • mkdir nom_du_répertoire : créer un répertoire sur le serveur distant.
  • cd / ls : se déplacer et lister le contenu (commandes de navigation standard).

  • Authentification par clé

  • ssh-keygen : générer une paire de clés (publique/privée) sur la machine locale.
  • ssh-copy-id utilisateur@adresse_du_serveur : transférer la clé publique vers le serveur (ajoute la clé dans ~/.ssh/authorized_keys).

  • Transfert de fichiers

  • scp fichier_local utilisateur@serveur:~/répertoire_destination/ : copier un fichier local vers le serveur via SSH (ex. transfert de update.zip vers le répertoire créé).

  • Configuration utile

  • modifier ~/.ssh/config : définir des alias et options (simplification des connexions, changement de port, désactivation de l’authentification par mot de passe).
    (Le cours recommande ces commandes sans fournir de scripts longs.)

5. Sécurité et bonnes pratiques

  • Préférer l’authentification par clé plutôt que par mot de passe ; protéger la clé privée par une passphrase.
  • Configurer le serveur pour n’accepter que l’authentification par clé et désactiver l’authentification par mot de passe lorsque possible.
  • Changer le port SSH par défaut (éviter le port 22) pour réduire les scans/attaques automatisés.
  • Mettre à jour régulièrement le logiciel SSH pour corriger les vulnérabilités.
  • Installer et configurer fail2ban pour bloquer automatiquement les adresses IP après plusieurs tentatives infructueuses.
  • Limiter et contrôler les permissions des fichiers et répertoires sur le serveur (principe du moindre privilège).
  • Ne pas réutiliser les mêmes mots de passe entre services ; garder la clé privée dans un emplacement sûr.

6. Points essentiels à retenir pour le TSSR

  • SSH chiffre toutes les communications et remplace des protocoles non sécurisés comme Telnet.
  • L’authentification par clé (paire publique/privée) est recommandée pour une sécurité renforcée.
  • ssh-keygen puis ssh-copy-id sont les étapes de base pour mettre en place l’authentification par clé.
  • Utiliser ~/.ssh/config permet de simplifier et standardiser les connexions fréquentes.
  • SCP/SFTP permettent de transférer des fichiers de manière sécurisée en s’appuyant sur SSH.
  • Changer le port SSH par défaut réduit l’exposition aux attaques automatisées.
  • fail2ban aide à protéger contre les attaques par force brute en bloquant des IP après échecs répétés.
  • Toujours maintenir SSH à jour et appliquer une gestion stricte des permissions sur le serveur.
  • Vérifier systématiquement qu’un transfert ou une opération distante a réussi (voir section Vérifications pratiques).
  • Dans un contexte professionnel, la maîtrise de ces pratiques est indispensable pour la disponibilité et la sécurité des infrastructures.

7. Tableau récapitulatif

Élément Avantage Risque si négligé
Authentification par mot de passe Simplicité d’usage Vulnérable au brute force / réutilisation
Authentification par clé Sécurité renforcée (publique/privée) Clé privée compromise si mal protégée
Port SSH par défaut (22) Compatibilité Ciblé par attaques automatisées
fail2ban Blocage automatique d’IP malveillantes Nécessite supervision pour éviter blocages légitimes
SCP vs SFTP Transfert sécurisé basé SSH Mauvaise gestion des permissions des fichiers transférés

8. Vérifications pratiques

  • Confirmer la réussite d’un transfert de fichier : se reconnecter au serveur et lister le contenu du répertoire cible pour vérifier la présence du fichier transféré (ex. update.zip).
  • Vérifier qu’une connexion SSH s’établit sans demander de mot de passe lorsque l’authentification par clé est configurée (connexion sans prompt de mot de passe).
  • Contrôler les logs et les règles de fail2ban pour s’assurer que les adresses IP malveillantes sont bloquées (vérification des actions de protection). (Sont ici mentionnés uniquement les contrôles concrets abordés dans le cours.)

9. Flashcards Anki

Quelle commande permet de se connecter à un serveur via SSH ? :: ssh utilisateur@adresse_du_serveur Quelle commande permet de fermer proprement une session SSH ? :: exit Quelle commande génère une paire de clés SSH sur la machine locale ? :: ssh-keygen Quelle commande transfère la clé publique vers un serveur distant ? :: ssh-copy-id utilisateur@adresse_du_serveur Quel outil utilise-t-on pour copier un fichier local vers un serveur via SSH ? :: scp Quel est l’avantage principal de l’authentification par clé SSH ? :: Utilise une paire de clés publique/privée offrant une sécurité accrue Quel est le rôle principal de fail2ban ? :: Bloquer automatiquement les adresses IP après plusieurs tentatives de connexion échouées Pourquoi changer le port SSH par défaut ? :: Pour réduire le risque d’attaques automatisées ciblant le port 22 Quel fichier permet de définir des alias et options pour les connexions SSH utilisateur ? :: ~/.ssh/config Quelle vérification suivre après un scp pour s’assurer du succès ? :: Reconnecter au serveur et lister le contenu du répertoire cible pour voir le fichier transféré