TP N°12 - Implémenter L'accès Sécurisé Au Serveur (SSH)
TP N°12 - Implémenter L'accès Sécurisé Au Serveur (SSH)
TP N°12 - Implémenter L'accès Sécurisé Au Serveur (SSH)
via SSH
Sommaire
1. Présentation de protocole SSH
2. Configuration par défaut de serveur SSH
3. Configuration avancée de serveur SSH
4. Authentification par clés publique
5. Tunnels et redirection de ports
SSH
TCP
IP
Ethernet
La couche de transport son rôle est de faciliter une communication sécurisée entre
deux hôtes non seulement au moment de l'authentification, mais également lors de
la communication ayant lieu. Pour ce faire, la couche de transport traite le cryptage
et décryptage de données et offre une certaine protection quant à l'intégrité des
paquets de données lors de leur envoi et de leur réception. De plus, la couche de
transport effectue la compression des données permettant d'accélérer la vitesse de
transfert des informations.
User Authentication Protocol: Authentifie l'utilisateur sur le serveur.
Protocole de connexion: Multiplexe plusieurs canaux de communication logiques sur
une seule connexion SSH sous-jacente.
Attention : Il est tout à fait possible pour un pirate de se faire passer pour le serveur SSH lors
de la première connexion car le système local ne détecte aucune différence entre le serveur
désiré et le faux serveur créé par le pirate.
Afin d'éviter une telle situation, contrôlez l'intégrité d'un nouveau serveur SSH en
contactant l'administrateur du serveur avant d'établir la première connexion ou dans le cas
où une clé d'hôte ne correspond pas à celle stockée sur le serveur.
Pour afficher l’empreinte numérique de la clef publique au niveau de serveur SSH :
serveur01# ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub
2048 76:4c:1b:9c:e5:01:8b:fe:39:39:51:57:71:2a:80:1c /etc/ssh/ssh_host_rsa_key.pub (RSA)
Vous remarquez que la même empreinte affichée lors de la connexion au serveur SSH.
2.3.2 Sous Windows
Après la validation des informations de serveur SSH envoyé par Putty, vous obtiendrez ce
message qui vous demande si ce serveur et un serveur de confiance en vérifiant l’empreinte
numérique de la clef RSA (Comme dans la connexion sous Linux) :
3 Configuration avancée de serveur SSH
3.1 Fichiers de configuration d'OpenSSH
OpenSSH est constitué de deux ensembles de fichiers de configuration :
Un pour les programmes client (ssh, scp et sftp)
L'autre pour le service (sshd).
Les informations de configuration SSH qui s'appliquent à l'ensemble du système sont
stockées dans le répertoire /etc/ssh/ où figurent :
moduli — Fichier contenant les groupes Diffie-Hellman utilisés pour l'échange de clés
Diffie-Hellman qui est crucial pour la création d'une couche de transport sécurisée.
Lorsque les clés sont échangées au début d'une session SSH, une valeur secrète
partagée ne pouvant être déterminée que conjointement par les deux parties est
créée. Cette valeur est ensuite utilisée pour effectuer l'authentification de l'hôte.
ssh_config — Fichier de configuration client SSH pour l'ensemble du système.
o Il est écrasé si un même fichier est présent dans le répertoire personnel de
l'utilisateur (~/.ssh/config).
sshd_config — Fichier de configuration pour le démon sshd.
ssh_host_rsa_key — Clé RSA privée utilisée par le démon sshd pour la version 2 du
protocole SSH.
ssh_host_rsa_key.pub — Clé RSA publique utilisée par le démon sshd pour la version
2 du protocole SSH.
ssh_host_key — Clé RSA privée utilisée par le démon sshd pour la version 1 du
protocole SSH.
ssh_host_key.pub — Clé RSA publique utilisée par le démon sshd pour la version 1
du protocole SSH.
ssh_host_dsa_key — Clé DSA privée utilisée par le démon sshd.
ssh_host_dsa_key.pub — Clé DSA publique utilisée par le démon sshd.
Les informations de configuration SSH spécifiques à l'utilisateur sont stockées dans son
répertoire personnel à l'intérieur du répertoire ~/.ssh/ où figurent :
known_hosts — Fichier contenant les clés d'hôtes DSA/RSA des serveurs SSH
auxquels l'utilisateur a accédé. Ce fichier est très important car il permet de garantir
que le client SSH se connecte au bon serveur SSH.
authorized_keys — Fichier contenant une liste de clés publiques autorisées pour les
serveurs. Lorsque le client se connecte à un serveur, ce dernier authentifie le client
en vérifiant sa clé publique signée qui est stockée dans ce fichier.
id_rsa — Clé RSA privée utilisée par ssh pour la version 2 du protocole SSH.
id_rsa.pub — Clé RSA publique utilisée par ssh pour la version 2 du protocole SSH.
id_dsa — Fichier contenant la clé DSA privée de l'utilisateur.
id_dsa.pub — Clé DSA publique de l'utilisateur.
identity — Clé RSA privée utilisée par ssh pour la version 1 du protocole SSH.
identity.pub — Clé RSA privée utilisée par ssh pour la version 1 du protocole SSH.
Explication :
Le type de d’authentification par défaut utilisée par le serveur SSH est
l’authentification par mot de passe. « PasswordAuthentication yes »
L’authentification normale d’UNIX est fournie par le module PAM (Pluggable
Authentication Modules), donc le démon sshd il va utiliser ce module pour
authentifier ses utilisateurs « UsePAM yes ».
Note :
Pour chaque type de transaction différent (exemple : navigation internet, connexion
à un serveur de messagerie, envoi de fichier par FTP, etc.) il faudra ouvrir un nouveau
tunnel. Cela se comprend facilement car les ports utilisés sur la machine hôte sont
différents.
Pour fermer le tunnel, récupérez l'identifiant du processus en tapant la commande
suivante depuis la machine cliente:
# ps aux | grep ssh
o Puis tuez le processus :
# kill -9 id_du_processus