Pour les étudiants en BTS CIEL ou SIO, SSH est un service critique pour l’administration des systèmes.
Cette fiche propose une configuration renforcée conforme aux bonnes pratiques de sécurité et aux attentes d’un audit type Lynis.
Objectifs :
- sécuriser l’accès distant
- limiter les attaques automatisées
- appliquer un hardening réaliste en environnement professionnel

Configuration complète SSH sécurisée
# =========================================================
# INSTALLATION
# =========================================================
apt update && apt install openssh-server -y
# =========================================================
# DEMARRAGE
# =========================================================
systemctl enable ssh
systemctl start ssh
# =========================================================
# CONFIGURATION SSH
# =========================================================
nano /etc/ssh/sshd_config
# =========================================================
# PARAMETRES DE BASE
# =========================================================
Port 2222
Protocol 2
# =========================================================
# AUTHENTIFICATION
# =========================================================
PermitRootLogin no
PasswordAuthentication no
PermitEmptyPasswords no
# Limiter les utilisateurs
AllowUsers user1 user2
# =========================================================
# GESTION DES TENTATIVES
# =========================================================
MaxAuthTries 3
LoginGraceTime 30
# =========================================================
# TIMEOUT SESSION
# =========================================================
ClientAliveInterval 300
ClientAliveCountMax 2
# =========================================================
# CHIFFREMENT (HARDENING)
# =========================================================
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes256-ctr
MACs hmac-sha2-512,hmac-sha2-256
KexAlgorithms curve25519-sha256@libssh.org
# =========================================================
# DESACTIVATION FONCTIONS INUTILES
# =========================================================
X11Forwarding no
AllowTcpForwarding no
AllowAgentForwarding no
PermitTunnel no
# =========================================================
# BANNER DE SECURITE
# =========================================================
Banner /etc/issue.net
# =========================================================
# REDÉMARRAGE
# =========================================================
systemctl restart ssh
# =========================================================
# CREATION BANNER
# =========================================================
nano /etc/issue.net
Accès réservé - toute activité est surveillée et journalisée
# =========================================================
# AUTHENTIFICATION PAR CLE
# =========================================================
# Sur le client
ssh-keygen -t ed25519
ssh-copy-id -p 2222 user1@192.168.1.10
# =========================================================
# PERMISSIONS DES CLES
# =========================================================
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
# =========================================================
# TEST
# =========================================================
ssh user1@192.168.1.10 -p 2222
Explication détaillée
1. Sécurisation de l’accès
- changement du port → réduit les scans automatisés
- désactivation root → empêche les attaques directes
- restriction utilisateurs → limite la surface d’attaque
2. Authentification
- désactivation mot de passe → protection contre brute force
- utilisation de clés SSH → authentification forte
- ED25519 recommandé → plus rapide et sécurisé
3. Protection contre attaques
MaxAuthTries→ limite les tentativesLoginGraceTime→ réduit le temps d’attaque- timeout session → coupe les connexions inactives
4. Hardening cryptographique
Les paramètres suivants suppriment les algorithmes faibles :
Ciphers→ chiffrement fort uniquementMACs→ intégrité des échangesKexAlgorithms→ échange de clés sécurisé
5. Désactivation des fonctionnalités inutiles
Réduction de la surface d’attaque :
- forwarding désactivé
- tunnel interdit
- X11 désactivé
6. Banner de sécurité
Permet :
- conformité réglementaire
- avertissement légal
- traçabilité
7. Vérification des logs
tail -f /var/log/auth.log
Exemple :
Failed password for invalid user admin from 192.168.1.60
Accepted publickey for user1 from 192.168.1.50
8. Complément recommandé
Installer fail2ban pour renforcer la protection et le paramétrer:
apt install fail2ban -y
Bonnes pratiques
- utiliser uniquement des clés SSH
- limiter l’accès par IP (pare-feu)
- surveiller les logs régulièrement
- mettre à jour le système
- tester après chaque modification
- garder un accès console en cas d’erreur
Récapitulatif des fichiers importants
| Fichier | Rôle |
|---|---|
| /etc/ssh/sshd_config | configuration serveur SSH |
| /etc/ssh/ssh_config | configuration client |
| /etc/issue.net | bannière de sécurité |
| ~/.ssh/authorized_keys | clés autorisées |
| /var/log/auth.log | logs SSH |
Conclusion
Cette configuration permet d’atteindre un niveau de sécurité élevé conforme aux attentes d’un audit type Lynis.
Elle permet :
- de réduire fortement les attaques
- de sécuriser l’accès distant
- de répondre aux bonnes pratiques professionnelles
C’est une base solide pour un environnement de production ou un projet de cybersécurité.
