Il existe différents types d'accès : l'accès série (port console ou auxiliaire) et l'accès distant (telnet ou ssh).
Pour la première configuration il faut se connecter au port console avec le câble fourni par Cisco. Sous Windows on ouvre l' Hyper terminal, on saisit un nom de connexion bidon, on clique sur “default” et on se connecte. Il faut parfois taper “entrée” pour activer l'affichage. Normalement si le switch n'est pas configuré il ne faut pas saisir de mot de passe pour se logguer ni pour passer en mode privilégié.
Switch> enable
Switch#
La première chose à faire Pour plus de simplicité, on peut se passer de la commande enable en définissant le niveau d'exécution d'un utilisateur à 15 (enable).
En mode config on va saisir un nouveau mot de passe pour le mode privilégié. On a le choix entre, respectivement, le garder en clair dans la config ou le hacher :
Switch(config)# enable password <pwd> Switch(config)# enable secret <pwd>
Si les 2 sont configurés, le enable secret
est prioritaire ; c'est donc celui-là qu'il faudra saisir.
Pour plus de simplicité, on peut définir un utilisateur comme “superadmin”, il arrivera directement en mode enable après s'être loggué ; pour cela il suffit de préciser son niveau d'exécution à 15 (= enable) :
Switch(config)# username admin privilege 15 password 0 <mdp_admin>
Par la même occasion, on peut supprimer l'usage de la commande enable puisque les utilisateurs lambda n'en ont pas l'utilité, et “admin” n'en a plus besoin puisqu'il se connecte directement en mode privilégié.
Switch(config)#privilege exec level 15 enable # NB : en fait on interdit l'usage de la commande "enable" aux utilisateurs de privilège < 15
On veut mettre en place un mot de passe pour se connecter sur la ligne console (CTY) :
Switch(config)# line console 0 Switch(config-line)# login Switch(config-line)# password <pwd>
login
indique une authentification par mot de passe, password
précise le mot de passe.
La principale différence entre les ports console (CTY) et auxiliaire (AUX) est que le port auxiliaire supporte le contrôle de flux hardware ; le port console non. Le contrôle de flux permet un contrôle des transmissions, idéal pour une connexion “rapide” (historiquement bien sûr !) telle qu'un modem, alors que le port console suffit pour une connexion série @ 9600bps.
Switch(config)# line aux 0 Switch(config-line)# login Switch(config-line)# password <pwd>
Elles correspondent à des lignes virtuelles (des connexions non physiques comme le port console ou AUX), celles utilisées quand un utilisateur se connecte en telnet ou ssh.
Tant qu'un mot de passe n'est pas spécifié (via la console), les sessions telnet sont interdites pour des problèmes de sécurité. De plus on ne peut y accéder que quand on a spécifié une adresse IP d'administration au switch (c'est logique puisqu'on y accède par le réseau).
Souvent les routeurs ne comprennent que 5 lignes vty (line vty 0 4
), alors que les switchs peuvent en avoir 8 ou 16 lignes (line vty 0 15
):
P4SW#show line Tty Typ Tx/Rx A Modem Roty AccO AccI Uses Noise Overruns Int * 0 CTY - - - - - 0 0 0/0 - * 1 VTY - - - - - 4 0 0/0 - 2 VTY - - - - - 0 0 0/0 - 3 VTY - - - - - 0 0 0/0 - 4 VTY - - - - - 0 0 0/0 - 5 VTY - - - - - 0 0 0/0 - 6 VTY - - - - - 0 0 0/0 - 7 VTY - - - - - 0 0 0/0 - 8 VTY - - - - - 0 0 0/0 - 9 VTY - - - - - 0 0 0/0 - 10 VTY - - - - - 0 0 0/0 - 11 VTY - - - - - 0 0 0/0 - 12 VTY - - - - - 0 0 0/0 - 13 VTY - - - - - 0 0 0/0 - 14 VTY - - - - - 0 0 0/0 - 15 VTY - - - - - 0 0 0/0 - 16 VTY - - - - - 0 0 0/0 -
On veut les configurer tous les VTYs ensemble :
Switch(config)# line vty 0 15 Switch(config-line)# login Switch(config-line)# password <pwd>
On peut spécifier le type de protocole qu'on veut utiliser (ici ssh et telnet), ainsi que le idle timeout avant déconnexion (ici 60 min) :
Switch(config)# line vty 0 15 Switch(config-line)#transport input telnet ssh Switch(config-line)#exec-timeout 60
Dans les 3 cas ci-dessus, on demande un mot de passe pour établir une connexion ; si on veut demander aussi un login, il faut rajouter la directive login
:
Switch(config)#line vty 0 15 Switch(config-line)login local
On spécifie de nom d'utilisateur et son mot de passe avec la commande :
Switch(config)#username toto password toto
Les lignes vty doivent être configurées pour accepter les connexions SSH entrantes (cf § précédent)
Le SSH ne fonctionne qu'après avoir configuré un hostname et un nom de domaine :
Switch(config)# ip domain-name <nom_de_domaine> Switch(config)# hostname toto
On peut préciser certains paramètres (facultatif) :
Switch(config)#ip ssh version 2 Switch(config)#ip ssh time-out 120 Switch(config)#ip ssh authentication-retries 3
Autres paramètres intéressants :
# activer les logs d'événements SSH
Switch(config)# ip ssh logging events
# logguer les authentifications
Switch(config)#login on-failure log
Switch(config)#login on-success log
# mettre en place un keepalive TCP pour détecter et clore les connexions coupées
Switch(config)#service tcp-keepalives-in
# activer le SCP pour les transferts de fichiers
Switch(config)#ip scp server enable
Configuration de l'accès SSH :
Switch(config)# aaa new-model
Génération d'un couple de clés RSA :
Switch(config)# crypto key generate rsa general-keys [modulus <360-2048>]
On créé ensuite un compte local :
Switch(config)# username <login> password <pwd>
# afficher les sessions courante sur l'équipement show sessions # afficher la liste des utilisateurs connectés show users # lister l'état des lignes VTY show line # déconnecter une session disconnect <n°_de_session>
Pour se prémunir des attaques de force brute, c'est-à-dire un attaquant qui essai une myriade de mots de passe jusqu'à trouver le bon, on peut bloquer les accès temporairement de son IP :
# blocage pendant 900s de l'IP s'il réalise 5 tentatives infructueuses en moins de 120s Switch(config)# login block-for 900 attempts 5 within 120 # définir un temps minimal de reconnexion (ici 5s) après une tentative de login ratée Switch(config)# login delay 5