Cette solution se base autour des trois modifications suivantes :

  • Changer le port du serveur SSH
  • Interdire les connexions en tant que Root
  • Limiter le nombre de tentative

La configuration ci-dessus à été faite sur des distributions Debian Sarge et Etch.

Changer le port du serveur SSH

  1. Ouvrir le fichier de configuration du serveur SSH (/etc/ssh/sshd_config)
  1. Changer Port 22 par Port xxxx (où xxxx représente le nouveau port de votre serveur ssh, choisissez de préférence un port au dessus de 1024)

ex : Port 3456

Interdire les connexions en tant que Root

  1. Ouvrir le fichier de configuration du serveur SSH (/etc/ssh/sshd_config)
  2. Changer PermitRootLogin yes par PermitRootLogin no

Limiter le nombre de tentative

Bien que le changement du port et l’interdiction de connexion sous Root limite le nombre de tentative par les scripts de brute-force.
Nous allons voir comment limiter le nombre de tentatives de connexion pour être sûr de ne plus être harcelé par un brute-force.

Pour cela il faut éditer votre script d’Iptables et ajouter la ligne suivante :

-A INPUT -p tcp -m tcp -s votre_IP --dport xxxx -j ACCEPT
-A INPUT -p tcp -m tcp -m limit --dport xxxx --limit 5/hour -j ACCEPT

(où xxxx représente le nouveau port de votre serveur ssh)

La première directive est optionnelle elle permet de dire à IPtables de toujours autoriser votre IP à se connecter au serveur SSH (à utiliser seulement si vous avez une IP fixe)
La deuxième directive IPtables permet de limiter le nombre de tentatives à 5 par heures.

N’oubliez pas d’enlever la ligne qui autorise les connexions sur le port 22.