Fiche SSH : installation et sécurisation

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 tentatives
  • LoginGraceTime → 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 uniquement
  • MACs → intégrité des échanges
  • KexAlgorithms → é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

FichierRôle
/etc/ssh/sshd_configconfiguration serveur SSH
/etc/ssh/ssh_configconfiguration client
/etc/issue.netbannière de sécurité
~/.ssh/authorized_keysclés autorisées
/var/log/auth.loglogs 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é.

Retour en haut