Sécuriser les accès SSH avec clés, bastion et restrictions avancées

Publié le 11 septembre 2025

Administration
Linux
Sécurité

L’accès SSH est l’une des principales portes d’entrée d’un serveur Linux. Mal configuré, il peut devenir une cible privilégiée pour les attaques par force brute ou par exploitation de failles.
Dans cet article, nous allons voir comment sécuriser vos connexions SSH à l’aide de clés asymétriques, d’un serveur bastion et de restrictions avancées.

Plan de l’article

  • Pourquoi bannir l’authentification par mot de passe
  • Génération et gestion des clés SSH
  • Configuration sécurisée de sshd_config
  • Mise en place d’un serveur bastion SSH
  • Restrictions avancées : Match, ForceCommand, ChrootDirectory
  • Journalisation et monitoring des connexions
  • Bonnes pratiques et ressources

Bannir l’authentification par mot de passe

L’authentification par mot de passe est vulnérable aux attaques par dictionnaire ou brute force.
La première étape consiste à désactiver les mots de passe au profit des clés SSH :

Dans /etc/ssh/sshd_config :

PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes

Puis redémarrer le service :

systemctl restart sshd

Génération et gestion des clés SSH

Sur le poste client :

ssh-keygen -t ed25519 -C "admin@exemple.com"
  • ed25519 : algorithme moderne, rapide et sécurisé.
  • La clé publique est copiée sur le serveur dans ~/.ssh/authorized_keys via :
ssh-copy-id user@serveur

✅ Bonnes pratiques : protéger la clé privée par un mot de passe et utiliser un agent SSH (ssh-agent) pour éviter de le retaper.


Configuration sécurisée de SSHD

Exemples de directives à renforcer dans /etc/ssh/sshd_config :

PermitEmptyPasswords no
AllowTcpForwarding no
X11Forwarding no
ClientAliveInterval 300
ClientAliveCountMax 2
MaxAuthTries 3

Mise en place d’un serveur bastion

Le serveur bastion agit comme point d’entrée unique :

  • Les administrateurs se connectent d’abord au bastion.
  • Le bastion contrôle les accès et relaie vers les serveurs internes.
  • Il permet de centraliser les audits et les journaux.

Avantages :

  • Réduction de la surface d’attaque.
  • Tracabilité renforcée.
  • Possibilité d’imposer une MFA (ex. Duo, Google Authenticator).

Restrictions avancées avec Match et ForceCommand

Dans /etc/ssh/sshd_config, il est possible de restreindre les accès selon l’utilisateur, l’adresse IP ou le groupe.

Exemple : restreindre un utilisateur à une seule commande :

Match User sauvegarde
    ForceCommand /usr/local/bin/backup.sh
    AllowTcpForwarding no
    X11Forwarding no

Exemple : limiter un groupe à un sous-réseau :

Match Group devs Address 192.168.10.0/24
    PermitTTY yes

ChrootDirectory pour isoler les utilisateurs

SSH permet d’enfermer un utilisateur dans un répertoire (chroot) afin de limiter sa visibilité sur le système.

Exemple minimal :

Match User sftpuser
    ChrootDirectory /srv/sftp
    ForceCommand internal-sftp
    AllowTcpForwarding no

Journalisation et monitoring

Surveiller les tentatives de connexion dans :

/var/log/auth.log

Mettre en place :

  • Fail2ban : bannir automatiquement les IP suspectes.
  • Auditd : journaliser les actions des utilisateurs.
  • Centralisation : exporter les logs vers un SIEM (ELK, Loki, Splunk).

Bonnes pratiques

  • Interdire root en SSH, préférer sudo.
  • Restreindre l’accès par IP via firewall (nftables, iptables, pf).
  • Déployer un bastion pour tout accès administratif.
  • Forcer l’usage de clés fortes (RSA ≥ 4096, Ed25519 recommandé).
  • Mettre en place une authentification à deux facteurs (MFA).
  • Auditer régulièrement les accès et supprimer les clés obsolètes.

Ressources

  • man sshd_config
  • OpenSSH Hardening Guide (Mozilla)
  • Documentation sur Fail2ban et Auditd

Conclusion

La sécurisation de l’accès SSH ne se limite pas à la mise en place de clés.
Elle repose sur une combinaison de bonnes pratiques, d’outils adaptés (bastion, fail2ban, audit) et d’une politique stricte de gestion des utilisateurs.
En suivant ces recommandations, vous réduisez considérablement les risques d’intrusion et garantissez une administration sereine de vos serveurs Linux.

Besoin d'aide sur ce sujet ?

Notre équipe d'experts est là pour vous accompagner dans vos projets.

Contactez-nous

Articles similaires qui pourraient vous intéresser