Aide-mémoire : Configurer SSH sur des IOS Cisco de routeurs

Source : http://www.cisco.com/en/US/tech/tk583/tk617/technologies_tech_note09186a00800949e2.shtml

N’étant pas un fan absolu de la circulation en clair de mes mots de passes, je préfère que les connexions entre moi et mes machines soient un minimum chiffrées. Il n’ait pas besoin de préciser que je n’apprécie que moyennement de me connecter à mon routeur Cisco en Telnet. Il est cependant possible de mettre en place sur le routeur, selon l’IOS installé, un serveur SSH. L’aide mémoire qui suit est une compilation et une traduction (depuis les pages officiels Cisco) des informations utiles afin de mettre en place et de maintenir l’accès aux routeurs Cisco par terminal via SSH.

[toc title= »Table des matières » hint= »hover hint »
class= »extra CSS class » style= »width: 50% »]

Prérequis

L’image IOS CISCO doit être une k9 (crypto), qui supporte le SSH. Par exemple, l’image IOS c870-advsecurityk9-mz.124-4.T7.binest une image k9 (crypto).

Authentification avec SSH

Les commandes nécessaires afin de configurer la partie serveur SSH sur un IOS Cisco sont :

!--- Step 1: Configurer le nom du routeur, si ce n’est pas déjà fait.
hostname Burt
 
!--- La commande aaa new-model implique la demande d’un utilisateur local et d’un mot de passe sur le routeur
!--- pour être utilisé en l'absence d'autres déclarations AAA.
aaa new-model
username cisco password 0 cisco
 
!--- Step 2: Configurer le domaine DNS du routeur.
ip domain-name rtp.cisco.com
 
!--- Step 3: Générer la clé publique SSH.
crypto key generate rsa
ip ssh time-out 60
ip ssh authentication-retries 2
 
!--- Step 4: Par défaut, le transport VTY est Telnet. Dans ce cas, Telnet est désactivé et seul SSH est supporté (Optionnel). 
line vty 0 4
transport input SSH
 
!--- A la place de aaa new-model, vous pouvez utiliser la commande login local.

La commande show crypto key mypubkey rsa permet d’afficher la clé publique générée.

Paramètres de configuration optionnels

Interdire les connexions non-SSH

Si vous souhaitez interdire les connexions non-SSH, ajoutez la commande transport input ssh sous la configuration des lignes. Ainsi, les connexions telnet seront refusées.

line vty 0 4

!--- Interdit les connexions Telnet, non SSH.
transport input ssh

Restreindre les accès SSH à un sous réseau

Si vous souhaitez limiter les connexions SSH à un sous réseau spécifique, et toutes les autres tentatives provenant d’adresses IP extérieures doivent être jetées, il est nécessaire d’effectuer les étapes suivantes :

–          Définir une access-list qui permettra le trafic du sous réseau spécifié ;
–          Restreindre les accès à l’interface VTY avec un access-class.

Dans l’exemple suivant, seuls les accès SSH depuis le sous réseau 10.10.10.0 255.255.255.0 sont autorisés.

Router(config)#access-list 23 permit 10.10.10.0 0.0.0.255
Router(config)#line vty 5 15
Router(config-line)#transport input ssh
Router(config-line)#access-class 23 inRouter(config-line)#exit

Configurer la version SSH

Configurer SSH v1 :

Router(config)# ip ssh version 1

Configuer SSH v2 :

Router(config)# ip ssh version 2

Configurer SSH v1 et v2 :

Router(config)#no ip ssh version

Variations de sortie de la commande banner

La sortie de la commande banner varie entre les connexions Telnet et les différentes versions de SSH. Le tableau suivant illustre comment les différentes bannières s’affichent en fonction du protocole utilisé.

Banner Command Option Telnet SSH v1 only SSH v1 and v2 SSH v2 only
banner login Affiché avant le login. Pas affiché Affiché avant le login. Affiché avant le login.
banner motd Affiché après le login. Affiché après le login. Affiché après le login. Affiché après le login.
banner exec Affiché après le login. Affiché après le login. Affiché après le login. Affiché après le login.

Commandes debug et show

Ci-après quelques commandes show et debug qui peuvent s’avérer utiles.

  • Debug ip ssh : Affiche les messages de debug pour SSH.
  • Show ssh : Affiche le status des connexions du serveur SSH.

Router#show ssh

Connection    Version Encryption    State              Username

0            1.5     DES           Session started    cisco

  • Show ip ssh : Affiche la version et les données de configuration SSH.

o   SSH version 1

Router#show ip ssh
  SSH Enabled - version 1.5

Authentication timeout: 60 secs; Authentication retries: 2

o   SSH Version 2

Router#show ip ssh
 SSH Enabled - version 2.0
  Authentication timeout: 120 secs; Authentication retries: 3
o   SSH Versions 1 et 2
Router#show ip ssh
  SSH Enabled - version 1.99
  Authentication timeout: 120 secs; Authentication retries: 3

Résolution des problèmes

  • Si la commande de configuration SSH est rejetée comme « illegal command », c’est que la paire de clé RSA  ne s’est pas correctement générée. Assurez-vous que vous avez spécifié un nom d’hôte (hostname) et un domaine. Puis utilisez la commande crypto key generate rsa afin de générer la paire de clés RSA et activer le serveur SSH sur le routeur.
  • Lorsque vous configurez la paire de clé RSA, vous pouvez rencontrer les erreurs suivantes :
No hostname specified

Vous devez spécifier un nom d’hôte : hostname Router

No domain specified

Vous devez configurer un nom de domaine : ip domain-name