Sécuriser l'Accès SSH sur Serveur Linux : Clé Ed25519, Port Dédié et Protection Fail2ban

Sécuriser l'accès SSH sur un serveur Linux est la première ligne de défense contre les attaques par force brute. Adoptez la clé Ed25519, modifiez le port et déployez Fail2ban efficacement.

💡 Ce guide pratique vous est utile ? Partagez-le avec vos collègues ou vos proches confrontés au même blocage technique en un clic.

Dès qu'un nouveau serveur virtuel (VPS) ou une machine dédiée est allumé avec une adresse IP publique, il ne s'écoule pas dix minutes avant que des robots malveillants automatisés ne commencent à frapper à la porte. En consultant vos journaux d'accès (/var/log/auth.log sur Debian/Ubuntu), vous découvrirez des centaines de tentatives d'authentification par minute essayant les utilisateurs root, admin ou ubuntu avec des listes de mots de passe volés. Laisser la configuration par défaut du démon SSH sur le port 22 avec authentification par mot de passe est une invitation ouverte au piratage.

Étape 1 : Adopter une clé de chiffrement moderne Ed25519

Oubliez les mots de passe traditionnels et les anciennes clés RSA 2048 bits. L'algorithme Ed25519 basé sur les courbes elliptiques offre une vitesse d'exécution fulgurante et un niveau de résistance cryptographique optimal avec une clé très compacte de seulement 68 caractères :

  1. Sur votre terminal local (votre ordinateur portable, pas le serveur), générez la paire de clés :
    ssh-keygen -t ed25519 -C "admin-serveur-prod"
  2. Protégez impérativement la clé avec une phrase de passe secrète (passphrase).
  3. Copiez votre clé publique sur le serveur distant en une seule commande :
    ssh-copy-id -i ~/.ssh/id_ed25519.pub utilisateur@ip_serveur
  4. Ouvrez un nouveau terminal et vérifiez que vous pouvez vous connecter sans taper votre mot de passe utilisateur classique.

Étape 2 : Durcir la configuration du fichier sshd_config

Connectez-vous sur votre serveur pour verrouiller les réglages stricts du service SSH :

  1. Ouvrez le fichier de configuration avec les droits d'administration :
    sudo nano /etc/ssh/sshd_config
  2. Modifiez ou décommentez les directives stratégiques suivantes :
    # Changer le port standard pour eliminer 99% des robots basiques
    Port 22442
    
    # Interdire la connexion directe en tant que super-administrateur
    PermitRootLogin no
    
    # Desactiver totalement l'authentification par mot de passe
    PasswordAuthentication no
    PermitEmptyPasswords no
    
    # N'autoriser que l'authentification par cle cryptographique
    PubkeyAuthentication yes
    
    # Limiter le nombre d'essais infructueux
    MaxAuthTries 3
  3. ⚠️ Règle de sécurité vitale : Avant de redémarrer SSH, ouvrez impérativement votre nouveau port dans votre pare-feu (ex: sudo ufw allow 22442/tcp), sinon vous vous enfermerez dehors !
  4. Testez la conformité de la syntaxe : sudo sshd -t. Si aucun message d'erreur n'apparaît, redémarrez le service :
    sudo systemctl restart ssh
  5. Ne fermez pas votre session actuelle ! Ouvrez un second terminal sur votre PC et tentez une nouvelle connexion : ssh -p 22442 utilisateur@ip_serveur. Une fois la connexion réussie, vous pouvez fermer l'ancienne session en toute sérénité.

Étape 3 : Installer et activer le bouclier Fail2ban

Même avec un mot de passe désactivé, les tentatives d'attaque consomment des ressources processeur. Fail2ban surveille les journaux d'erreurs et bloque automatiquement les adresses IP agressives au niveau du pare-feu iptables/nftables :

  1. Installez le paquet officiel :
    sudo apt update && sudo apt install fail2ban -y
  2. Créez un fichier de configuration locale pour vos réglages personnalisés :
    sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
    sudo nano /etc/fail2ban/jail.local
  3. Repérez la section [sshd] et configurez :
    [sshd]
    enabled = true
    port = 22442
    maxretry = 3
    findtime = 10m
    bantime = 1h
  4. Activez et démarrez le service : sudo systemctl enable --now fail2ban.
  5. Pour voir en direct les adresses IP bannies par votre bouclier :
    sudo fail2ban-client status sshd

🔒 Sécurité renforcée : En combinant une clé Ed25519 avec phrase de passe, l'interdiction de root, un port non standard et Fail2ban, votre serveur Linux devient une forteresse imprenable face aux assauts automatisés du web.

🤝 Transmettre ce conseil technique

Un réglage mal configuré ou une manipulation hasardeuse peut bloquer un appareil ou un compte. Si ces étapes ont résolu votre situation, enregistrez la page ou envoyez le lien à votre équipe.

Questions fréquentes sur la sécurité SSH

Que faire si je me retrouve bloqué hors de mon serveur ?

Tous les hébergeurs professionnels de serveurs dédiés et VPS (comme OVHcloud, Scaleway, Hetzner ou DigitalOcean) fournissent une console de secours d'urgence accessible directement dans votre navigateur web (console VNC ou mode KVM). Vous pouvez vous y connecter pour réparer votre pare-feu ou restaurer le fichier sshd_config.

Changer le port par défaut 22 est-il suffisant pour sécuriser un serveur ?

Non, c'est ce qu'on appelle la sécurité par l'obscurité. Changer de port évite 99% du bruit de fond généré par les robots aveugles, mais un pirate ciblé réalisera un scan complet de vos ports ouverts en quelques secondes avec Nmap. La véritable barrière infranchissable réside dans la désactivation totale de l'authentification par mot de passe.

Puis-je bannir définitivement les pirates plutôt que seulement 1 heure avec Fail2ban ?

Oui. Vous pouvez régler bantime = -1 dans la configuration de Fail2ban pour un bannissement permanent. Cependant, soyez vigilant : si vous vous trompez trois fois de mot de passe depuis l'adresse IP de votre domicile, vous seriez également banni définitivement sans intervention externe.

Commentaires

Posts les plus consultés de ce blog

Gestionnaire de Mots de Passe en 2026 : Comparatif Securite et Cloud