Accroître la sécurité de SSH

Dès lors que cela est possible, il est vivement conseillé de modifier les identifiants par défaut ainsi que les ports par défaut des services critiques.


Concernant SSH, nous allons voir ici quelques éléments qui permettront de renforcer la sécurité de ce service.


Dans le cadre de la rédaction de cet article, nous nous sommes basés sur une distribution de type Debian Jessie. Suivant celle en place sur votre serveur, la configuration peut être amenée à changer. Il faudra, par conséquent, adapter à vos besoins.


Par défaut, pour vous connecter en SSH, vous devez établir une connexion sur le port 22. Modifier ce port peut déjà vous prémunir de bon nombre d'attaques par brute-force.

Si vous souhaitez utiliser SSH sur un autre port que celui par défaut, il vous faudra donc modifier Port 22 par Port 55555 dans le fichier /etc/ssh/sshd_config.


Afin de rendre les attaques par brute-force beaucoup moins efficaces, on peut également désactiver la connexion en SSH par le biais du compte root. Il faudra donc disposer d'un utilisateur autre que le compte par défaut et procéder à une élévation de privilèges depuis ce compte pour disposer des droits administrateur.


On va donc passer l'option associée de PermitRootLogin yes à PermitRootLogin no et déclarer les utilisateurs autorisés à se connecter. Pour autoriser l'utilisateur ikoula à se connecter en SSH, il faudra donc ajouter la ligne suivante dans le fichier de configuration : AllowUsers ikoula


Si au delà de deux minutes les informations de connexion ne sont pas saisies lors d'une connexion en SSH à votre serveur, la connexion est coupée. Cette durée peut être revue à la baisse (suivant la latence et la stabilité de votre connexion, bien sûr). Trente secondes peuvent être suffisantes. Afin de modifier cette valeur, nous allons modifier le paramètre LoginGraceTime. Nous allons donc maintenant modifier la ligne LoginGraceTime 120 par LoginGraceTime 30 dans le fichier /etc/ssh/sshd_config.


Nous allons désormais modifier les algorithmes utilisés par SSH pour limiter l'utilisation à certains en ajoutant deux lignes supplémentaires dans le fichier de configuration du service SSH :

echo "Ciphers aes256-ctr,aes192-ctr,aes128-ctr" >> /etc/ssh/sshd_config

echo "MACs hmac-ripemd160" >> /etc/ssh/sshd_config


Debian, par défaut toujours, ajoute une chaine de caractère à la bannière SSH. Pour faire simple, si vous effectuer un telnet vers votre serveur (telnet IP_SERVER 22), voici ce que vous obtenez :

SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u2


Nous allons donc désactiver ce comportement afin de ne plus afficher le nom de notre distribution :

echo "DebianBanner no" >> /etc/ssh/sshd_config


Désormais, nous allons obtenir ceci :

SSH-2.0-OpenSSH_6.7p1


Les modifications sont terminées, nous allons donc redémarrer le service pour que les modifications soient effectives :

systemctl restart ssh.service


Sachez que vous pouvez également mettre en place des restrictions par adresse IP pour votre service SSH (si votre serveur n'est pas déjà derrière un pare-feu par exemple ou que vos règles iptables ne font pas déjà le nécessaire).


Nous allons donc interdire les connexions SSH à tout le monde et mettre une exception pour nos adresses IP :

echo "sshd: ALL" >> /etc/hosts.deny

echo "sshd: 12.34.56.78, 98.76.54.32" >> /etc/hosts.allow


Ainsi, seules les adresses IP 12.34.56.78 et 98.76.54.32 seront autorisées à se connecter à voter serveur en SSH (remplacez par les adresses IP appropriées, bien évidemment).


Vous pouvez également mettre en place une authentification par échange de clefs si vous le souhaitez.

  • 3 Kasutajad peavad seda kasulikuks
Kas see vastus oli kasulik?

Seotud artiklid

Mise en place d’un certificat Let’s Encrypt avec Apache sur Debian 10

Introduction Let’s Encrypt est une autorité de certification permettant d’obtenir et d’installer...

Comment accéder aux logs de mon serveur (Linux)

Les logs (journaux) du serveur sont des enregistrements détaillés des activités et des événements...

Clé SSH- comment créer une clé SSH (Debian 10)

Sommaire 11) Qu'est-ce qu'une clé Secure Shell ? 22) NOTES de Procédure 33) Générer...

Docker et Portainer

Introduction Sur ce guide nous allons vous guider sur l'installation du service Docker (système...

Comment installer le Pterodactyl sur un VPS ou dédié ?

Comment installer le Pterodactyl sur un VPS ou dédié ? Bienvenue dans ce tutoriel où nous allons...