Objectifs de certification

CCNA 200-301

  • 5.3 Configurer l’accès aux périphériques avec des mots de passe

  • 5.4 Décrire les éléments des politiques de sécurité comme la gestion, la complexité, et les alternatives aux mots de passe (authentications multifacteur, par certificats, et biométriques)


Configuration et gestion des consoles Cisco IOS

Ce chapitre traite du sujet de la configuration et de la gestion des consoles locales et distantes (Telnet et SSH) des périphériques Cisco ainsi que de leur sécurisation.

1. Consoles physiques et distantes

1.1. Lignes

  • lignes physiques : connexion série asynchrone (port con0), connexion série avec contrôle de flux (port aux0 sur les routeurs et absent des commutateurs), ou encore une carte serveur de console Cisco “Network Module” (NM-16A ou NM-32A) à insérer dans un routeur de concentration et à utiliser avec un câble octal de type “CAB-OCTAL-ASYNC=” ou “CAB-OCTAL-MODEM=”.
  • lignes distantes : protocoles TCP/IP qui offrent un service de console comme SSH mais aussi bien d’autres antécédents que l’on ne recommande plus d’utiliser aujourd’hui (Telnet, Rlogin, Rsh, etc.).
Understanding 16- and 32-Port Async Network Modules

Source de l’image : Understanding 16- and 32-Port Async Network Modules.

La commande show line permet de visualiser les consoles disponibles sur le périphérique Cisco. On trouve trois types de “lignes” :

  • CTY : correspond au port con 0.
  • AUX : correspond au port aux 0
  • VTY : correspond à toutes les connexions distantes qui ont ouvert un port virtuel de vty 0 à vty 4.

Dans cet exemple, on trouve une connexion sur le terminal 0 (connexion console physique) et une autre sur le terminal 2 (connexion Telnet).

#show line
   Tty Typ     Tx/Rx    A Modem  Roty AccO AccI   Uses   Noise  Overruns   Int
*    0 CTY              -    -      -    -    -      0       1     0/0       -
     1 AUX   9600/9600  -    -      -    -    -      0       0     0/0       -
*    2 VTY              -    -      -    -    -      2       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       -

Une configuration par défaut donne deux consoles physiques et cinq terminaux virtuels de vty 0 à vty 4.

#show run | begin line
line con 0
line aux 0
line vty 0 4
 login
 transport input none
!
end

Vérification de la configuration du terminal courant.

Dans une session con 0

SW0#show terminal
Line 0, Location: "", Type: ""
Length: 24 lines, Width: 80 columns
Status: PSI Enabled, Ready, Active, Automore On
Capabilities: none
Modem state: Ready
Group codes:    0
Modem hardware state: CTS* noDSR  DTR RTS
Special Chars: Escape  Hold  Stop  Start  Disconnect  Activation
                ^^x    none   -     -       none
Timeouts:      Idle EXEC    Idle Session   Modem Answer  Session   Dispatch
               00:10:00        never                        none     not set
                            Idle Session Disconnect Warning
                              never
                            Login-sequence User Response
                             00:00:30
                            Autoselect Initial Wait
                              not set
Modem type is unknown.
Session limit is not set.
Time since activation: 00:13:11
Editing is enabled.
History is enabled, history size is 20.
DNS resolution in show commands is enabled
Full user help is disabled
Allowed input transports are none.
Allowed output transports are lat pad telnet rlogin nasi ssh.
Preferred transport is lat.
Shell: disabled
Shell trace: off
No output characters are padded
No special data dispatching characters

Avec une connexion SSH distante.

SW0#show terminal
Line 2, Location: "", Type: "vt100"
Length: 24 lines, Width: 80 columns
Baud rate (TX/RX) is 9600/9600
Status: PSI Enabled, Ready, Active, No Exit Banner, Automore On
  Notify Process
Capabilities: none
Modem state: Ready
Group codes:    0
Special Chars: Escape  Hold  Stop  Start  Disconnect  Activation
                ^^x    none   -     -       none
Timeouts:      Idle EXEC    Idle Session   Modem Answer  Session   Dispatch
               00:10:00        never                        none     not set
                            Idle Session Disconnect Warning
                              never
                            Login-sequence User Response
                             00:00:30
                            Autoselect Initial Wait
                              not set
Modem type is unknown.
Session limit is not set.
Time since activation: 00:00:13
Editing is enabled.
History is enabled, history size is 20.

1.2. Consoles locales

On trouve deux ports “console”, con0 et aux0 sur les routeurs la plupart du temps sur la façade arrière à proximité des interfaces de communication. Le second port auxiliaire totalement indépendant du premier gère le contrôle de flux et se connecte à l’interface DB-25 d’un modem analogique.

Façade d'un routeur Cisco ISR 4451-X
  • (1) : Interface G0 de gestion (management)
  • (2) : Ports USB type B pour du stockage
  • (3) : Ports USB type A et RJ-45 con 0 comme console locale
  • (4) : Port auxiliaire aux 0 pour connecter un modem ananlogique.

image !!!!

On trouve un seul port con0 sur les commutateurs Cisco, à l’arrière du périphérique. à l’opposé de l’alimentation électrique.

image !!!!

Configuration en ROM Monitor Mode … –> référence

logging synchronous

1.3. Authentification nulle

1.4. Authentification par mot de passe

Cette méthode est ici pour mémoire et ne doit plus être utilisée

1.5. Authentification par nom d’utilisateur

1.6. Configuration d’un service telnet sous Cisco IOS

1.7. Connexion à un routeur en Telnet

2. Accès distant Secure Shell (SSH)

Secure Shell (SSH) est un protocole qui permet de sécuriser les communications de données entre les ordinateurs connectés au réseau en assurant la confidentialité, l’intégrité, l’authentification et l’autorisation des données dans des tunnels chiffrés. Il utilise TCP habituellement sur le port 22, mais il peut en utiliser d’autres simultanément. Il est fondé sur le protocole TLS. On utilise aujourd’hui la version SSH-2. La version SSH-1 est à éviter. Il supporte les authentifications centralisées (PAM), locale avec mot de passe ou sans (par le biais d’échange de clés).

2.1. Cas d’usage du protocole SSH

Les sous-protocoles SCP et SFTP offrent des services de transfert de fichiers.

On peut l’utiliser comme console distante à la manière de Telnet, RSH ou Rlogin.

On peut y transférer des ports et utiliser le service comme proxy ou comme solution VPN.

On peut transférer des sessions X graphiques dans un tunnel SSH.

Il s’intègre à des logiciels comme ansible, systemd, x2go, …

2.2. Sécurité de SSH

En termes de cible d’attaque, le port est très sollicité par les robots qui “scannent” les réseaux publics en quête de configurations faibles, nulles, négligées ou exploitables. Il peut arriver qu’un port SSH exposé publiquement soit l’objet de tentatives de “Déni de Service” (DoS) ou de connexions “Brute Force” qui rendent le service inaccessible.

Il est conseillé d’auditer, voire de filter les accès au service avec un logiciel comme fail2ban, des sondes IPS/IDS snort, surricate ou encore d’autres. Un pot de miel tel que cowrie peut être un outil à manipuler avec précaution. Des projets comme Modern Honey Network (MHN) peuvent faciliter le déploiement de telles sondes.

Les authentifications par clé sans mot de passe, les restrictions dans la configuration du serveur SSH ainsi qu’une politique d’accès et de mot de passes forts sont recommandés.

2.3. Configuration d’un serveur SSH en Cisco IOS

ref: https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/sec_usr_ssh/configuration/15-mt/sec-usr-ssh-15-mt-book/sec-usr-ssh-sec-shell.html

  • FQDN
  • crypto key gen rsa mod (crypto key zeroize rsa)
  • activer la version 2
  • Configurer un utilisateur
  • Configurer les lignes VTY
  • ip ssh {timeout secondsauthentication-retries integer}
  • show ip ssh
  • show ssh
  • debug ip ssh
ip ssh timeout 60
ip ssh authentication-retries 2
hostname R1
ip domain-name entrepise.lan
enable secret <secret>
username <user> privilege 15 algorithm-type sha256 secret <secret>
crypto key generate rsa modulus 2048
ip ssh version 2
line vty 0 4
 login local
 transport input ssh

2.4. Connexion en SSH à partir d’un client Cisco IOS

SSH command parametersDescription
-vspecifies whether we are going to use version 1 or version 2
-c {3des | aes128-cbc | aes192-cbc j aes256-cbc}specifies the encryption you are going to use when communicating with the router. This value is optional; if you choose not to use it, the routers will negotiate the encryption algorithm to use automatically
-l usernamespecifies the username to use when logging in to the remote router
-m {hmac-md5 | hmac-md5-96 | hmac-sha1 | hmac-sha1-96}specifies the type of hashing algorithm to use when sending your password. It is optional and if you do not use it, the routers will negotiate what type of hashing to use.

For example the command “ssh -v 2 -l admin 10.1.1.1” means “use SSH version 2 to connect to a router at 10.1.1.1 with username “admin”.

2.5. Logiciels SSH pour Windows

Windows 10 intègre nativement les logiciels OpenSSH.

2.6. Reverse SSH en Cisco IOS

Reverse SSH : https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/sec_usr_ssh/configuration/15-mt/sec-usr-ssh-15-mt-book/sec-rev-ssh-enhanmt.html

3. Sécurisation des accès de gestion

3.1. Timeout sur les consoles

Router1(config-line)#exec-timeout 240 0
absolute-timeout 5
logout-warning 30

3.2. Bannières Cisco IOS

banner exec ^C
********************
* Banner exec        *
********************^C
banner incoming ^C
********************
* Banner incoming    *
********************^C
banner login ^C
********************
* Banner login       *
********************^C
banner motd ^C
********************
* Banner motd        *
********************^C

Seulement le protocole activé (????), les options de la commande banner

Option de la commande bannerTelnetSSH v1 seulementSSH v1 et v2SSH v2 seulement
banner loginS’affiche avant l’authentification.Ne s’affiche pas.S’affiche avant l’authentification.S’affiche avant l’authentification.
banner motdS’affiche avant l’authentification.S’affiche après l’authentification.S’affiche après l’authentification.S’affiche après l’authentification.
banner execS’affiche après l’authentification.S’affiche après l’authentification.S’affiche après l’authentification.S’affiche après l’authentification.

Source : http://www.cisco.com/c/en/us/support/docs/security-vpn/secure-shell-ssh/4145-ssh.html#banners

On peut utiliser différents “Tokens” qui s’utilisent comme des variables d’environnement dans les bannières.

TokenDescription
$(hostname)Nom du périphérique
$(domain)Nom de domaine du périphérique
$(line)Numéro de ligne de terminal
$(line-desc)Description de la ligne de terminal
Router1(config-line)#no motd-banner
Router1(config-line)#no exec-banner

3.3. Filtrage VTY

(config)#ip access-list extended VTY
(config-ext-nacl)#permit ip host 172.16.0.1 any
(config-ext-nacl)#permit ip 192.168.56.0 0.0.0.255 any
(config-ext-nacl)#exit
(config)#line vty 0 4
(config-line)#ip access-class VTY in

3.4. Authentification SSH par clé RSA

Le client s’authentifie avec sa clé privée. Le serveur authentifie le client avec la clé publique (du client installée sur le serveur).

Sur le client :

ssh-keygen -b 1024
cat .ssh/id_rsa.pub

Sur le matériel cisco :

ip ssh pubkey-chain
 username root
 key-string
<copie de id_rsa.pub>

et plusieurs fois la commande exit.

3.5. Gestion des connexions

Voir les utilisateurs connectés :

SW0#show users
    Line       User       Host(s)              Idle       Location
*  0 con 0                idle                 00:00:00
   2 vty 0     root       idle                 00:00:14 192.168.1.254

  Interface    User               Mode         Idle     Peer Address


3.6. Désactivation des consoles

To completely disable access via the router’s AUX port, use the following set of commands:

Router1#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#line aux 0
Router1(config-line)#transport input none
Router1(config-line)#no exec
Router1(config-line)#exec-timeout 0 1
Router1(config-line)#no password
Router1(config-line)#exit
Router1(config)#end
Router1#
You can disable access to the router through the VTY lines as follows:

Router1#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#access-list 98 deny any log
Router1(config)#line vty 0 4
Router1(config-line)#transport input none
Router1(config-line)#exec-timeout 0 1
Router1(config-line)#no exec
Router1(config-line)#access-class 98 in
Router1(config-line)#exit
Router1(config)#end
Router1#

3.7. Logguer des accès

Agir sur l’ACL vty deny ip any any log et deny ipv6 any any log.

4. Annexe pour mémoire

Niveau de privilège

… Ref CCNA Security

Accès au CLI “Role Based” (view)

… Ref CCNA Security

Authentifications AAA / Radius

… Ref CCNA Security