Sécuriser son matériel Cisco

To the non-french speaker, note that you can translate the articles using the Google Trad widget situated at the bottom of all pages.


Dans cet article nous allons voir les bases de la Command Line Interpreter (CLI). La CLI c’est l’équivalent du shell sur Linux : un invite de commande sur lequel on entre… des commandes. Nous verrons aussi comment restreindre l’accès à nos différents matériels Cisco.

Pour commencer, sachez qu’il y a quatre méthodes pour se connecter à un matériel Cisco :

-Telnet : c’est une connexion à distance non sécurisée.
-SSH : c’est une connexion à distance sécurisée.
-Port Console : on se connecte directement au port console du matériel (donc on est à proximité).
-Port auxiliaire : encore une connexion à distance qui, cette fois, utilise un modem.

Bon pour des soucis de sécurité on va tout simplement oublier Telnet, les mots de passe sont envoyés en clair sur le réseau donc bon…

Pour commencer nous allons configurer un routeur. Pour cela cliquez sur un routeur dans la barre des matériels et déposez le sur l’espace de travail :

routeur.png

Cliquez dessus puis aller dans l’onglet CLI. Vous devriez avoir ceci :

configauto.png

Entrez « no » puis tapez sur « entré » deux fois, vous aurez ceci :

base.png

Quand vous configurez un matériel informatique de chez Cisco vous avez deux modes de commande : le mode d’exécution utilisateur et le mode d’exécution privilégié (l’équivalent de root sous Unix). Lorsque vous serez en mode utilisateur votre CLI ressemblera à ça :

Router>

Tandis que lorsque vous serez en mode exécuteur privilégié, la CLI ressemblera à ça :

Routeur#

Ici j’ai pris le cas du routeur parce que c’est ce sur quoi nous allons travailler mais le principe est le même pour tous les matériels. Par exemple si je suis en mode privilégié sur un Switch j’aurais ceci :

Switch#

Du coup vous vous en doutez, quand vous êtes simple utilisateur vous avez moins de possibilités qu’en mode privilégié. Communément on dit même que le mode utilisateur est un mode de vision. Entendez par là qu’on ne fera presque jamais de modification sur la configuration du matériel via ce mode.

Pour passer du mode utilisateur au mode privilégié nous utiliserons la commande :

enable

enable.png

Pour pouvoir configurer le matériel il va falloir accéder au mode de configuration globale. A partir de ce mode nous pourrons nous rendre dans plusieurs sous-modes de configuration comme par exemple le mode de configuration des interfaces réseau.

La commande pour accéder au mode de configuration globale est la suivante :

configure terminal

modeconfglob.png

La première chose à faire va être de renommer notre matériel. Bah ouais, on va pas laisser « routeur4 » comme nom. A la place on voudrait mettre routeurTest. Pour cela on va utiliser la commande hostname :

hostname routeurTest

hostname.png

A savoir que le nom d’hôte doit commencer par une lettre et ne pas comporter d’espace. Un nom explicite est à privilégier pour des raisons de bon sens (se retrouver dans son architecture, pour le SSH etc…)

Ensuite on voudrait bien sécuriser l’accès à notre routeur. Et en premier lieu il va être important de mettre un mot de passe au mode privilégié. Pour cela il existe une commande :

enable secret votremotdepasse

Du coup si je quitte le mode privilégié (exit) et que j’essaye d’y retourner, le système d’exploitation va me demander un mot de passe:

secuprivi.png

Ensuite on va sécuriser l’accès au mode d’exécution utilisateur via le port console en lui mettant aussi un mot de passe. Pour ce faire il va falloir passer en mode de configuration « line console » grâce à cette commande :

line console 0

secuutil.png

Puis on applique le mot de passe via ces commandes :

password votremotdepasse
login

La commande « login » indique au routeur que si quelqu’un essaye de se connecter au matériel, il devra avoir en sa possession le mot de passe que nous venons de spécifier (soit « votremotdepasse »).

Il existe différentes méthodes d’authentification et donc différentes commandes. Voici un screenshot que j’ai fait d’un thread sur le forum Cisco qui les détaille :

loginscreen.png

Du coup si on essaye de se connecter au routeur on obtient ceci :

accessuser.png

Dernier mot de passe à paramétrer, celui de l’accès à distance au mode d’exécution utilisateur via SSH/Telnet. Cette configuration se fait dans le sous mode de configuration line vty. Voici les commandes à entrer :

configvty.png

Dans un premier temps on entre dans le mode de configuration terminal. Puis dans le mode de configuration vty (les interface virtuelles). Les paramètre 0 et 15 spécifient que l’on configure le mot de passe pour les 16 sessions utilisables à distance. Cela veut dire que 16 administrateurs peuvent se connecter en même temps !


EDIT du 29/05 : le nombre d’interfaces virtuelles dépend du matériel utilisé, si vous ne savez pas de combien d’interfaces vty disposez, vous pourrez toujours utiliser cette commande :

line vty 0 ?

vty.png

Ici on dispose donc de 16 interfaces.


On spécifie le mot de passe à utiliser à l’aide de la commande password et on termine avec la commande login.

Super ! On a configuré notre routeur et à priori il est sécurisé. Sauf qu’en fait pas tellement. En effet de base les mots de passe sont stockés en clair. Ce qui fait que lorsque l’on affiche le fichier de configuration courant via cette commandes :

show running-config

On a accès aux mots de passe pour le compte privilégié sous la forme d’un hash MD5 :

privi.png

Ainsi que celui d’accès à la console en clair :

vty.png

Il va donc falloir chiffrer tout ça et pour cela on va utiliser une commande simple :

service password-encryption

Si on ré-affiche le fichier de configuration on remarque que le mot de passe est chiffré.

chiffrement.png

Sachez cependant que votre matériel n’est pas sécurisé à 100% si vous n’utilisez pas des mots de passe compliqués. Vous avez peut-être remarqué la présence d’un « 5 » et d’un « 7 » près du mot clé password. Ce chiffre indique le type de protection de mot de passe utilisé.

Le 5 indique que le mot de passe est protégé via l’utilisation de la fonction de haschage MD5 tandis que le 7 indique un chiffrement maison de chez Cisco. Or comme nous l’avons vu dans cet article, les hash MD5 sont crackables. Quant à la protection maison de Cisco elle est facilement reversable. Il existe même des outils en ligne :

crack.png

Du coup il faut choisir de bons mots de passe avec des lettres minuscules, majuscules des chiffres, des caractères spéciaux de manières à ralentir le plus possible un éventuel pirate. De plus, en lisant la documentation Cisco, j’ai appris qu’on pouvait ajouter une bannière qui s’affiche dès que l’on essaye d’ouvrir une session.

On peut donc y afficher un message d’avertissement disant que « toute intrusion sur ce matériel est puni par la loi ».

Pour le faire il faudra utiliser la commande suivante :

banner motd "Toute intrusion sera punie."

banner.png

Voilà ! Avec ça l’accès au matériel est correctement limité.

Maintenant que la configuration du routeur est faite il va falloir la sauvegarder. Attention ! Toutes les modifications que nous avons faites pour le moment sont stockées sur de la mémoire volatile du coup si on éteint le routeur… On perd tout !

Sur tous les matériels Cisco on retrouve quatre types de mémoire. Pour voir les deux premières il suffit d’entrer la commande suivante :

dir ?

mémoire

Ces deux mémoires sont non volatiles. La première contient les fichiers permettant de faire fonctionner l’OS Cisco tandis que la seconde contient le fichier de configuration startup autrement dit le fichier qui charge la configuration du routeur au lancement de celui-ci.

La troisième mémoire est la mémoire RAM, qui est volatile et sur laquelle est inscrit l’ensemble des modifications que nous avons fait jusqu’à maintenant. Sur la RAM on retrouve donc la configuration courante (la running-config) ainsi que d’autres éléments comme les table de routages.

La dernière est une mémoire ROM qui contient le minimum permettant de lancer l’OS Cisco si la mémoire flash venait à être endommagée. Vous trouverez plus d’informations sur ces mémoires ici.

Il va donc falloir sauvegarder la running-config dans la startup-config de telle manière que lorsque l’on rallumera le routeur, toutes les modifications faites seront prises en compte. Et pour cela on utilise la commande suivante :

copy running-config startup-config

copy.png

Et maintenant si on éteint/rallume le routeur on retrouvera notre configuration :

reboot.png

Que faire en cas d’erreurs de manipulation ?

Premièrement vous pouvez effacer la running-config en lançant la commande « reload » qui va permettre de restaurer la startup-config. Si vous avez enregistré la running-config dans la startup-config eh bien vous n’avez plus qu’à remettre la startup-config à 0 via cette commande :

erase startup-config

Et à recommencer ! Voilà ! En quelques minutes nous avons sécuriser l’accès à distance, l’accès au port console et le mode d’exécution privilégié !

3 commentaires

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s