#2 Sécuriser son serveur : SSH

Matrix_Norris.1920x1080

Continuons nos expériences dans la sécurisation de notre serveur personnel. Aujourd’hui, je vous propose quelques conseils et astuces sur le protocole SSH. Initialement conçu en 1995 par un finlandais, SSH reste aujourd’hui un incontournable dans l’administration système et c’est un outil extrêmement puissant, à condition bien sur de savoir s’en servir correctement.

Après cet article, SSH n’aura plus de secret pour vous !

Petits rappels sur le protocole SSH

Comme je vous le disais, SSH (pour Secure Shell) est un protocole de communication qui date de 1995 permettant de se connecter à distance et de manière sécurisée à un ordinateur afin d’y obtenir un shell. Il vient ainsi combler les lacunes des outils précédemment utilisés comme Telnet, rlogin, rcp, ftp ou encore rsh.
 
Très souple, utilisant le protocole TCP sur le port 22 par défaut, SSH permet aussi de faire du tunneling : c’est-à-dire faire transiter un protocole non sécurisé (POP3 par exemple) via un tunnel SSH (chiffrant ainsi POP3). De plus, SSH offre depuis sa version 2 un protocole de transfert complet : SFTP (SSH File Transfer Protocol).
 
Pour résumer, voilà le topo :

SchémaSSH

En haut une connexion sans chiffrement (type telnet) et en bas via SSH, où tous les échanges sont chiffrés.

Premières choses à faire lorsqu’on installe un serveur SSH

Après votre apt-get install openssh-server, il y a quelques actions de base à réaliser pour sécuriser son serveur SSH à chaque fois que vous en créez un. Comme souvent sous Linux, la configuration fournie par défaut ne suffit par à assurer une protection optimale. Vous l’aurez deviné, ça se passe dans /etc/ssh/sshd_config :

# Port d'écoute du serveur SSH
Port 22
 
# Forcer l'utilisation de la version 2 du protocole
Protocol 2
 
# Interdire l'authentification en tant que root
PermitRootLogin no
 
# Autoriser l'authentification via ces clés publiques (utile pour la suite)
PubkeyAuthentication yes
 
# Liste de blanche des utilisateurs pouvant se connecter
AllowUsers utilisateur1 utilisateur2

 

Par rapport au port par défaut, comme c’est le 22, il est la cible de nombreux robots. Il est donc conseillé, si votre réseau le permet, de modifier ce port par un autre (veillez à ce qu’il soit disponible). 16022 par exemple… Et à condition de ne pas l’oublier !

Voilà pour la configuration, normalement les autres options sont correctement définies. Pensez aussi à maintenir Open SSH à jour.

Utiliser l’authentification par clés

Pour éviter d’avoir à envoyer notre mot de passe lors de la phase d’authentification, SSH peut utiliser un jeu de clés asymétriques pour vous permettre de vous logguer sans mot de passe. Il suffit de générer une clé privée et un certificat sur votre client, et de fournir une clé publique à votre serveur. C’est très simple à réaliser et ça fait gagner du temps !

  1. On génère le jeu clé / certificat sur le client :
    ssh-keygen -b 1024 -t dsa

    Placez-le à l’endroit par défaut (/home/.ssh/ normalement). Pour le passphrase, ne mettez rien si vous ne voulez pas avoir à taper un mot de passe à chaque connexion.

  2. On envoie la clé publique sur le serveur :

    ssh-copy-id -i ~/.ssh/id_dsa.pub user@machine

Facile non ? Dorénavant, plus besoin de mot de passe pour utiliser SSH. Vous pouvez par ailleurs modifier ces quelques autres options dans sshd_config :

# On désactive tous les autres moyens d'authentification
RSAAuthentication no
UsePAM no
KerberosAuthentication no
GSSAPIAuthentication no
PasswordAuthentication no
 
# On réduit le nombre de tentatives de connexion (les clés ne se trompent pas)
MaxAuthTries 1
 
# On diminue le temps disponible pour taper son mot de passe (comme il n'y en a plus, on diminue).
LoginGraceTime 10

Voilà. Avec ça, on commence à avoir quelque chose de sympa. Il va de soi qu’il existe encore des dizaines de manipulations possibles à adapter en fonction de vos besoins et de la sensibilité de votre installation… Néanmoins je pense que nous avons là de bonnes bases pour pouvoir utiliser SSH en toute tranquillité !

Si vous cherchez quelques bonnes astuces sur SSH (comment utiliser scp, sftp, transférer des partitions via SSH, créer un tunnel…), je vous recommande d’aller faire un tour sur howto.landure.fr. Les explications sont assez claires et bien détaillées. Bonne lecture !

Source de l’image : wlppr.com

Cet article vous a plu ? Partagez-le sur les réseaux sociaux !

Twitter Facebook Google Plus email