Serveur SSH

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 13

REPUBLIQUE DU CAMEROUN REPUBLIC OF CAMEROON

Paix-travail-patrie Peace-work-fatherland

************ ************

UNIVERSITE DE DSCHANG UNIVERSITY OF DSCHANG

************ ************

RESEAUX TELECOMMUNICATIONS
ET SYSTEMES

PROJET DE SERVICES RESEAUX :


CONFIGURATION D’UN SERVEUR SSH SOUS
LINUX

PARTICIPANTS
➢ NACJIP NANGKAMG RABBI MERCI
➢ NYADJA KAMWA MICHELLE ALVIRRA
INTRODUCTION

Le SSH (Secure Shell) est non seulement un programme informatique et un protocole


de communication sécurisé. Son protocole de connexion impose un échange de clés de
chiffrement en début de connexion entre une machine serveur et une machine cliente. Le
protocole SSH existe en deux versions majeures : la version 1.0 et la version 2.0. Ces deux
versions diffèrent au niveau de la sécurité car la version 2.0 est beaucoup plus sure au niveau
cryptographique, et possède en plus un protocole de transfert de fichiers complet.

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.

Les fondements du SSH


Le protocole SSH est construit sur un modèle serveur-client. Le "serveur" établit un
canal de communication entre lui et le "client". Ce canal est crypté et la communication est
contrôlée par des clés SSH publiques et privées. OpenSSH est un ensemble d'outils permettant
de contrôler et de transférer des données entre des machines en réseau et via Internet. Vous
découvrirez également certaines options de configuration de l'application serveur OpenSSH et
comment les modifier sur votre machine Ubuntu. OpenSSH est une version gratuite de la suite
d'outils du protocole Secure Shell (SSH) permettant de contrôler ou de transférer des fichiers
entre ordinateurs via Internet. Les technologies traditionnelles pour effectuer ces tâches, telles
que telnet ou rcp, ne sont pas sûres et transmettent le mot de passe de l'utilisateur en clair.
OpenSSH est un serveur et un logiciel client qui permet un contrôle à distance et une
transmission de fichiers sécurisés et cryptés, remplaçant efficacement les outils traditionnels.

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.

Configuration du serveur SSH

Pour la configuration du ssh sur le poste serveur, nous nous sommes mis en mode super
utilisateur à l’aide de la commande

$ su

Ensuite, on a entré son mot de passe

Puis ; nous avons établi une connexion avec internet qui nous a permis de télécharger les
paquets requis pour notre serveur.

Installation de OpenSSH sur la machine serveur

Pour installer openSSH, nous avons tapez la commande suivante :

$ apt install openssh-server

Puis nous avons activez le service ssh, avec la commande :

$ systemctl enable ssh


Après installation de openssh, nous avons vérifié le statut du serveur openssh avec la
commande suivante :

$ service ssh status

Pour démarrer le service ssh, la commande suivante sera utilisée.

$ systemctl start ssh

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.

Modification du fichier de Configuration

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

$ /etc/init.d /ssh reload

Vérifiez la configuration après l'avoir modifiée et avant de redémarrer le serveur :

sshd -t -f /etc/ssh/sshd_config ( -t signifie test mode Et -f signifie config file )

systemctl restart sshd.Service

Installation de OpenSSH client sur les machines clientes

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é :

$ ufw allow ssh


Votre système Linux local devrait déjà avoir le client SSH installé. Si ce n'est pas le cas, vous
pouvez toujours l'installer en utilisant la commande suivante sur Ubuntu 10.4 qui a été notre
choix de machine cliente :

$ apt install openssh-client

Une fois le client OpenSSH installé, vous pouvez accéder au serveur distant avec votre
ordinateur.

Accéder à un serveur SSH comme client

Pour vous connecter à votre système debian, vous devez connaître l'adresse IP de
l'ordinateur et utiliser la commande SSH, comme ceci :

Ssh-p numéro_de_port username@address

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 » :

Ssh-p numéro de port root@address

Génération et échanges des clés publics

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.

Configuration de l'authentification par clé publique pour SSH

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 :

ssh-keygen -t rsa -b 4096

pour generer une clef dsa il suffit de modifier la commande en specifiant le type de fichier
comme suit :

ssh-keygen -t dsa -b 1024


Au cours du processus, vous serez invité à saisir un mot de passe. Il suffit d'appuyer sur Entrée
pour créer la clé. Par défaut, la clé publique est enregistrée dans le fichier ~/.ssh/id_rsa.pub,
tandis que ~/.ssh/id_rsa est la clé privée.

Maintenant, copiez le fichier id_rsa.pub sur l'hôte distant et ajoutez-le à ~/.ssh/authorized_keys


en entrant la commande :

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)

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 ;

apt-get install openssh-clients

Pour copier un dossier d’un client vers un serveur avec openssh, nous avons utilisé la
commande suivante :

Scp -r chemin _d’accès _source nom_d’utilisateur@adresse_IP_du_serveur:chemin


_d’accès de_destination

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 :

Scp -r nom_d’utilisateur@adresse_IP_du_serveur: chemin _d’accès _source chemin


_d’accès de_destination

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 »

Scp chemin _d’accès _source nom_d’utilisateur@adresse_IP_du_serveur:chemin


_d’accès de_destination

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 :

Scp nom_d’utilisateur@adresse_IP_du_serveur: chemin _d’accès _source chemin


_d’accès de_destination
Par exemple, dans la capture ci-dessus, nous voulons transférer le fichier FichierS qui se trouve
dans le répertoire /home/rabbi/Documents/DossierS du serveur rabbi avec pour adresse IP
192.168.56.101 vers le client dans le répertoire /home/michelle/Documents

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 .

Mise en garde sur la sécurité

Installer un serveur ssh permet aux utilisateurs d’accéder au système à distance, en


rentrant leur login et leur mot de passe (ou avec un mécanisme de clés). Cela signifie aussi
qu’un pirate peut essayer d’avoir un compte sur le système (pour accéder à des fichiers sur le
système ou pour utiliser le système comme une passerelle pour attaquer d’autres systèmes) en
essayant plein de mots de passes différents pour un même login (il peut le faire
automatiquement en s’aidant d’un dictionnaire électronique). On appelle ça une attaque en force
brute.

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

Vous aimerez peut-être aussi