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 (portaux0
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.).
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 portcon 0
. -
AUX
: correspond au portaux 0
-
VTY
: correspond à toutes les connexions distantes qui ont ouvert un port virtuel devty 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.
- (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 seconds authentication-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 parameters | Description |
---|---|
-v | specifies 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 username | specifies 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
- Utilitaire Putty : http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
- Utilitaire CyberDuck : https://cyberduck.io/
- Utilitaire WinSCP : https://winscp.net/eng/docs/lang:fr
- Serveur X Xming : https://sourceforge.net/projects/xming/
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 banner | Telnet | SSH v1 seulement | SSH v1 et v2 | SSH v2 seulement |
---|---|---|---|---|
banner login | S’affiche avant l’authentification. | Ne s’affiche pas. | S’affiche avant l’authentification. | S’affiche avant l’authentification. |
banner motd | S’affiche avant l’authentification. | S’affiche après l’authentification. | S’affiche après l’authentification. | S’affiche après l’authentification. |
banner exec | S’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.
Token | Description |
---|---|
$(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