Article ID: 8119, created on Sep 24, 2012, last review on Mar 31, 2016

  • Applies to:
  • Odin Business Automation Standard 4.5
  • Plesk for Linux/Unix

Symptômes

Parfois il est possible de trouver beaucoup d'enregistrements "ssl handshake failure" dans le fichier de log Parallels Plesk (/var/log/sw-cp-server/error_log) :

2009-06-03 22:37:08: (connections.c.299) SSL: 1 error:140780E5:SSL routines:SSL23_READ:ssl handshake failure
2009-06-03 22:46:56: (connections.c.299) SSL: 1 error:140780E5:SSL routines:SSL23_READ:ssl handshake failure
2009-06-03 22:58:49: (connections.c.299) SSL: 1 error:140780E5:SSL routines:SSL23_READ:ssl handshake failure
2009-06-03 23:19:52: (connections.c.299) SSL: 1 error:140780E5:SSL routines:SSL23_READ:ssl handshake failure
2009-06-03 23:31:44: (connections.c.299) SSL: 1 error:140780E5:SSL routines:SSL23_READ:ssl handshake failure
2009-06-03 23:41:18: (connections.c.299) SSL: 1 error:140780E5:SSL routines:SSL23_READ:ssl handshake failure
2009-06-03 23:52:36: (connections.c.299) SSL: 1 error:140780E5:SSL routines:SSL23_READ:ssl handshake failure
2009-06-04 00:02:38: (connections.c.299) SSL: 1 error:140780E5:SSL routines:SSL23_READ:ssl handshake failure

En outre, les enregistrements suivants peuvent être situés dans le log de sécurité du système :

Jan 13 02:54:48 plesk9 sshd[9890]: Failed password for root from ::ffff:125.208.21.3 port 8880 ssh2
Jan 13 07:32:43 plesk9 sshd[11756]: Failed password for root from ::ffff:125.208.21.3 port 8880 ssh2

Cause

Une raison possible pour de telles entrées de log est l'attaque par force brute sur le fichier sw-cp-server via le port 8880. L'attaque par force brute risque de bloquer la performance normale du service.

Résolution

Vous pouvez résoudre ce problème en utilisant l'une des options ci-dessous.

  1. Bloquez l'hôte à l'aide des règles du pare-feu.

Exemple 1 (Linux) :

Il faut configurer les règles du pare-feu (iptables) par les commandes ci-dessous :

#iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name SSH --rsource

#iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 180 --hitcount 4 --rttl --name SSH --rsource -j LOG --log-prefix "SSH_brute_force "

#iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 180 --hitcount 4 --rttl --name SSH --rsource -j DROP

Exemple 2 (FreeBSD) :

a. Créez un script ssh-fwscan.sh :

#!/bin/sh

if ipfw show | awk '{print $1}' | grep -q 20000 ; then
        ipfw delete 20000
fi
# This catches repeated attempts for both legal and illegal users
# No check for duplicate entries is performed, since the rule
# has been deleted.

awk '/sshd/ && (/Invalid user/ || /authentication error/) {try[$(NF)]++}

END {for (h in try) if (try[h] > 5) print h}' /var/log/auth.log |
while read ip
do
ipfw -q add 20000 deny tcp from $ip to any in
done

b. Ajoutez le script dans cronjob :

*/10 * * * * root /operator/sshd-fwscan.sh

Exemple 3 (FreeBSD) :

Ajoutez une règle dans le filtre pf :

pass in on $ext_if inet proto tcp from {192.168.1.0/24, 202.54.1.5/29} to $ssh_server_ip port ssh flags S/SA synproxy state

REMARQUE : Il faut remplacer les adresses IP (192.168.1.0/24 et 202.54.1.5/29) par les adresses requises.

  1. Bloquez l'hôte à l'aide des wrappers tcp.

Exemple :

Ajoutez la règle suivante dans le fichier /etc/hosts.allow :

sshd: <admin IP address>/<netmask> : allow
sshd: ALL : deny

Infos supplémentaires

Certaines autres méthodes peuvent aider à renforcer la sécurité de l'OS face aux attaques externes, dont la force brute :

  • Remplacez le port de daemon sshd de 22 par un autre.
  • Utilisez l'authentification par clé uniquement.
  • Fermez l'accès ssh pour l'utilisateur "root".
  • Configurez l'écoute du daemon sshd en utilisant uniquement des adresses IP exclusives.

Naturellement, il y a beaucoup de solutions tierces pour atteindre le même objectif :

DenyHosts : scanne les fichiers de log et configure les règles de wrapper tcp.

Cryptknock : ouvre le port ssh si nécessaire.

BlockSshd : analyse les logs et configure les règles de pare-feu.

SshGuard : surveille les logs et configure les pare-feux.

a914db3fdc7a53ddcfd1b2db8f5a1b9c 29d1e90fd304f01e6420fbe60f66f838 56797cefb1efc9130f7c48a7d1db0f0c 400e18f6ede9f8be5575a475d2d6b0a6 caea8340e2d186a540518d08602aa065 624ca542e40215e6f1d39170d8e7ec75 70a5401e8b9354cd1d64d0346f2c4a3e

Email subscription for changes to this article
Save as PDF