Cours sur la Sécurité de la Connexion SSH
Introduction :
SSH (Secure Shell) est un protocole réseau cryptographique utilisé pour sécuriser les connexions
entre un client et un serveur. Il est couramment utilisé pour l'administration à distance des systèmes.
Ce cours couvrira les deux méthodes d'authentification principales pour SSH : par mot de passe et par
clé.
1. Introduction à SSH :
• Qu'est-ce que SSH ?
o Un protocole pour des connexions sécurisées
o Utilisé principalement pour l'administration à distance, les transferts de fichiers
sécurisés, et les tunnels sécurisés
• Pourquoi SSH est-il important ?
o Sécurité accrue grâce au chiffrement
o Authentification sécurisée
o Protection contre les attaques de type "man-in-the-middle"
2. Authentification par Mot de Passe :
2.1. Configuration de SSH pour l'Authentification par Mot de Passe
• Étapes de configuration :
1. Installer SSH sur le serveur :
sudo apt-get install openssh-server
2. Configurer le fichier sshd_config :
▪ Localiser le fichier de configuration : /etc/ssh/sshd_config
▪ Activer l'authentification par mot de passe en s'assurant que la ligne suivante
est présente et non commentée :
PasswordAuthentication yes
• Redémarrer le service SSH :
sudo systemctl restart ssh
2.2. Connexion au Serveur via SSH
• Commande pour se connecter :
ssh username@server_ip
• Précautions de sécurité :
o Utiliser des mots de passe forts et complexes
o Mettre en œuvre une politique de rotation des mots de passe
o Restreindre les tentatives de connexion avec fail2ban
3. Authentification par Clé SSH :
3.1. Génération d'une Clé SSH
• Générer une paire de clés SSH :
ssh-keygen -t rsa -b 4096 -C "
[email protected]"
o Cette commande crée une paire de clés RSA de 4096 bits.
o Spécifiez un nom pour le fichier de clé (par défaut ~/.ssh/id_rsa).
3.2. Copie de la Clé Publique sur le Serveur
• Utiliser ssh-copy-id pour copier la clé publique :
ssh-copy-id username@server_ip
• Manuellement :
o Copier le contenu de ~/.ssh/id_rsa.pub dans ~/.ssh/authorized_keys sur le serveur.
3.3. Configuration de SSH pour l'Authentification par Clé
• Modifier le fichier sshd_config pour désactiver l'authentification par mot de passe :
PasswordAuthentication no
PubkeyAuthentication yes
• Redémarrer le service SSH :
sudo systemctl restart ssh
3.4. Connexion au Serveur via Clé SSH
• Commande pour se connecter :
ssh username@server_ip
4. Sécurisation Supplémentaire de SSH :
• Changer le port par défaut :
o Modifier le port par défaut (22) dans sshd_config :
Port 2222
o Redémarrer le service SSH :
sudo systemctl restart ssh
• Désactiver l'accès root :
o Dans sshd_config, désactiver l'accès root :
PermitRootLogin no
• Configurer un Pare-feu :
o Utiliser ufw pour restreindre l'accès au port SSH :
sudo ufw allow 2222/tcp
sudo ufw enable
• Limiter les Tentatives de Connexion avec fail2ban :
o Installer fail2ban :
sudo apt-get install fail2ban
o Configurer fail2ban pour surveiller les tentatives de connexion SSH.
5. Conclusion :
La sécurisation de SSH est cruciale pour protéger vos systèmes contre les accès non autorisés. En
utilisant des méthodes d'authentification sécurisées et en configurant correctement votre serveur,
vous pouvez réduire considérablement les risques de sécurité.
Exercices Pratiques :
1. Configuration de l'authentification par mot de passe :
o Configurez un serveur SSH pour utiliser l'authentification par mot de passe.
o Changez le mot de passe utilisateur et testez la connexion.
2. Configuration de l'authentification par clé :
o Générer une paire de clés SSH et configurez un serveur SSH pour utiliser
l'authentification par clé.
o Désactivez l'authentification par mot de passe et testez la connexion avec la clé.
3. Sécurisation supplémentaire :
o Changez le port par défaut de SSH et configurez un pare-feu pour autoriser les
connexions sur ce nouveau port.
o Installez et configurez fail2ban pour limiter les tentatives de connexion SSH.
En suivant ce cours et en réalisant les exercices pratiques, vous devriez être capable de sécuriser
efficacement les connexions SSH sur vos serveurs.