Il va être abordé :
- un mot de passe pour l’accès en port console
- une mise en œuvre d’un accès SSH pour une administration à distance
- la création de comptes d’administration
I L’accès console via le port console
L’accès console permet de se connecter au switch via un port dédié. Il est le plus souvent de type série. C’est par ce port que la configuration du switch va être effectuée. Par défaut, l’accès se fait authentification.
Le but est d’en définir.
I.1 Une bannière
Mais avant de configurer une authentification, il sera intéressant de mettre une bannière.
Suivant les switchs ou routeurs CISCO les paramètres du « banner » seront plus ou moins fins.
Exemple pour un switch 2960 :
Switch_01(config)#banner ?
motd Set Message of the Day banner
Exemple pour un switch 3650 :
Switch(config)#banner ?
login Set login banner
motd Set Message of the Day banner
Donc pour une première bannière à l’ouverture de session :
Switch#configure terminal
Switch(config)#banner motd "Bienvenue sur le Switch. Attention aux modifications !"
Ce qui donne au démarrage donne l’écran suivant :
Switch con0 is now available
Press RETURN to get started.
Bienvenue sur le Switch. Attention aux modifications !
Switch>
I.2 Mot de passe
I.2.1 Implémentation d’un mot de passe
La manière la plus simple est la suivante :
Switch_01#conf t
Switch_01(config)#enable password test
A partir de maintenant un mot de passe sera demandé non pas à l’ouverture de session mais au passage dans le mode privilégié (après enable) :
Switch_01 con0 is now available
Press RETURN to get started.
Bienvenue sur le Switch : faire attention
Switch_01>enable
Password:
Switch_01#
I.2.2 Mot de passe chiffré
Cependant le mot de passe n’est pas chiffré comme on peut le voir dans la configuration du switch :
Switch_01#show running-config
Building configuration...
Current configuration : 2394 bytes
!
version 12.2
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname Switch_01
!
enable password test
!
....
Ainsi pour ajouter un mot de passe qui soit chiffré :
Switch_01#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch_01(config)#enable secret test2
Switch_01(config)#exit
Nous avons maintenant 2 mot de passe : un chiffré et un en clair
Switch_01#show running-config
Building configuration...
Current configuration : 2441 bytes
!
version 12.2
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname Switch_01
!
enable secret 5 $1$mERr$6JAcKA4./sQ7vpEDnPE0X0
enable password test
!
....
I.2.3 Suppression d’un mot de passe
Pour supprimer le mot de passe en clair :
Switch_01#conf t
Switch_01(config)#no enable password
Ainsi dans la configuration est la suivante :
Switch_01#show running-config
Building configuration...
Current configuration : 2420 bytes
!
version 12.2
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname Switch_01
!
enable secret 5 $1$mERr$6JAcKA4./sQ7vpEDnPE0X0
!
...
I.2.4 Chiffrer automatiquement les mots de passe
Pour être sur que les mots de passes seront chiffrés, il est possible d’activer le service « pasword-encryption »
Mais avant enlevons tous les mots de passes :
Switch_01#conf t
Switch_01(config)#no enable secret
Switch_01(config)#no enable password
Activons le service :
Switch_01#conf t
Switch_01(config)#service password-encryption
Définissons un mot de passe :
Switch_01#conf t
Switch_01(config)#enable password test
Vérifions :
Switch_01#show running-config
Building configuration...
Current configuration : 2399 bytes
!
version 12.2
no service timestamps log datetime msec
no service timestamps debug datetime msec
service password-encryption
!
hostname Switch_01
!
enable password 7 0835495D1D
!
...
Enfin nous pouvons avoir également un deuxième mot de passe :
Switch_01#conf t
Switch_01(config)#enable secret test2
Ce qui donne :
Switch_01#show running-config
Building configuration...
Current configuration : 2446 bytes
!
version 12.2
no service timestamps log datetime msec
no service timestamps debug datetime msec
service password-encryption
!
hostname Switch_01
!
enable secret 5 $1$mERr$6JAcKA4./sQ7vpEDnPE0X0
enable password 7 0835495D1D
!
...
II L’accès console via SSH
II.1 Préparation
Tout d’abord il faut donner une adresse IP au switch. Plus précisément à un VLAN (ici le 20) :
Switch_01#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch_01(config)#interface vlan 20
Switch_01(config-if)#ip address 192.168.0.254 255.255.255.0
Switch_01(config-if)#no shutdown
Switch_01(config-if)#exit
Ensuite il faut configurer un nom et un nom de domaine. Ci dessous pour le nome de domaine :
Switch_01#configure terminal
Switch_01(config)#ip domain-name domaine.local
II.2 Installation du service SSH
Création d’une clé :
Switch_01#conf t
Switch_01(config)#crypto key generate rsa general-keys modulus 1024
The name for the keys will be: Switch_01.domaine.local
% The key modulus size is 1024 bits
% Generating 1024 bit RSA keys, keys will be non-exportable...[OK]
*mars 4 15:9:38.655: %SSH-5-ENABLED: SSH 1.99 has been enabled
Activation du service ssh :
Switch_01#conf t
Switch_01(config)#ip ssh version 2
II.3 Création des comptes
La création de compte se fait comme suivant :
Switch_01#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch_01(config)#username admin1 secret test
Switch_01(config)#username admin2 secret test
Pour vérifier la présence de comptes : show running-config
Switch_01#show running-config
Building configuration...
Current configuration : 2519 bytes
!
version 12.2
no service timestamps log datetime msec
no service timestamps debug datetime msec
service password-encryption
!
hostname Switch_01
!
enable secret 5 $1$mERr$6JAcKA4./sQ7vpEDnPE0X0
enable password 7 0835495D1D
!
!
!
ip ssh version 2
ip domain-name domaine.local
!
username admin1 secret 5 $1$mERr$126VWMuSfhXn9GAlqkjPo/
username admin2 secret 5 $1$mERr$126VWMuSfhXn9GAlqkjPo/
!
...
Pour supprimer un compte :
Switch_01#conf t
Switch_01(config)#no username admin2
III.4 Forcer en SSH à s’authentifier
Par défaut, l’accès SSH est ouvert, c’est à dire qu’il ne demande pas à s’authentifier.
C’est au niveau des terminaux virtuels (vty) qu’il faut forcer une connexion par loggin/mot de passe. Au passage les commandes possibles sur les suivantes :
Switch_01(config)#line vty 0 15
Switch_01(config-line)#?
Virtual Line configuration commands:
access-class Filter connections based on an IP access list
databits Set number of data bits per character
exec-timeout Set the EXEC timeout
exit Exit from line configuration mode
flowcontrol Set the flow control
history Enable and control the command history function
logging Modify message logging facilities
login Enable password checking
motd-banner Enable the display of the MOTD banner
no Negate a command or set its defaults
parity Set terminal parity
password Set a password
privilege Change privilege level for line
speed Set the transmit and receive speeds
stopbits Set async line stop bits
transport Define transport protocols for line
Donc nous aurons la commande suivante :
Switch_01(config-line)#login local
Ainsi en ligne de commande, depuis un terminal :
C:\>ssh -l admin1 192.168.0.254
Password:
% Login invalid
Password:
Bienvenue sur le Switch : faire attention
Switch_01>
Ensuite on va faire en sorte que les accès par terminaux virtuels ne se fassent qu’en SSH :
Switch_01(config-line)#transport input ?
all All protocols
none No protocols
ssh TCP/IP SSH protocol
telnet TCP/IP Telnet protocol
Switch_01(config-line)#transport input ssh
III.5 Quelques options supplémentaires
Nous allons forcer un temps de session de 60s :
Switch_01#conf t
Switch_01(config)#ip ssh time-out 60
Puis n’accepter que 5 tentatives de connexion
Switch_01#conf t
Switch_01(config)#ip ssh authentication-retries 5
IV Accès console via port console : authentification par utilisateur
Nous avons vu précédemment comment activer l’accès par compte et mot de passe en SSH. Nous allons faire de même lors de l’utilisation du port console :
Switch_01#conf t
Switch_01(config)#line console 0
Switch_01(config-line)#login local
Ainsi en début de connexion nous aurons :
Switch_01 con0 is now available
Press RETURN to get started.
Bienvenue sur le Switch : faire attention
User Access Verification
Username: admin1
Password:
Switch_01>
V Journalisation des logs
Nous allons voir comment récupérer les messages d’alertes sur un serveur syslog dédié.
Ce serveur syslog aura l’adresse IP 192.168.0.110.
Dans un premier temps il faut définir le type de message à logguer. Dans notre cas il n’ya qu’un seul type. Cependant, sur un swicth physique, il existe différents niveaux (alerts, criticals, warning, etc.)
Switch_01#conf t
Switch_01(config)#logging trap ?
debugging Debugging messages (severity=7)
<cr>
Donc dans notre cas :
Switch_01(config)#logging trap debugging
Ensuite on déclare le serveur syslog :
logging host 192.168.0.110
C’est tout avec packet tracer. Avec un switch physique il est également possible de définir des tag pour les trames envoyées au serveur.
VI Pour aller plus loin…
Tout ce qui a été abordé est une ébauche. Pour aller plus loin dans la sécurisation des switchs, il est conseillé de lire la note technique de l’ANSI particulièrement bien détaillée : lien