Sécuriser votre serveur SSH

Le protocole SSH est un protocole très utile et très apprécié des administrateurs systèmes, mais il est souvent scanné par des hackers ou des bots qui tentent de se connecter sur votre machine. Il est donc recommandé de sécuriser ce protocole ou même de le supprimer si vous n’en avez plus l’utilité.

Désinstaller le service

Pour désinstaller SSH :

apt remove openssh-server

Il est recommandé d’utiliser un mot de passe très robuste car de nombreux tests seront réalisés sur votre machine afin de trouver votre mot de passe.

Fichier de configuration

Paramètrez le fichier de configuration du service SSH.

nano /etc/ssh/sshd_config

Pour chaque modification effectuée, exécutez la ligne :

systemctl restart sshd

Cette commande permettra d’appliquer les changements opérés.

Port

Il est recommandé de changer le port par défaut sur le serveur. Dans le fichier de configuration sshd_config, changez la ligne correspondant au port :

Décommentez la ligne en retirant le # et changez ensuite le numéro, utilisez par exemple 2222.

Attention toutefois à changer le numéro de port sur votre pare feu si vous en avez mis un en place.

Root login

Toujours dans ce fichier sshd_config

Vérifier que root n’est pas autorisé à se connecter au serveur :

Limitez la connexion à certains utilisateurs

Supprimez les comptes par défaut de votre système, créez un compte spécifique pour SSH et n’autorisez que cet utilisateur à se connecter via SSH.

Pour cela éditez sshd_config

Ajoutez la ligne :

AllowUsers ssh

Cela aura pour conséquence de n’autoriser que l’utilisateur ssh à se connecter.

Vérifiez l’inactivité des utilisateurs

Dans le fichier sshd_config

Décommentez et éditez les lignes :

ClientAliveInterval 600
ClientAliveCountMax
3

Cela vous permet de déconnecter vos utilisateurs après 10 minutes d’activité et de vérifier avant de déconnecter l’utilisateur.

Installer Fail2ban pour éviter les attaques sur le SSH

Installer Fail2ban :

apt install fail2ban

On copie ensuite le fichier de configuration de Fail2ban :

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

On édite ensuite ce fichier jail.local

nano /etc/fail2ban/jail.local

Éditez le fichier pour qu’il ressemble à celui là :

[sshd]

enabled  = true
port    = ssh
logpath = %(sshd_log)s

Cela va autoriser la création de prisons lorsqu’il y a trop de tentatives de connexions sur le port ssh afin de bannir les IP s’attaquant au serveur.

Redémarrez ensuite le service fail2ban :

systemctl restart fail2ban

Vous pourrez consulter les adresses IP bannies avec la commande :

fail2ban-client status sshd

Connexion via une clé

Depuis la machine cliente, générez une clé :

ssh-keygen

Envoyez ensuite la clé sur le serveur :

ssh-copy-id debian@adresseIP

Une fois cette clé envoyée, vous pouvez supprimer la connexion via mot de passe pour ne forcer la connexion que via cette clé:

Sur le serveur retournez éditer le fichier sshd_config.

Cherchez la ligne correspondant à PasswordAuthentication et remplacez yes par no.

Vérifiez également que l’authetification par clé est autorisée :

Conclusion

Ces quelques mesures ne sont pas toutes obligatoires mais en adopter la plupart améliorera la sécurité de votre service SSH.

N’oublez pas de redémarrer le service SSH à chaque modification :

systemctl restart sshd


Sources :

Medium : Sécuriser SSH

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *