SSH est un protocole important pour administrer un serveur Linux et Unix à distance.
Pour sécuriser votre serveur SSH, vous souhaitez bloquer et bannir une adresse IP.
Dans ce tutoriel, je vous donne plusieurs méthodes pour y parvenir.

Table des matières
Comment bloquer une adresse IP sur SSH
via /etc/hosts.allow (TCP wrappers)
Il vous permet d’autoriser ou interdire une adresse IP ou sous-réseau pour un service (daemon).
Les fichiers /etc/hosts.allow et /etc/hosts.deny sont couramment utilisés par les TCP wrappers.
Voici quelques exemples de syntaxe /etc/hosts.allow afin de n’autoriser les connexions SSH que pour certains adresses IP :
#autoriser des adresses IP sshd : 192.168.0.1: allow sshd : 192.168.0.2: allow # on peut aussi écrire plusieurs IP sur une seule ligne sshd: 172.168.0.21, 10.83.33.77, 10.63.152.9, 10.12.100.11, 10.82.192.28 # Autoriser l'adresse IP 192.168.0.3 sshd : 192.168.0.3: allow # Autoriser le sous réseau 192.168.0.x 192.168.0. # Autoriser le sous-réseau 192.168.x.x 192.168. # Bloquer les autres adresses IP sshd: ALL : deny
Ou encore si vous souhaitez autoriser toutes les IP provenant d’internet sauf le réseau local :
sshd: ALL EXCEPT LOCAL
Cela génère des entrées sshd « refused connect from » dans le journal /var/log/auth.log :
Nov 17 09:11:54 Ubuntu-VM sshd[3782]: refused connect from 10.0.0.15 (10.0.0.15)
avec iptables
iptables est un logiciel libre qui permet de configurer le pare-feu Linux (netfilter).
Avec ce dernier vous pouvez créer des règles de Firewall pour bloquer les connexions entrantes provenant d’une adresse IP spécifiques.
Voici un exemple de règles, remplacez x.x.x.x par l’adresse IP source que vous souhaitez bannir :
iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED --source x.x.x.x -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 22 -j DROP
Avec ufw
ufw est un autre firewall qui vous permet de filtrer les connexions.
Vous pouvez créer une règle pour filtrer le port 22 sur l’adresse IP entrantes.
Voici un exemple de règle pour interdire l’adresse IP 192.168.1.162 :
sudo ufw deny from 192.168.1.162/24 port 22
avec pam.d sur Redhat
Sur Redhat, vous pouvez créer un fichier de configuration avec des règles d’accès.
- Créez le fichier suivant /etc/security/access-sshd.conf
- Puis donnez le contenu suivant :
# Bloquer l'accès pour l'utilisateur kevin -:kevin:ALL # N'autorisez l'accès qu'aux utilisateurs de confiance et à personne d'autre. -:ALL EXCEPT trusted:ALL # N'autoriser l'utilisateur 'kevin' que s'il vient de localhost. +:kevin:127.0.0.1 ::1 192.168.0.0/24 -:kevin:ALL
Fail2ban : bloquer les attaques bruteforce
Enfin pour aller plus loin, si vous souhaitez bloquer les attaquers vers SSH, vous pouvez utiliser Fail2ban.
Ce dernier analyse les journaux et bloquent les multiples tentatives de connexions provenant d’internet.
Liens
- Générer et se connecter en SSH avec des clés SSH
- SSH : comment ça marche
- Comment générer des clés SSH et se connecter avec OpenSSH de Windows 10, 11
- Comment se connecter en SSH à un serveur distant depuis Windows
- Comment se connecter en SSH à un serveur distant depuis Linux
- SSH agent : authentification par clés SSH avec ou sans keychain
- Activer et installer le serveur OpenSSH sur Windows 10
- Comment activer et utiliser le client OpenSSH de Windows 10
- Exécuter une ou plusieurs commandes à distance en SSH
- Comment configurer le tunnel SSH (redirection de port)
- Sécuriser un serveur SSH
- SSH : bloquer une adresse IP
- Comment protéger SSH avec Fail2ban des attaques DoS / Bruteforce
- Remmina : logiciel de bureau à distance RDP, VNC, SSH pour Linux
- MobaXterm client SSH, RDP pour Windows
- Configurer un port knocking pour protéger SSH