Installer et configurer SSH + Fail2Ban pour Debian

Dernière modification : 04/02/2026

Ce petit guide permet d'installer et configurer facilement et rapidement SSH et Fail2Ban pour Debian, tout cela soupoudré d'un peu de bonne pratique.

Installer OpenSSH

Exécutez cette commande pour installer le paquet du serveur SSH s'il n'est pas déjà installé sur votre système.

sudo apt install openssh-server -y

Activez le service SSH au démarrage.

sudo systemctl enable ssh

Démarrez le service SSH.

sudo systemctl start ssh

Vérifiez le status du service SSH.

sudo systemctl status ssh

Modifier le port par défaut de SSH et désactiver la connexion SSH en root

Éditez le fichier de configuration SSH.

sudo nano /etc/ssh/sshd_config

Paramétrez ces deux lignes.
Remplacez "22" par le port de votre choix.

Port 22
PermitRootLogin no

Afficher une bannière lors de la connexion en SSH

Cette bannière s'affichera lors de la connexion de l'utilisateur.

Éditez le fichier de configuration SSH.

sudo nano /etc/ssh/sshd_config

Paramétrez cette ligne.

Banner /etc/issue.net

Éditez le fichier de bannière SSH.

sudo nano /etc/issue.net

Voici un exemple de bannière d'avant-connexion :

*********************************************************
WARNING: Unauthorized access is prohibited!

This system is monitored. All activity is logged.
Disconnect immediately if you are not an authorized user.
*********************************************************

Redémarrez le service SSH.

sudo systemctl restart ssh

Installer Fail2Ban

Exécutez cette commande pour installer le paquet de Fail2Ban.

sudo apt install fail2ban -y

Activez le service Fail2Ban au démarrage.

sudo systemctl enable fail2ban

Démarrez le service Fail2Ban.

sudo systemctl start fail2ban

Vérifiez le status du service Fail2Ban.

sudo systemctl status fail2ban

Créer une jail par défaut et configurer Fail2Ban pour SSH

Créer un nouveau fichier de configuration de jail.

sudo nano /etc/fail2ban/jail.d/jail.local

Paramétrez ces lignes dans le fichier de la jail.

[DEFAULT]
ignoreip = 127.0.0.1
findtime = 5m
bantime = 24h
maxretry = 3

[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s

ignoreip => IPs ignorées, séparées par des virgules

findtime => Durée durant laquelle une anomalie est recherchée dans les logs

bantime => Durée de bannissement d'une IP

maxretry => Maximum d'essais avant un bannissement durant le temps imparti défini par findtime


Redémarrez le service Fail2Ban.

sudo systemctl restart fail2ban

Vérifiez les jails Fail2Ban actives.

sudo fail2ban-client status

Bonus

Voir le status d'une jail et les IPs bannies.

sudo fail2ban-client status NOM_DE_LA_JAIL

Débannir une IP d'une jail.

sudo fail2ban-client set NOM_DE_LA_JAIL unbanip IP

Bannir une IP d'une jail.

sudo fail2ban-client set NOM_DE_LA_JAIL banip IP