Publié le: 2011-11-07

Introduction

SSH est la base de tout système Unix/Linux administrable à distance. C’est aussi, avec le protocole RDP de Windows, une des deux principales cibles des pirates.

Sécuriser son SSH c’est diminuer les risques de perdre un service ou des données essentielles. Nous allons vous exposer au long de cet article, comme sécuriser SSH et améliorer un tant soit peu ses performances.

Interdire le login en root

La principale entité attaquée est le root. Par défaut SSH autorise l’accès root à distance, mais les hackers se font un plaisir d’attaquer en bruteforce sur cet identifiant. Je vous suggère de créer un utilisateur backdoor qui sera là uniquement pour permettre la connexion root. N’utilisez pas un nom classique pour cet utilisateur mais plutôt quelque chose qui ne serait pas dans un dictionnaire.

Modifiez l’attribut PermitRootLogin pour interdire le login en root :

PermitRootLogin no

Utiliser la dernière Version de SSH

Classiquement SSH est en version 2. Sur certaines versions assez anciennes de Linux il se peut que votre système aie gardé la version 1 de SSH et utilise uniquement le cryptage DSA.

L’option Protocol permet de spécifier la version à utiliser.

Protocol 2

Note: Sur les versions récentes d’OpenSSH il n’est plus possible de sélectionner la version 1 du protocole que ce soit sur le client ou le serveur.

Changer le port d’écoute SSH

Pour aller plus loin dans la sécurisation vous pouvez changer le port de SSH afin de mettre un port que les hackeurs n’attaqueront peu voire jamais. Utilisez la directive Port pour effectuer ce changement (faites attention à ce que le port ne soit pas déjà utilisé !)

Port 9870

Écouter uniquement certaines interfaces

Vous pouvez également brider SSH sur certaines interfaces réseau afin qu’il ne soit pas visible sur internet par exemple. Pour ce faire changez la directive ListenAddress en indiquant quelles sont les interfaces/IP d’écoute (support de l’IPv6)

ListenAddress 121.254.36.2, eth4