Sécurité - Configuration de Secure Shell sur les Commutateurs et les Routeurs avec l'IOS Cisco ccnp_cch
Sommaire • Introduction • Prérequis • Schéma du réseau • Test de l'authentification - Test de l'authentification sans SSH - Test de l'authentification avec SSH • Paramètres de configuration optionnels - Eviter les connexions non-SSH - Paramétrer un routeur avec IOS ou un commutateur comme client SSH - Ajouter SSH pour un accès à une ligne de type terminal • Commandes debug et show • Exemples de sortie de commande debug - Affichage d'une sortie de commande debug pour un routeur - Affichage d'une sortie de commande debug de serveur • Quels peuvent être les problèmes? - SSH avec un client SSH non prévu pour le cryptage DES - Mot de passe incorrect - Le client SSH utilise un cryptage non reconnu ccnp_cch
Introduction Ce document traite de la configuration et de la résolution de problème du Secure Shell (SSH) sur les routeurs Cisco ou sur les commutateurs utilisant une version d'IOS supportant SSH. Prérequis Il n'y a pas de prérequis spécifiques pour utiliser ce document. Les informations utili- sées dans ce document sont basées sur les versions matériel et logiciel suivantes: • Cisco IOS 3600 (3640-IK9S_M) version 12.2(2)T1. SSH a été introduit sur les images IOS et les plateformes suivantes: • SSH version 1.0 serveur (SSHv1) a été introduit dans quelques images IOS de plate- formes à partir de la version 12.05.S • Le client SSH a été introduit dans quelques images IOS de plateformes à partir de la version 12.1.3.T. • L'accès SSH ligne terminal (terminal line) connu également comme "reverse Telnet" a été introduit dans quelques images IOS de plateformes à partir de la version 12.2.2.T. • Le support de la version 2.0 de SSH (SSHv2) a été introduit dans quelques images IOS de plateformes à partir de la version 12.1(19)E. Pour obtenir des informations sur le support de SSH dans les commutateurs, reférez vous au document "Comment configurer SSH sur les commutateurs Catalyst utilisant le CatOS". Schéma du réseau Solaris SSH Client IP=172.18.124.114 Reims SSH Client IP=10.13.1.99 PC SSH Client IP=172.18.124.99 Paris (Cisco 3640) Serveur SSH IP=10.13.1.99 Line 2 Orleans ccnp_cch
Tester l'authentification Tester l'authentification sans SSH Nous allons tester l'authentification d'abord sans SSH pour être surs que l'authenti- fication fonctionne avec le routeur PARIS avant d'ajouter SSH. L'authentification peut être faite avec un "username/password" local ou à partir de AAA (Authentication, Authorization, Accounting) sur un serveur utilisant RADIUS ou TACACS+. (L'authen- tification via un mot de passe d'une ligne n'est pas possible avec SSH). L'exemple ci-dessous montre l'authentification locale qui permet d'accéder au routeur par Telnet avec le username "cisco" et le mot de passe "cisco". !--- aaa new-model entraine que le username/password sera utilisé !--- en l'absence de toute aure instruction AAA aaa new-model username cisco password 0 cisco line vty 0 4 !--- La commande login local peut être utilisée à la place de !--- aaa new-model Tester l'authentification avec SSH Pour tester l'authentification avec SSH, nous avons ajouté les instructions suivantes pour valider SSH sur le routeur PARIS et tester SSH depuis le PC et la station UNIX. ip domain-name rtp.cisco.com !--- Génère une clé SSH crypto key generate rsa ip ssh time-out 60 ip ssh authentication-retries 2 A ce point, la commande show crypto key mypubkey doit montrer la clé générée. Après avoir ajouté la configuration SSH, nous testons l'accès au routeur depuis le PC et la station UNIX. ccnp_cch
Paramètres de configuration optionnels Eviter les connexions non-SSH Si nous voulons éviter les connexions non-SSH, nous devons ajouter transport input ssh sous la commande line pour limiter les connexions au routeur à SSH uniquement. Les connexions Telnet directes seront refusées. line vty 0 4 !--- Evite les connexions non-SSH transport input ssh Vous devez vérifier que les connexions Telnet directes sont refusées sur le routeur PARIS. Configurer un Routeur ou un Commutateur comme Client SSH Il y a quatre étapes requises pour valider le support SSH sur l'IOS d'un routeur. 1. Configurer le nom avec la commande hostname 2. Configurer le domaine DNS 3. Générer la clé SSH à utiliser 4. Valider le transport SSH pour les vty Si nous voulons qu'un équipement agisse comme un client SSH avec un autre, nous pouvons ajouter SSH a un deuxième routeur qui est Reims. Ces équipement seront dans un environnement client/serveur avec Paris agissant comme serveur et Reims agissant comme client. La configuration IOS du client SSH sur Reims est la même que celle requise pour la configuration du serveur SSH Paris. !--- Etape 1: Configurer le hostname si cela n'avait pas été fait hostname Paris !--- aaa new-model entraine que le username/password sera utilisé !--- en l'absence de toute aure instruction AAA aaa new-model username cisco password 0 cisco (voir page suivante) Ajouter SSH pour accéder à une interface de type line ccnp_cch
!--- Etape 2: Configurer le nom de domaine du routeur ip domain-name rtp.cisco.com !--- Etape 3: Générer une clé utilisée par SSH crypto key generate rsa ip ssh time-out 60 ip ssh authentication-retries 2 !--- Par défaut le transport vty est Telnet. Dans ce cas Telnet !--- dévalidé et seul SSH est autorisé. line vty 0 4 transport input ssh Pour tester cela, entrez la commande suivante depuis le client SSH IOS (Reims) vers le server SSH IOS (Paris). ssh -l cisco -c 3des 10.13.1.99 Ajouter SSH pour un accès à une ligne de type terminal Si nous avons besoin d'une authentification SSH en sortie pour une ligne (line), nous pouvons configurer et tester SSH pour du reverse Telnet en sortie à travers Paris qui agit comme serveur de communication pour Orléans. ip ssh port 2001 rotary line 1 16 no exec rotary 1 transport input ssh exec-timeout 0 0 modem in out Stopbits 1 Si Orléans est attaché au port 2 de Paris, nous pouvons utiliser SSH pour accéder à Orléans au travers de Paris depuis Reims avec la commande suivante: ssh -c 3des -p 2002 10.13.1.99 Depuis Solaris, nous utilisons la commande : ssh -c 3des -p 2002 -x -v 10.13.1.99 ccnp_cch
Commandes show et debug • debug ip ssh -- Affiche les messages debug pour ssh • show ssh -- Affiche l'état des connexions serveur SSH Paris#show ssh Connection Version Encryption State Username 0 1.5 DES Session Started cisco • show ip ssh -- Affiche la version et la configuration pour SSH Paris#show ip ssh SSH Enabled - version 1.5 Authentication timeout: 60 secs; Authentication retries: 2 Exemple de sorties de la commande debug debug routeur 00:23:20: SSH0: starting SSH control process 00:23:20: SSH0: sent protocol version id SSH-1.5-Cisco-1.25 00:23:20: SSH0: protocol version id is SSH-1.5-Cisco-1.2.26 00:23:20: SSH0: SSH_SMSG_PUBLIC_KEY msg 00:23:21: SSH0: SSH_CMSG_SESSION_KEY msg - length 112, type 0x03 00:23:21: SSH: RSA decrypt started 00:23:21: SSH: RSA decrypt finished 00:23:21: SSH0: sending encryption confirmation 00:23:21: SSH0: keys exchanged and encryption on 00:23:21: SSH0: SSH_CMSG_USER message received 00:23:21: SSH0: authentication request for userid cisco 00:23:21: SSH0: SSH_SMSG_FAILURE message sent 00:23:23: SSH0: SSH_CMSG_AUTH_PASSWORD message received 00:23:23: SSH0: authentication successful for cisco 00:23:23: SSH0: requesting TTY 00:23:23: SSH0: setting TTY - requested: length 24, width 80; set: length 24, width 80 00:23:23: SSH0: invalid request - 0x22 00:23:23: SSH0: SSH_CLSG_EXEC_SHELL message received 00:23:23: SSH0: starting shell for vty ccnp_cch
debug serveur Note: Cette sortie a été capturée sur la machine Solaris rtp-evergreen#/opt/CISssh/bin/ssh -c 3des -l cisco -v 10.13.1.99 SSH Version 1.2.26 [sparc-sun-solaris2.5.1, version 1.5. Compiled with RSAREF. rtp-evergreen: Reading configuration data /opt/CISssh/etc/ssh_config rtp-evergreen: ssh_connect: getuid 0 getuid 0 anon 0 rtp-evergreen: Allocated local port 1023 rtp-evergreen: Connecting to 10.13.1.99 port 22 rtp-evergreen: Connection established rtp-evergreen: Remote protocol version 1.5, remote software version Cisco-1.25 rtp-evergreen: Waiting for server public key rtp-evergreen: Received server public key (768 bits) and host key 512 bits rtp-evergreen: Host '10.13.1.99' is known and matches the host key rtp-evergreen: Initializing random; seed file //.ssh/random_seed rtp-evergreen: Encryption type: 3des rtp-evergreen: Sent encrypted session key rtp-evergreen: Installing crc compensation attack detector. rtp-evergreen: Received encrypted confirmation rtp-evergreen: Doing password authentication cisco@10.13.1.99's password: rtp-evergreen: Requesting pty rtp-evergreen: Failed to get local xauth data. rtp-evergreen: Requesting X11 forwarding with authentication spoofing. Warning: Remote host denied X11 forwarding, perhaps xauth program could not be run on the server side. rtp-evergreen: Requesting shell. rtp-evergreen: Entering interactive session. ccnp_cch
Quels peuvent être les problèmes SSH depuis un client ne supportant pas le cryptage DES. Debug Solaris rtp-evergreen#/opt/CISssh/bin/ssh -c 3des -l cisco -v 10.13.1.99 SSH Version 1.2.26 [sparc-sun-solaris2.5.1, version 1.5. Compiled with RSAREF. rtp-evergreen: Reading configuration data /opt/CISssh/etc/ssh_config rtp-evergreen: ssh_connect: getuid 0 getuid 0 anon 0 rtp-evergreen: Allocated local port 1023 rtp-evergreen: Connecting to 10.13.1.99 port 22 rtp-evergreen: Connection established rtp-evergreen: Remote protocol version 1.5, remote software version Cisco-1.25 rtp-evergreen: Waiting for server public key rtp-evergreen: Received server public key (768 bits) and host key 512 bits rtp-evergreen: Host '10.13.1.99' is known and matches the host key rtp-evergreen: Initializing random; seed file //.ssh/random_seed rtp-evergreen: Encryption type: 3des rtp-evergreen: Sent encrypted session key cipher_set_key: unknown cipher: 2 Debug Routeur 00:24:41: SSH0: starting SSH control process 00:24:55: SSH0: sent protocol version id SSH-1.5-Cisco-1.25 00:24:55: SSH0: protocol version id is SSH-1.5-Cisco-1.2.26 00:24:55: SSH0: SSH_SMSG_PUBLIC_KEY msg 00:24:55: SSH0: SSH_CMSG_SESSION_KEY msg - length 112, type 0x03 00:24:55: SSH: RSA decrypt started 00:24:56: SSH: RSA decrypt finished 00:24:56: SSH: RSA decrypt started 00:24:56: SSH0: sending encryption confirmation 00:24:56: SSH0: Session disconnected - error 0x07 ccnp_cch
Quels peuvent être les problèmes Mot de passe incorrect Debug Routeur 00:26:51: SSH0: starting SSH control process 00:26:51: SSH0: sent protocol version id SSH-1.5-Cisco-1.25 00:26:52: SSH0: protocol version id is SSH-1.5-Cisco-1.2.26 00:26:52: SSH0: SSH_SMSG_PUBLIC_KEY msg 00:26:52: SSH0: SSH_CMSG_SESSION_KEY msg - length 112, type 0x03 00:26:52: SSH: RSA decrypt started 00:26:52: SSH: RSA decrypt finished 00:26:25: SSH: RSA decrypt started 00:26:52: SSH0: sending encryption confirmation 00:26:52: SSH0: keys exchanged and encryption on 00:26:52: SSH0: SSH_CMSG_USER message received 00:26:52: SSH0: authentication request for userid cisco 00:26:52: SSH0: SSH_SMSG_FAILURE message sent 00:26:54: SSH0: SSH_CMSG_AUTH_PASSWORD message received 00:26:54: SSH0: password authentication failed for cisco 00:26:54: SSH0: SSH_SMSG_FAILURE message sent 00:26:54: SSH0: authentication failed for cisco (code=7) 00:26:54: SSH0: session disconncted - error 0x07 Le client transmet avec cryptage non supporté 00:39:26: SSH0: starting SSH control process 00:39:26: SSH0: sent protocol version id SSH-1.5-Cisco-1.25 00:39:26: SSH0: protocol version id is SSH-1.5-Cisco-1.2.26 00:39:26: SSH0: SSH_SMSG_PUBLIC_KEY msg 00:39:26: SSH0: SSH_CMSG_SESSION_KEY msg - length 112, type 0x03 00:39:26: SSH0: Session disconnected - error 0x20 ccnp_cch