dimanche 15 novembre 2015

COMMENT ACCEDEZ A DISTANCE A UN ROUTEUR OU UN SWITCH VIA LE PROTOCOLE TELNET ET OU SSH


Bonjour,

Aujourd’hui je vais vous montrer comment configurer un Routeur (ou un Switch) pour qu’on puisse y avoir accès à distance depuis n’importe quel endroit. 
 
Il est très avantageux de pouvoir manipuler, surveiller, contrôler et configurer un équipement tel qu’un Routeur ou un Switch à distance ; on parle de supervision ou d’administration à distance, on gagne énormément en termes de temps, d’argent, et même de rapidité d’intervention ; par exemple grâce à ce procédé on pourra prendre plus rapidement des mesures en cas d’incident ou de panne. 

Nous allons vous montrer comment configurer un équipement réseau tel qu’un Routeur ou un Switch pour qu’il soit manipulable (manageable) à distance par un administrateur ou un technicien réseau et ceci depuis son domicile par exemple ou ailleurs, outre le lieu où se trouve physiquement ou géographiquement l’équipement (Routeur ou Switch) en question, pour ce faire nous allons les configurer pour qu’ils puissent utiliser le protocole Telnet et ou SSH. 


Mais tout d’abord avant d’entrer proprement dans le vif du sujet, 

Qu’est ce que le protocole Telnet ?

Telnet (Terminal Network ou Telecommunication Network) est un protocole de type Client-Serveur permettant de communiquer avec un équipement réseau (Serveur, Routeur, …) à distance. 

Configuration de Telnet sur un Routeur ou un Switch

La configuration d’un équipement tel qu’un Routeur ou un Switch pour qu’on puisse y accéder à distance via Telnet, se fait comme suit :

(PS : les configurations suivantes sont faites au sein d’un Routeur Cisco série C7200)

Tout d’abord on attribue une adresse IP (Internet Protocol) à notre Routeur :

C’est cette adresse qu’on utilisera via Telnet pour nous connecter à notre périphérique ; une fois que nous avons attribué une adresse IP à notre Routeur, on poursuit en définissant avec la commande « username nom_utilisateur password mot_de_passe » un compte utilisateur et un mot de passe, qui nous serviront comme identifiants pour ouvrir une session Telnet à distance sur notre Routeur, on définit également un mot de passe qui nous donnera accès au mode « privilégié » sur notre Routeur grâce à la commande « enable secret (ou password) mot_de_passe »,    

Dans notre cas nous choisirons comme nom d’utilisateur jacques et comme mot de passe de la session Telnet pswdtelnet et enfin goueth nous fait office de mot de passe pour avoir accès au mode « privilégié » sur le Routeur. Une fois qu’on a définit nos identifiants, on active les lignes virtuelles VTY qui rendent possible la connexion à distance à un équipement comme un Routeur ou un Switch via un protocole d’accès à distance (Telnet, SSH, …), ensuite on précise grâce à la commande « login local » au Routeur que les seuls utilisateurs pouvant se connecter sur lui sont ceux qui ont déjà été préalablement enregistrés :   

Et voilà notre Routeur est prêt à être administrer à distance, désormais on peut avoir accès à notre Routeur de n’importe quel endroit où l’on se trouve du moment qu’il soit connecté au même réseau que nous, dans un Intranet ou même encore sur Internet, et surtout qu’on connaisse son adresse IP. Nous allons vite le vérifier ; 

Par exemple sur notre ordinateur (192.168.1.2) connecté au même réseau (192.168.1.0 / 25) que notre Routeur (192.168.1.1) :

On entre dans l’invite de commande (CMD), la commande Telnet suivie de l’adresse IP de l’équipement sur lequel on veut se connecter à distance, dans notre cas en occurrence on entre telnet suive de 192.168.1.1 qui est l’adresse IP de notre Routeur sur le réseau :

Ensuite une session Telnet se lance vers le Routeur, puis on est invité à entrer les identifiants  nom d’utilisateur et mot de passe pour pouvoir se connecter au Routeur, une fois qu’on a entrer le nom d’utilisateur et le mot de passe dans notre cas ici jacques et le mot de passe qui lui est associé pswdtelnet qu’on avait définit précédemment lors de la configuration du Routeur, on obtient l’accès en mode « utilisateur » ( > ) sur le Routeur, comme le montre la capture suivante :  

Avant de pouvoir entrer des commandes sur le Routeur, nous devons passer en mode « privilégié » ( # ), en tapant le mot clé enable, ensuite un mot de passe nous est demandé rappelez vous il s’agit du mot de passe définit plus haut avec la commande « enable secret mot_de_passe » dans notre cas c’est goueth :

Nous pouvons à présent contrôler, superviser, et même modifier la configuration de notre Routeur ; adresser ses interfaces réseau, définir des protocoles de routage, définir une politique de sécurité, … et ceci depuis notre ordinateur et ça tranquillement depuis notre domicile par exemple ou d’ailleurs.

Nous venons d’ouvrir une session Telnet à distance sur notre Routeur, et pouvons y travailler dessus comme si on n’y était directement ou physiquement connecté.  

Bien que Telnet soit assez pratique et bénéfique, pour les administrateurs réseau il n’est néanmoins pas fiable, car en effet les messages échangés au cours de la communication entre les équipements Client-Serveur utilisant le protocole Telnet sont passés « en clair », raison pour laquelle on dit de Telnet qu’il n’est pas sécurisé. En effet si un Hacker se trouvant dans le même réseau que nous vient à nous espionner avec un sniffer de réseau tel que Wireshark par exemple, il lui sera facile de récupérer les informations échangées entre le Routeur et nous  puisque celles-ci circulent « en clair » dans le réseau.

Si par exemple au moment où nous consultons les configurations de notre Routeur distant  depuis notre ordinateur,

Un Hacker sniffant le réseau au même moment pourra facilement récupérer et décoder le trafic pour voir « en clair » les informations échangées entre le Routeur et nous :

Comme le protocole Telnet n’est pas vraiment fiable en terme de confidentialité, on utilise majoritairement un autre protocole pour la communication à distance entre deux ou plusieurs périphériques réseau : le protocole SSH.

Qu’est ce que le protocole SSH ?

Secure Shell (SSH) est un protocole de communication sécurisé qui permet l’authentification et le chiffrement entre différents équipements distants. Le protocole SSH existe en deux versions : SSH version 1 et SSH version 2 ; la version 2 est plus sure d’un point de vue Cryptographique que son prédécesseur mais toutes les deux sont largement plus fiable d’un point de vue sécuritaire par rapport à Telnet.

Maintenant que vous en savez un peu plus sur le protocole Secure Shell, nous allons passer à sa configuration sur un Routeur :

Configuration de SSH sur un Routeur ou un Switch  

L’avantage majeur du protocole SSH par rapport au protocole Telnet est le fait qu’il apporte une couche de sécurité à la connexion à distance en chiffrant les données échangées. Pour implémenter SSH au sein d’un routeur ou un Switch il faut au préalable impérativement attribuer un nom dit nom d’hôte à l’équipement via la commande « hostname », ce nom sera utilisé pour générer la clé de chiffrement d’où son importance :

Ensuite comme précédemment lors de la configuration du protocole Telnet, on définit un compte utilisateur et un mot de passe qui nous serviront à ouvrir une session SSH sur le Routeur, puis on définit également un mot de passe qui nous donnera accès au mode « privilégié » sur le Routeur distant, 

Puis vient l’étape de la création de la clé de chiffrement, nous allons générer une clé de chiffrement RSA (Rivest Shamir Adleman) comme suit :
  • On définit un nom de domaine via la commande « ip domain-name nom_de_domaine» dans notre cas ce nom de domaine sera monblog, il faut noter aussi que ce nom de domaine sera également utilisé dans la génération de la clé de chiffrement RSA ; 
  • Puis on génère proprement dite la clé avec la commande « crypto key generate rsa », après on est invité à entrer la taille de la clé RSA à générer et qui sera utilisé pour le chiffrement des données, faut savoir également que plus la taille de la clé est grande plus le risque qu’elle soit déchiffrer est moins élevé ;
(PS : RSA est un algorithme de chiffrement à double clé (une clé publique et l’autre clé dite  privée), on parle aussi de cryptographie asymétrique)

On active le protocole SSH avec la commande « ip ssh version 1 ou 2 », l’IOS (Internetworking Operating System) de notre Routeur de test ne prenant pas en compte la version 2 de SSH, nous nous contenterons de la version 1 qui est toute aussi sécurisé et il faut noter également que les commandes sont les mêmes que lorsqu’on travaille avec la version 2 de SSH :

Puis on active les lignes virtuelles VTY pour permettre des connexions distantes au Routeur et on indique le protocole qui à le droit d’utiliser ces lignes VTY, ici en occurrence SSH via la commande « transport input ssh » et enfin tout comme avec Telnet on indique au Routeur d’autoriser uniquement les utilisateurs enregistrés sur le Routeur comme les seuls pouvant se connecter à distance sur lui toujours via la commande « login local » ;

A présent notre Routeur peut être accessible à distance via le protocole SSH depuis notre ordinateur. 

Sur l’ordinateur qui nous fait office d’administrateur à distance, il faut au préalable avoir installé un logiciel client SSH tel que PuTTY par exemple :

Ensuite on procède à quelques configurations de base sur le logiciel PuTTY, pour pouvoir se connecter sur le Routeur via SSH, soit la version du protocole SSH à utiliser, dans notre cas il s’agit de la version 1, puisque c’est celle qu’on a implémenté précédemment lors de la configuration du routeur : 

Puis le type de connexion (SSH), le port (22 qui est le port du protocole SSH) et l’adresse IP du Routeur (192.168.1.1), comme le montre la capture suivante :

Enfin nous cliquons sur le bouton « Open » pour démarrer une session SSH sur le Routeur : 

Après avoir entré les identifiants (le nom d’utilisateur et le mot de passe qui lui est associé) adéquats pour ouvrir la session SSH, il nous faut également entrer le mot de passe qui donne un accès en  mode « privilégié » au Routeur ;

Nous venons donc d’accéder à distance sur notre Routeur via le protocole SSH.

A présent si l’on teste la fiabilité du protocole SSH en termes de confidentialité et de sécurité face à un sniffer de trafic réseau tel que Wireshark par exemple : 

Nous nous rendons compte que même si un Hacker vient à intercepter les informations circulant entre le Routeur et nous, celles-ci ne lui seront d’aucune utilité parce qu’elles sont cryptées et de ce fait indéchiffrables.

Il est également possible de permettre au Routeur d’accepter les connexions distantes établies via le protocole SSH et Telnet en même temps, pour cela il faut au moment de la configuration des lignes virtuelles VTY, les indiquer qu’elles doivent prendre en considération deux types de trafic entrant à savoir SSH et Telnet, et ceci en complétant la commande « transport input » par les mots clés « telnet » et « ssh », comme le montre la capture suivante : 

Dorénavant vous savez comment configurer un équipement réseau tel qu’un Routeur ou un Switch pour qu’il soit accessible à distance et ceci via le protocole Telnet et ou SSH pour une sécurité optimale, vous savez également à partir d’un ordinateur et ce depuis votre domicile ou ailleurs comment accéder au Routeur ou au Switch distant grâce à une interface d’invite de commande (CMD) ou un client de connexion distant tel que PuTTY par exemple et surtout en connaissant  l’adresse IP de l’équipement distant sur lequel on souhaite se connecter. 

Merci d’avoir suivi le tutoriel jusqu’à la fin.

A très bientôt !!!

13 commentaires :

  1. Merci pour ces explications qui sont très techniques mais compréhensibles.

    RépondreSupprimer
  2. Quel est l'outil utilisé pour faire la configuration du routeur?

    RépondreSupprimer
    Réponses
    1. Bonjour Syl, dans le tuto je configure directement le routeur via son terminal ou l'invite de commande. Comme outil on peut utiliser HyperTerminal.

      Supprimer
  3. Salut Jacques, merci pour ce tuto. Ma question est de savoir si une fois connecté a distance via telnet au routeur(domicile), tout le traffic internet de mn pc(bureau) transitera par le routeur?

    RépondreSupprimer
  4. Bonjour Pierre, une fois connecté à distance à ton routeur le trafic internet de ton ordinateur ne transitera pas par le routeur, Telnet te permet juste ici d'utiliser ton ordinateur comme une sorte de moniteur à distance pour manager ton routeur. Je te conseille aussi de privilégier le protocole SSH qui est plus sécurisé pour des connexions aux équipements à distance.

    RépondreSupprimer
  5. merci beaucoup pour le tuto mais je veux savoir s'il existe une commande qui permet de récupérer l'empreinte du serveur ssh.

    RépondreSupprimer
    Réponses
    1. Bonjour Feriel, la commande que tu recherches doit être celle-ci: ssh-keygen -l, mais je ne pense pas qu'elle puisse être appliqué sur un Routeur.

      Supprimer
    2. Merci de votre réponse, oui j'ai déjà essayé cette commande sur unix mais j'ai pas trouvé de solution. Y-a-t il un code en python ou n'importe quelle programme ou solution qui peut me résoudre cette problème.
      Je vous remercie encore une fois.

      Supprimer
    3. Feriel, essaie de t'y prendre comme suit: tout d'abord entre la commande ls /etc/ssh/*key*.pub cette commande va t'afficher toutes les clés publiques de ton serveur SSH; tu vas obtenir par exemple: /etc/ssh/ssh_host_dsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_rsa_key.pub ensuite pour obtenir l'empreinte SSH d'une clé tu fais la commande ssh-keygen -l -f suivie de la clé, donc par exemple ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub

      Supprimer
    4. D'accord, je veux savoir s'il existe une possibilité de gérer l'empreinte à partir de la clé publique du routeur, en effet, après que j'ai géré la clé sous forme de PEM avec la commande :
      cryptokeygeneratersa [general-keys|usage-keys|signature|encryption][labelkey-label] [exportable][modulusmodulus-size][storagedevicename:][ondevicename:]
      4. cryptokeyexportrsa key-label pem {terminal|urlurl}{3des|des}passphrase
      le contenu ressemble au structure de clé publique:
      -----BEGIN RSA PUBLIC KEY-----
      MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFzMHJJikMbV77JfQv3wWOz+Hz
      gZrtCIpHQgXZcdUh5RE+lRoAW/q4LqT6M6VFwrcuPDT6b3bnMT/gYsHZ92zc+xX4
      mcTaiH8N0ndkfSGa1gAv8z3cMIy03guLaVkymrOia8LTEnZlbgM7LSgpZflaZ7/v
      hQdAYrfV0A4xkH6/WQIDAQAB
      -----END RSA PUBLIC KEY-----

      lorsque je copie cette structure dans un fichier key.pub et j’exécute cette commande j'ai un erreur que ce fichier ne s'agit pas d'un clé publique.
      Que je dois faire??

      Supprimer
    5. Bonjour Feriel, je crois avoir trouvé la solution à ton problème suit attentivement les étapes:
      une fois que t'a exporté ta clé au niveau du routeur avec par exemple la commande crypto key export rsa your_key pem terminal 3des passphrase
      la clé obtenue aura la structure suivante

      -----BEGIN PUBLIC KEY-----
      MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv3ktPtReMTpRKClAzINl
      eeX5v ...
      -----END PUBLIC KEY-----
      -----BEGIN RSA PRIVATE KEY-----
      Proc-Type: 4,ENCRYPTED
      DEK-Info: DES-EDE3-CBC,F6495543FBD6461D

      WlL00zkVJkR2gajoppEKQjSeDK15BDahfqd41tmBHl88ezYNXOCNNuSX6/2W0AGj
      gq...
      -----END RSA PRIVATE KEY-----

      copie entièrement le résultat (la clé publique et privée) et colle par exemple dans un fichier your_key.pem sous Linux. L'erreur que tu rencontres depuis est due au fait que tu essaies de récupérer l'empreinte d'une clé qui est au format .pem
      or si tu examines la structure des clés publiques (.pub) qui se trouvent sous ton système Linux donnée avec la commande ls /etc/ssh/*key*.pub tu vas remarquer que leur structure est différente de ta clé (.pem) extraite du routeur, donc pour résoudre ton problème tu dois tout d'abord convertir ta clé .pem issue de ton routeur au format d'une clé .pub; Donc après avoir attribuer les droits appropriés (pour éviter une autre erreur) avec la commande chmod 400 your_key.pem, tu convertis ta clé avec la commande ssh-keygen -y -f your_key.pem > your_key.pub à la suite le système va te demander d'entrer le passphrase; ensuite le système génère alors ta clé your_key.pub; enfin tu peux donc utiliser la commande ssh-keygen -l -f your_key.pub pour obtenir l'empreinte.

      Supprimer
    6. En bref pour résumer, voici les étapes à suivre:

      1)- copie entierement le contenu du résultat de la clé publique (les parties RSA PUBLIC KEY et RSA PRIVATE KEY) de ton routeur;
      2)- colle le contenu par exemple dans un fichier your_key.pem sous Linux ;
      3)- attribues les droits à ton fichier avec la commande chmod 400 your_key.pem ;
      4)- convertis la clé .pem au format .pub avec la commande ssh-keygen -y -f your_key.pem > your_key.pub;
      5)- enfin, génère l'empreinte de ta clé avec la commande ssh-keygen -l -f your_key.pub

      Supprimer
  6. d'accord merci beaucoup j'ai déjà essayé ces étapes et ils sont bien marché.
    Mais y-a-t il un code que je peut l'exécuté sous windows comme un code paython.
    Merci encore une fois pour votre aide Monsieur

    RépondreSupprimer