Securiser SSH : configuration avancee de sshd_config

Credit : Illustration backtotheweb.fr

Securiser SSH : configuration avancee de sshd_config

Dylan D. — Agent Support Technique Serveur SSH 555 mots 3 min

Securiser SSH : configuration avancee de sshd_config

Bon, on va pas se mentir, c'est un sujet qui revient souvent.

SSH est la porte d'entree principale de votre serveur. Sur un VPS IONOS expose a Internet, les tentatives de connexion par brute force commencent dans les minutes qui suivent la mise en ligne. Voici comment verrouiller votre configuration.

1. Generer une paire de cles SSH

Sur votre machine locale :

ssh-keygen -t ed25519 -C "admin@monsite.fr"

Copiez la cle publique sur le serveur :

ssh-copy-id -i ~/.ssh/id_ed25519.pub user@ip_serveur

Testez la connexion par cle avant de desactiver les mots de passe.

Securiser SSH : configuration avancee de sshd_config

2. Modifier sshd_config

Editez le fichier de configuration principal :

nano /etc/ssh/sshd_config

Voici les directives essentielles a modifier :

# Changer le port par defaut
Port 2222

# Desactiver la connexion root
PermitRootLogin no

# Desactiver l'authentification par mot de passe
PasswordAuthentication no
PubkeyAuthentication yes

# Limiter les utilisateurs autorises
AllowUsers deployer admin

# Desactiver les methodes inutiles
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding no

# Timeout et tentatives
LoginGraceTime 30
MaxAuthTries 3
MaxSessions 3

# Garder la connexion active
ClientAliveInterval 300
ClientAliveCountMax 2

# Protocole et algorithmes
KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org
HostKeyAlgorithms ssh-ed25519
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com

Validez la syntaxe et redemarrez :

sshd -t
systemctl restart sshd

Attention : gardez votre session actuelle ouverte et testez dans un nouveau terminal avant de fermer.

3. Configurer le pare-feu

Autorisez le nouveau port SSH dans UFW :

apt install ufw -y
ufw allow 2222/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
ufw status

4. Installer Fail2ban

Fail2ban surveille les logs et bannit les IP apres plusieurs echecs de connexion :

apt install fail2ban -y

Creez une configuration locale :

nano /etc/fail2ban/jail.local
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 3
banaction = ufw

[sshd]
enabled = true
port = 2222
logpath = /var/log/auth.log
maxretry = 3

Retour d'expérience : on utilise cette config sur tous nos serveurs clients.

systemctl enable fail2ban
systemctl restart fail2ban

Verifiez l'etat de la jail :

fail2ban-client status sshd

Securiser SSH : configuration avancee de sshd_config

5. Banniere d'avertissement

Ajoutez une banniere legale qui s'affiche avant la connexion :

echo "Acces non autorise interdit. Toute activite est journalisee." > /etc/issue.net

Dans sshd_config :

Banner /etc/issue.net

6. Authentification a deux facteurs (optionnel)

Pour une securite maximale, ajoutez Google Authenticator :

apt install libpam-google-authenticator -y
google-authenticator

Puis configurez PAM dans /etc/pam.d/sshd :

auth required pam_google_authenticator.so

Et dans sshd_config :

AuthenticationMethods publickey,keyboard-interactive
KbdInteractiveAuthentication yes

7. Surveiller les connexions

Quelques commandes utiles pour l'audit :

# Dernières connexions
last -a | head -20

# Tentatives echouees
journalctl -u sshd | grep "Failed"

# Connexions actives
ss -tnp | grep 2222

# IP bannies par Fail2ban
fail2ban-client status sshd

Recapitulatif

Une configuration SSH securisee repose sur trois piliers : authentification par cle uniquement, restriction des acces (port, utilisateurs), et detection d'intrusion avec Fail2ban. Sur un serveur IONOS, ces mesures reduisent considerablement la surface d'attaque et protegent efficacement contre les tentatives de brute force.


Cet article sera mis à jour régulièrement. Pensez à le bookmarker.

# Articles similaires

// newsletter

Cet article vous a aide ? Recevez les prochains par email.