Serveur SSH
Serveur SSH
Serveur SSH
Paix-travail-patrie Peace-work-fatherland
************ ************
************ ************
RESEAUX TELECOMMUNICATIONS
ET SYSTEMES
PARTICIPANTS
➢ NACJIP NANGKAMG RABBI MERCI
➢ NYADJA KAMWA MICHELLE ALVIRRA
INTRODUCTION
Dans la suite de notre rapport, nous verrons les fondements du SSH ainsi que les
différentes configurations apportées à la machine serveur et cliente pour effectuer
l’implémentation.
Pour une configuration SSH réussie, vous devez effectuer les opérations suivantes :
● Exigences machine-serveur : Les composants du serveur SSH doivent être installés sur le
système serveur. Le paquetage openssh-server s'en charge.
● Exigences machine-client : Sur le système à partir duquel l’on souhaite se connecter au
serveur distant, nous devons installer le composant client SSH. Celui-ci est fourni par le
paquetage openssh-client, qui est préinstallé sur la plupart des distributions Linux et BSD.
Il est essentiel de faire la distinction entre le serveur et le client ; par conséquent, nous
avons utilisées des machines virtuelles parmi lesquelles nous avons désignés l’une comme
serveur avec pour distribution linux debian 6 et l’autre comme clientes avec pour
distribution linux ubuntu 10. Le choix des distibutions linux a été fait en fonction de ce que
nous avions à notre disposition et en prenant en compte le faites que les anciennes versions sont
les plus stable.
NB : Il est important de savoir que les distributions qui ont vue le jour au cours des années
impair sont plus instable que ceux des années paires.
Pour la configuration du ssh sur le poste serveur, nous nous sommes mis en mode super
utilisateur à l’aide de la commande
$ su
Puis ; nous avons établi une connexion avec internet qui nous a permis de télécharger les
paquets requis pour notre serveur.
Après l’installation des paquets du serveur openssh, la prochaine chose à faire est de le
personnaliser en modifiant le fichier sshd_config (fichier de configuration serveur ssh) qui est
dans le répertoire /etc/ssh.
La modification du fichier configuration est une phase importante car elle nous
permettra de spécifier les paramètres de notre serveur selon nos besoins particuliers, par
exemple supprimer l'authentification par mot de passe, modifier le port…
Nous avons utilisé l'éditeur de texte nano pour modifier son contenu en utilisant la commande :
nano /etc/ssh/sshd_config
nano est un éditeur de texte dur les distribution linux. Nous pouvons utiliser pour
apporter des modifications à notre fichier de configuration.
Dans notre configuration du serveur, nous avons choisi de travailler avec les configurations par
défauts du serveur. Les lignes les plus importantes du fichier de configuration sont donner ci-
après:
Le port 22
Qui signifie que le serveur ssh écoute sur le port 22, qui est le port par défaut du protocole TCP.
Vous pouvez le faire écouter sur un autre port en changeant cette ligne ; vous pouvez aussi le faire
écouter sur plusieurs ports à la fois en rajoutant des lignes similaires
Le protocole 2
Signifie que votre serveur ssh accepte uniquement la version 2 du protocole ssh. C’est une
version plus sécurisée que la version 1 du protocole.si vous voulez que le protocole accepte les
deux versions changez la ligne en : protocole 2,1
ListenAddrresse 0.0.0.0
Elle cert à définir là l’adresse d’écoute. Cette ligne est généralement commentée et donc
l’adresse d’écoute du serveur est par défaut l’adresse de la machine. Cette ligne fait référence
donc à l’adresse d’écoute du serveur.
PermitRootlogin yes
Signifie que vous pouvez vous logger en root par ssh. Vous pouvez changer et mettre « no »,
ce qui signifie que pour vous connecter en root à distance, vous devez d’abord vous connecter
par ssh en tant que simple utilisateur, puis utiliser la commande « su » pour devenir root c’est
une sorte de double protection.
X11Forwarding yes
Signifie que vous allez pouvoir travailler en export display par ssh (ce qui veut dire que vous
pourrez exécuter à distance des applications graphiques)
Après avoir terminé avec les modifications dans le fichier de configuration, il faut recharger le
fichier de configuration dans le server pour prendre en compte les modifications apportées avec
la commande
L’Installation de OpenSSH client Sur Les machines clientes Ubuntu possède l'utilitaire
de pare-feu UFW (UncomplicatedFirewall), qui est une interface pour iptables, qui gère les
règles du réseau. Si votre pare-feu est activé, il peut vous empêcher de vous connecter à votre
serveur SSH. Vous devez exécuter la commande suivante pour configurer l'UFW afin qu'il
accorde l'accès souhaité :
Une fois le client OpenSSH installé, vous pouvez accéder au serveur distant avec votre
ordinateur.
Pour vous connecter à votre système debian, vous devez connaître l'adresse IP de
l'ordinateur et utiliser la commande SSH, comme ceci :
Par exemple : ssh-p 22 [email protected] . Si c'est la première fois que vous utilisez ssh
pour vous connecter à cette machine distante, vous verrez un message comme celui-ci : The
authenticity of host 'sample.ssh.com' cannot be established. DSA key fingerprint is
04:48:30:31:b0:f3:5a:9b:01:9d:b3:a7:38:e2:b1:0c. Are you sure you want to continue
connecting (yes/no)?
Saisir yes et valider pour continuer. Le serveur sera ajouté à votre liste d'hôtes connus
Pour se connecter directement en mode super utilisateur, a la place username on met « root » :
La force de SSH est la sécurité. Permettre la connexion à l'aide de mots de passe est
une excellente chose, mais ce n'est pas toujours aussi sûr dans le monde d'aujourd'hui. Pour
améliorer la sécurité, SSH permet d'utiliser l'authentification par clé publique. Les clés
publiques sont générées sur la machine hôte à l'aide de l'algorithme RSA, puis partagées avec
les ordinateurs clients. L'utilisation de l'authentification par clé publique plutôt que par simple
mot de passe est motivée par des questions de sécurité. Même des mots de passe incroyablement
longs ne peuvent pas rivaliser avec la puissance cryptographique de l'authentification par clé
publique. L'authentification par clé publique améliore considérablement la sécurité avec SSH
car elle évite aux utilisateurs de devoir se souvenir de longs mots de passe (ou pire encore, de
les écrire).
L'authentification par clé publique permet également une connexion automatisée, sans mot de
passe, qui est un élément clé pour les innombrables processus d'automatisation sécurisés qui
s'exécutent au sein des réseaux d'entreprise dans le monde entier.
Les étapes simples suivantes sont nécessaires pour configurer l'authentification par clé
publique (pour SSH) : SSH permet l'authentification entre deux hôtes sans avoir besoin d'un
mot de passe. L'authentification par clé SSH utilise une clé privée et une clé publique. Pour
générer les clés, à partir d'une invite de terminal, entrez :
ssh-keygen -b 2048
Cette opération génère les clés à l'aide de l'algorithme RSA. Au moment où nous écrivons ces
lignes, les clés générées auront 2048 bits. Vous pouvez modifier le nombre de bits en utilisant
l'option -b. Par exemple, pour générer des clés avec 4096 bits, vous pouvez faire :
pour generer une clef dsa il suffit de modifier la commande en specifiant le type de fichier
comme suit :
ssh-copy-id username@remotehost
Enfin, vérifiez les permissions sur le fichier authorized_keys, seul l'utilisateur authentifié doit
avoir les permissions de lecture et d'écriture. Si les permissions ne sont pas correctes, changez-
les par : chmod 600 .ssh/authorized_keys
Vous devriez maintenant être en mesure de vous connecter en SSH à l'hôte sans être invité à
saisir un mot de passe.
Test : Transfert de dossiers et fichiers entre clients et serveur
Une autre fonction importante de SSH est de permettre le transfert sécurisé de fichiers
à l'aide de SCP (secure copy)
Est un protocole permettant de transférer des fichiers via une connexion ssh. Il s'agit
d'une copie brute, ce qui signifie qu'elle lira simplement les données du dossier source et les
écrira sur le dossier de destination. scp est préinstallé sur la plupart des distributions Linux.
Nous pouvons rapidement voir si scp est installé ou non avec la commande :
which scp
S'il n'est pas installé, nous utiliserons la commande ci-dessous pour l'installer ;
Pour copier un dossier d’un client vers un serveur avec openssh, nous avons utilisé la
commande suivante :
Par exemple, dans la capture ci-dessus, nous voulons transféré le dossier DossierC qui se
trouve dans le répertoire /home/michelle/Documents vers l'hôte: rabbi avec pour adresse IP
192.168.56.101 dans le répertoire /home/rabbi/Documents
Pour copier un dossier d’un serveur vers un client avec openssh, nous avons utilisé la commande
suivante :
Par exemple, dans la capture ci-dessus, nous voulons transférer le dossier DossierS qui se
trouve dans le répertoire /home/rabbi/Documents du serveur rabbi avec pour adresse IP
192.168.56.101 vers le client dans le répertoire /home/michelle/Documents
Pour la copie du fichier d’un client vers un serveur contrairement au dossier ;on modifie la
commande de copie du dossier en enlevant le « -r »
Par exemple, dans la capture ci-dessus, nous voulons transférer le fichier fichierC qui se trouve
dans le répertoire /home/michelle/Documents/DossierC vers l’hôte : rabbi avec pour adresse IP
192.168.56.101 dans le répertoire /home/rabbi/Documents
Pour la copie d’un fichier d’un serveur vers un client, on utlise la commande :
Nous pouvons fournir une liste de fichiers séparés par des espaces pour copier plusieurs fichiers
à la fois
Nous pouvons réduire le temps de transfert en utilisant la compression à la volée avec l'option
-C. Cela va compresser et décompresser le fichier sur les chemins d'accès source et destination
respectivement : scp -C filename root@IP address or hostname: L'option -l permet de limiter
la bande passante en kbits/s pendant les transferts scp -l 500 filename root@IP address or
hostname:Destination .
Il y’a don trois contraintes majeures pour garder un système sécurisé après avoir installé un
serveur SSH
➢ Avoir un serveur SSH à jour au niveau de la sécurité, ce qui doit être le cas si vous faites
conscieisement les mises à jour de sécurité
➢ Que les mots de passes de tous les utilisateurs soient suffisamment complexes pour
résister à une attaque en force brute ;
➢ Surveiller les connexions en lisant régulièrement le fichier de log /var/log/auth.log