Cisco : Démarrage, IOS, registres

De Wiki info-lab.fr
Aller à : Navigation, rechercher

Sommaire

Matériels et logiciels Cisco

  • Le CPU (Motorola RISC ou autre)
  • Des ports entrée/sortie (ports I/O) regroupant les types d'interfaces possibles (console, auxiliaire, Ethernet, série, connecteurs pour cartes additionnelles...)
  • Ces ports I/O renvoient ensuite vers toutes les interfaces.
  • Le Bus principal reliant ports I/O, CPU et mémoires.
  • La mémoire FLASH : EEPROM au format barette mémoire SIMM ou carte PCMCIA ou carte CompactFlash. Assez lente, d'une capacité de 16 à 256 Mo, elle contient 1 ou 2 images IOS compressées, la table des VLAN si elle existe, et stockait aussi sur les anciens équipements le registre de configuration (ConfReg) depuis déplacé en NVRAM.
  • La mémoire SDRAM ou DRAM : Mémoire volatile servant de mémoire de travail et à ce titre contenant les tables de routages, le cache ARP, les mémoires tampon, la gestion des files d'attente, l'IOS décompressé et sa configuration (nommée running-config) au format binaire ...
  • La mémoire NVRAM : Non volatile, rapide, de petite capacité (32 à 128 Ko), stocke la startup-config et le registre de configuration (ConfReg) sur les nouveaux équipements.
  • Une ROM au système de fichiers simple (de type FAT16 ou EXT) contenant 4 programmes :
    • Le ROM Monitor ou ROMMON (ou parfois ROMON) : Système d'exploitation de bas niveau, non interactif sauf si il est appelé (par une valeur du registre ou une interruption lors de son exécution) ou s'il n'arrive à charger ni IOS ni RXBOOT.
    • Le Bootstrap qui initialise le routeur, jusqu'au début du POST.
    • Le POST (Power On Self Test), suite de tests et de diagnostics de bas niveau (CPU, mémoires, bus...) analogues à ceux effectués par un BIOS de PC.
    • Le RXBOOT (ou Bootloader) petit OS avec pile TCP/IP, possédant un client telnet, un client TFTP et quelques fonctions basiques.

Composants cisco 1.png

La commande show version donne des informations assez complètes sur tous ces éléments.

Séquence de démarrage d'un équipement Cisco

  1. Démarrage du ROMMON à l'allumage, qui exécute le processus bootstrap.
  2. A la fin du bootstrap l'équipement est initialisé, ROMMON peut alors exécuter les diagnostics du POST.
  3. Fin du POST, ROMMON lit le registre, puis recherche une commande boot system dans la startup-config
  4. Si aucune valeur du registre ou commande boot system ne perturbe le chargement normal, ROMMON essaie dans l'ordre de :
  5. Rechercher un IOS en flash, le décompresser en SDRAM, l'exécuter et lui passer la main.
  6. Rechercher un IOS sur un serveur TFTP, le télécharger, le décompresser en SDRAM, l'exécuter et lui passer la main.
  7. Rechercher le RXboot en ROM, l'exécuter et lui passer la main.
  8. A défaut, afficher un prompt interactif accessible par le port console (dont les caractéristiques, par exemple 9600/8-N-1, sont fixées par des valeurs du registre). Ce prompt permet de lancer des commandes simples, stockées en ROM et parfois en NVRAM, qui servent à tester les composants, la mémoire... Ces commandes utilisées principalement en cas de défaillance d'un élément de l'équipement sont connues comme les boot system. Le POST se sert d'ailleurs de ces commandes pour réaliser la plupart de ses diagnostics de bas niveau, dès l'allumage de l'équipement. Les commandes boot system sont directement interprétées par le CPU.

Ce schéma montre le démarrage normal d'un équipement Cisco. Rien ne perturbe le démarrage qui arrive à son terme : IOS chargé avec son fichier de configuration.
Chargement-IOS.png

Précisions sur le ROMMON

Le Moniteur de Rom est l'environnement exécuté au démarrage de l'équipement et qui exécute les processus BootStrap et POST avant de chercher un IOS ou de lancer RxBoot. Le comportement de ROMMON est défini par les valeurs contenues dans le registre de configuration. En cas de démarrage normal, ROMMON n'est pas interactif et disparait au profit d'un IOS ou de RxBoot. Si une séquence de break, une valeur du registre ou un problème lors de son exécution ne permet pas de charger RxBoot ou un IOS, ROMMON affiche un prompt accessible par le port console. ROMMON accepte alors quelques commandes assez simples et peu nombreuses. La syntaxe du Console Command language n'est en principe pas sensible à la casse : Les commandes B et b sont équivalentes.

  • Les commandes du Console Command language permettent d'agir directement sur le processeur, la mémoire, le contenu du registre de configuration, de lancer un test matériel de bas niveau, ou de charger manuellement un IOS.
  • Contrairement à la CLI de l'IOS, ROMMON n'a pas d'interpréteur de commandes, ce qui se traduit par : Pas de complétion, pas d'historique des commandes validées, aide minimale : Il faut donc savoir précisément ce que l'on veut faire, chercher les commandes à tâtons est pratiquement impossible.
  • Exemples de commandes :
>?      pour un aide très simplifiée sur les commandes et leurs options.
>h      h (help) est équivalent à ?
>o/r 0x102     modifie la valeur du registre de configuration en 102. (o= options du registre)
>T M    test de mémoire de l'équipement (il faudra indiquer la plage mémoire concernée, les tests effectués, combien de fois...)
>b      Booter sur l'IOS sans lecture de fichier de configuration (idéal en cas de mot de passe perdu).
  • pour sortir du mode ROMMON plusieurs solutions :
    • entrer la commande i (Initialise)
    • entrer la commande c (Continue)
    • entrer la commande b (Boot), sachant que cette commande accepte des options :
      • b tout court = démarrage de l'IOS par défaut dans la ROM, pas de fichier de configuration.
      • b flash = démarrage sur le 1er fichier en mémoire flash.
      • b flash [nom_de_fichier] = démarrage sur ce fichier spécifié en mémoire flash.
      • b nom_de_fichier [hôte] = démarrage sur le fichier spécifié sur le serveur TFTP hôte.
  • Depuis l'IOS, la commande show version indique tout à la fin la valeur de registre qui a été utilisée lors du dernier démarrage (en plus des informations des versions d'IOS, de modèle de processeur, du nombre d'interfaces physiques, de décompte uptime...)
....................
8192K bytes of processor board System flash (read ONLY)
Configuration register is  0x2102
  • Si la valeur du registre à été modifiée depuis l'IOS, mais que l'on a pas encore redémarré l'équipement, la commande show version indiquera la valeur de registre qui a été utilisée lors du dernier démarrage, et celle qui sera utilisée pour le prochain :
....................
8192K bytes of processor board System flash (read ONLY)
Configuration register is  0x2102 (will be 0x2142 at next reload)

IOS Cisco

Internetwork Operating System est le système d'exploitation déployé sur les équipements Cisco : C'est un système d'exploitation multitâche, composé d'un noyau dérivé de UNIX-BSD 4.4 et d'un shell interpréteur de commandes, la "CLI Exec". Ce shell reprend la plupart des raccourcis clavier de l'éditeur de texte EMACS. Les équipements Cisco sont livrés avec un IOS assez basique, mais l'on peut acheter et installer d'autres IOS intégrant des fonctionnalités supplémentaires.
Les IOS sont des fichiers binaires type ELF 32 bit et leur taille varie de 5-6 Mo à une cinquantaine de Mo en fonction de l'équipement auquel ils sont destinés et des fonctionnalités qu'il intègrent. Les IOS sont nommés de la manière suivante C2800-adventservicesk9.123-61.mz où :

  • C2800 représente l'équipement déstiné par cet IOS (ici un routeur 2800) : Les IOS sont spécifiques à un équipement.
  • adventservices représente les fonctionnalités de l'IOS.
  • k9 précise que cet IOS intègre des fonctionnalités cryptographiques(SSH, IPSEC) : ce type d'IOS peut être interdit à l'emploi dans certains pays.
  • k8 indique un IOS à fonctions cryptographiques plus faibles (pas d'AES par exemple).
  • 123-61 renseigne sur la version : Version 12.3 sous version 61.
  • mz signifie que le fichier est compressé. Il devra donc être décompressé en SDRAM avant d'être exécuté.

Dans certains cas, le nom d'un IOS donne peu d'indications sur ses fonctionnalités. Exemple : C2600-123-61.T16-6.bin Il y a 3 grandes familles d'IOS depuis la version 12.3 :

Les IOS pour routeurs séries 800 à 3800

7 packages types, les routeurs étant livrés avec un IP BASE. Sauf sur les routeurs de la série 800 ou 16 Mo suffisent, 64 Mo de mémoire SDRAM sont au minimum nécessaires pour faire fonctionner les IOS de base sur les autres modèles. Pour certaines fonctionnalités évoluées (crypto, plusieurs protocoles de routage, IPSec...), 128 ou 256 Mo sont requis.

  • IP BASE : Routage de base. Fonctionnalités : connectivité DSL, commutation ethernet, routage intra-vlan 802.1q, vlan trunking. Nom typique : C2800-ipbase.mz
  • IP VOICE : Voix / téléphonie. Fonctionnalités : Modules interface voix, H.323, MGCP, SIP, Survivable Remote Site Telephony, Call Manager Express. Nom typique : C2800-ipvoice.mz
  • ADVANCED SECURITY : Architecture sécurisée. Fonctionnalités : Firewall IOS, sécurité de flux IP, VoIP, IDS, VPN client/serveur, SSH, IPSEC. Nom typique : C2800-advsecurityk9.mz
  • SP SERVICES MAN ou fournisseur d'accès. Fonctionnalités : Connectivité voix et données sur IP et ATM, MPLS, Netflow, SSH. Nom typique : C2800-spservicesk9.mz
  • ADVANCED IP SERVICES : Fournisseur d'accès et IPv6. Fonctionnalités : Sécurité et VPN voix et données, connectivité IPv6. Nom typique : C2800-advipservicesk9.mz
  • ENTERPRISE BASE : Services autres que IP. Fonctionnalités : Services IBM, IPX, Appletalk. Nom typique : C2800-entservicesk9.mz
  • ADVANCED ENTERPRISE SERVICES : Réseau multi protocoles de haut niveau. Fonctionnalités : Tout ce qui est mentionné ci-dessus. Nom typique : C2800-adventservicesk9.mz

Un IOS IP VOICE pour routeur 2800 coute environ 450 €, un IOS ADVANCED ENTERPRISE SERVICES pour routeur 2800 coute 2000 €.

Les IOS pour routeurs séries 7200 et 7300

A quelques nuances près, ces IOS sont les même que ceux des routeurs séries 800 à 3800 ; voici ces nuances :

  • SSH est déjà inclus dans l'IOS IP BASE
  • Le Lawful Intercept est intégré à l'IOS ADVANCED IP SERVICES : C'est la possibilité donnée à un gouvernement qui en fait la demande d'avoir accés à certaines statistiques ou fonctionnalités du routeur, ce qui lui permet de contrôler son trafic national, ses opérateurs...

Un IOS ADVANCED IP SERVICES pour la gamme 7200 coute environ 9000 €.

Les IOS pour commutateurs et commutateurs multiniveaux

Pour commutateurs de la gamme 2900 à la gamme 6500. Si un simple commutateur de niveau 2+ (série 29xx) est livré avec un LAYER2 BASE, les commutateurs multiniveaux sont livrés avec un IP BASE.

  • LAYER2 BASE : Commutation de niveau 2, livré sur la série 29xx. Fonctionnalités : commutation, spanning-tree, contrôle d'accès 802.1x, etherchannel 802.3ad, rapid spanning-tree 802.1s/w, sécurité mac des ports, SSHv2 en option. Nom typique : C2900-layer2basek9.mz
  • LAN BASE : Commutation de niveau 2, à acheter pour upgrader les commmutateurs de la série 29xx. Fonctionnalités : Cisco auto QoS, AutoSecure, Time Based ACL, Port Based ACL, QoS avancée. Nom typique : C2900-lanbasek9.mz
  • IP BASE : Commutation de niveau 3, livré de base sur les commutateurs autres que la série 29xx. Fonctionnalités : Routage statique, RIP, stub EIGRP, PIM basique, HSRP, VRRP, tunnels GRE. Nom typique : C6500-ipbasek9.mz
  • IP SERVICES : Commutation de niveau 3. Fonctionnalités : EIGRP, OSPF, PIM, BGP, GLBP, HSRP, VRRP, Multi-VRF, WAN, NBAR. Nom typique : C6500-ipservicesk9.mz
  • ADVANCED IP SERVICES : Commutation de niveau 3. Fonctionnalités : IS-IS, MPLS, L2VPN, L3VPN, IPv6. Nom typique : C6500-advipservicesk9.mz
  • ENTERPRISE SERVICES : Commutation de niveau 3. Fonctionnalités : Routage Appletalk, IPX, services IBM. Nom typique : C6500-entservicesk9.mz
  • ADVANCED ENTREPRISE SERVICES : Commutation de niveau 3. Fonctionnalités : Toutes les fonctionnalités ci-dessus plus Firewall IOS et IDS. Nom typique : C6500-adventservicesk9.mz

Les IOS version 15 et supérieur

Depuis la version 15, il n'y a plus qu'un seul type d'IOS par matériel Cisco, identifié seulement par le numéro de version et non plus par les fonctionnalités intégrées : Les notions d'IP BASE, LAN BASE et autres ADVANCED IP SERVICES disparaissent. Un équipement Cisco est maintenant livré avec un IOS possédant déjà toutes les capacités et options possibles, même si seules les plus basiques sont activées. Ajouter des fonctionnalités (IPv6, routage avancé, fonction parefeu, fonctions crypto...) ne nécessite plus de télécharger un nouvel IOS (payant) et de l'exécuter à la place de l'ancien mais de déverrouiller la fonction correspondante au moyen d'une clé de licence (payante aussi) à renseigner dans la configuration de l'équipement. Non seulement il est plus souple et moins risqué de saisir une clé de licence que de télécharger un nouvel IOS par FTP ou TFTP (plus éventuellement l'effacement de l'ancien IOS dans la mémoire flash car le nouveau est trop volumineux), mais aussi la phase de redémarrage sur le nouvel IOS (et donc l'interruption de service de quelques minutes qui en résulte) disparait.
Par contre, un IOS étant une archive monolithique, l'intégration de nouvelles fonctionnalités, de nouveaux protocoles ou la correction de vulnérabilités nécessite toujours de mettre en place un nouvel IOS ; la mise à jour des différents modules ou parties de l'IOS sans toucher au reste n'est pas possible.

Installation d'un nouvel IOS par TFTP

A partir de l'équipement Cisco exécutant un IOS valide et fonctionnel.
Pour plus de détails sur la CLI consulter cet article.
Nota : sur certains équipements le téléchargement d'un IOS par TFTP ne commence qu'après redémarrage de cet équipement, donc celui ci devra avoir une configuration minimale telle que adresse IP et interface vers le serveur TFTP montée (no shutdown) enregistrée en startup-config ; si elle n'est paramétrée qu'en running-config, elle sera perdue au redémarrage et l'IOS ne sera pas téléchargé.
Voici la procédure à suivre :

Router#copy tftp flash
Address or name of remote host 192.168.1.250                             (adresse IP du serveur tftp accessible)
Source file name? c2800ipservicesk9-mz.123-42                            (mon futur IOS)     
Destination file name [c2800ipservicesk9-mz.123-42]                       (le nom qu'il aura sur mon routeur)
Loading c2800ipservicesk9-mz.123-42 from 192.168.1.250 (via fastEthernet0/1): ! OK   (le fichier présent sur le serveur TFTP désigné ci-dessus)
Erase flash device before writing ? [yes/no] yes        (le fichier actuel doit être effacé de la Flash pour laisser sa place au nouveau)
Flash contains files. Are you sure you want to erase? [confirm] yes      (confirmation)
Loading c2800ipservicesk9-mz.123-42 from 192.168.1.250 (via fastEthernet0/1): !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
......
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!   
!!!!!!!!!!!!!!!!!!!!!!!! OK                
verifying checksum... OK (0x59C4)                                          (réussite)

Le nouvel IOS est fonctionnel. On peut aussi programmer le téléchargement d'un IOS au prochain démarrage de l'équipement :

Router(config)#boot system tftp c2800ipservicesk9-mz.123-42 192.168.1.250 

system précise que le fichier est un IOS car on peut aussi par ce moyen télécharger un nouveau fichier de configuration ou un nouveau RxBoot. tftp peut être remplacé par ftp, rom, flash, une URL ...

Rechargement d'urgence d'un IOS par port console

Soit l'IOS a été supprimé, soit toute la mémoire flash a été effacée ou formatée et le registre (ConfReg) ne possède pas d'instructions pour attribuer une adresse IP à l'équipement et lui spécifier l'adresse d'un serveur TFTP contenant un IOS adapté. ROMMON ne trouvant pas d'IOS exécutera au final un OS simplifié, le RxBoot qui permet d'accéder à une CLI sommaire. Sur un terminal VT100 connecté au port série, le démarrage du RxBoot affiche l'adresse MAC du commutateur, le message important Xmodem filesystem is available, montre l'initialisation de la mémoire Flash et au final affiche le message suivant : The system is unable to boot automaticaly because there are no bootable files to boot suivi d'un prompt en switch:
Les terminaux VT100 permettent de faire du transfert de fichier à faible débit à travers le port série.
Sur le commutateur lancer la commande :

switch:copy xmodem: flash:c2950xl-xxxxx-xx.xxx-x.xxxx.bin

affichage de :

begin the Xmodem or Xmodem-1K transfer now...
C C C C C 

Depuis le terminal VT100 lancer le mode "transfert" en choisissant le protocole " Xmodem " ou mieux " 1K Xmodem " et pointer vers le fichier c2950xl-xxxxx-xx.xxx-x.xxxx.bin à transférer. Attention le RxBoot ne reste pas longtemps en écoute Xmodem. Au delà d'une temporisation (timeout) assez courte, il est nécessaire de relancer la commande copy xmodem: flash:c2950.......
Le transfert commence alors ; la taille d'un IOS variant de quelques à plusieurs dizaines de Mo, ce transfert peut durer entre 30 et 120 minutes. Si une seule erreur de CRC intervient lors du transfert, celui ci échoue et il faut tout recommencer (pas de reprise sur erreur aveec xmodem) . En cas de succès, affichage du message suivant :

File « xmodem: » successfully copied to « flash:c2950xl-xxxxx-xx.xxx-x.xxxx.bin »

taper boot pour charger l'IOS en mémoire, l'exécuter et quitter le RxBoot
Remarque: aucune commande n'est accessible pendant cette opération, le transfert s'appropriant entièrement le port console. Cisco conseille donc de lancer le transfert xmodem via le port auxiliaire car il gère le contrôle de flux matériel contrairement au port console, port console qui reste disponible pour lancer des commandes éventuelles.

Rechargement d'urgence d'un IOS par TFTP, en mode ROMMON

Sur certains équipements avec certaines versions de ROMMON, il est possible de télécharger un IOS via TFTP.

romon 10 >IP_ADDRESS=171.68.171.0
romon 11 >IP_SUBNET_MASK=255.255.254.0
romon 12 >DEFAULT_GATEWAY=171.68.170.3
romon 13 >TFTP_SERVER=171.69.1.129
romon 14 >TFTP_FILE=c2600-is-mz.122-10a.bin
romon 15 >tftpdnld
 IP_ADDRESS:171.68.171.0
 IP_SUBNET_MASK:255.255.254.0
 DEFAULT_GATEWAY:171.68.170.3
 TFTP_SERVER:171.69.1.129
 TFTP_FILE:c2600-is-mz.122-10a.bin
Invoke this command for disaster recovery only.
WARNING: all existing data in all partitions on flash will be lost!
Do you wish to continue? y/n: [n]:y
Receiving c2600-is-mz.122-10a.bin from 171.69.1.129 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
File reception completed.
Copying file c2600-is-mz.122-10a.bin to flash.
Erasing flash location 0x607c0000
program flash location 0x60440000
romon16 > boot flash

Remarque : ROMMON comptabilise le nombre de commandes exécutées en incrémentant le prompt.
ROMMON permet aussi d'effectuer le transfert par Xmodem à travers le port console :

romon 15 >xmodem -c c2600-is-mz.122-10a.bin     l'option -c active le contrôle d'erreur par CRC
Do not start the sending program yet 
Warning: All existing data in bootflash......
.............................................
Do you wish ton continue? y/n (n): y
Ready to receive file c2600-is-mz.122-10a.bin

Sécurisation d'un IOS

Le comportement d'un IOS est défini par le fichier de configuration. Au 1er démarrage d'un équipement, ce fichier de configuration est relativement vide, et ne comporte pratiquement aucune règle de filtrage ou de sécurité. De plus certains services "sensibles" son lancés par défaut.
Une partie de ces commandes se retrouve dans les articles sur les commutateurs Catalyst et les routeurs Cisco.
Dans le but de limiter les trafics inutiles, de brider des comportements dangereux sur le réseau ou de protéger l'équipement Cisco contre certaines attaques, un certain nombre de commandes doivent être ajoutées au fichier de configuration afin qu'elles soient interprétées par l'IOS.
NOTA 1 : Certaines commandes utilisant des fonctions cryptographiques ne pourront être mises en oeuvre que sur les équipements exécutant un IOS Cisco de type k9.
NOTA 2 : Les commandes qui apparaissent en rouge sont activées une fois appliquées mais n'apparaissent pas dans le fichier de configuration !

  • Désactivation de services inutiles ou dangereux, et règles simples de durcissement :

no service pad désactivation de l'assembleur/désassembleur de paquets X25
service tcp-keepalives-in prévient les sessions orphelines suite à deconnexion brutale provoquant l'occupation d'un VTY
service timestamps debug datetime localtime show-timezone horodatage des messages debug
service timestamps log datetime localtime show-timezone horodatage des messages log
service password-encryption sécurisation rudimentaire des mots de passe password, codage type 7 faible (réversible)
service sequence-numbers numérotation des entrées dans les journaux système
no service dhcp désactivation de la fonction client et relais DHCP
no ip bootp server désactivation de la fonction serveur BootStrap et DHCP
no service tcp small-servers désactivation des services CHARGEN, ECHO, DISCARD et DAYTIME
no ip finger désactivation du protocole FINGER
no ip directed-broadcast contre les broadcast dirigés (attaques de type SMURF)
security authentication failure rate 3 log archivage d'un log après 3 échecs d'authentification
securiy passwords min-lenght 12 Longueur requise pour les mots de passe
enable secret 5 $1$KB0n$75fd11JzamRUT/1hlM3nU36u. Mise en place d'un mot de passe pour accéder au mode exec (enable). Seule l'empreinte MD5 avec un sel de 3 octets est stockée.
no ip source-route Empêche la demande de routage par l'adresse IP source
no ip http server Stoppe le serveur HTTP
no ip http secure-server Stoppe le serveur HTTPS
no cdp run Désactivation du très (trop) bavard Cisco Discovery Protocol

  • Mise en place de SSh/SCP et abandon définitif de telnet/tftp/ftp :

NOTA 1 : Les commandes qui apparaissent en rouge sont activées une fois appliquées mais n'apparaissent pas dans le fichier de configuration !
Afin de pouvoir utiliser les fonctions cryptographiques en général et SSh en particulier il est nécessaire de : hostname routeurXX Attribuer un nom unique à l'équipement
ip domain name MonDomaine affecter un domaine qui identifiera les clés stockées par l'équipement
crypto key generate rsa [taille de clé] générer une paire de clés RSA de taille suffisante
ip ssh time-out 60 paramétrer la déconnexion automatique après 60 secondes (par exemple) d'inactivité
ip ssh source-interface FastEthernet1/2 Imposer une interface source pour initier une connexion SSh à partir de l'équipement
aaa new-model Activer Authentication/Autorization/Accounting nouveau modèle, indispensable pour Radius, TACACS et serveur SCP
ip ssh version 2 Forcer la version 2 de SSh
aaa authentication login default local Activer les options indispensables pour lancer un serveur SCP
aaa authorization exec default local Activer les options indispensables pour lancer un serveur SCP
ip scp server enable Lancer le serveur SCP local pour remplacer TFTP/FTP

  • Sécurisation des interfaces :

Voici les commandes à appliquer à toutes les interfaces physiques afin qu'elles ne facilitent pas trop le travail des indésirables no ip redirects Désactive l'envoi de messages ICMP redirect pour découvrir les routes
no ip unreachables Désactive l'envoi de messages ICMP Protocol et Host unreachable
no ip proxy arp Evite de répondre aux requêtes ARP qui ne concernent pas l'équipement
no mop enabled Désactivation du service Maintenance OPeration (protocole DEC)
no ip mask-reply Désactivation de l'envoi d'une réponse avec le masque réseau
La commande no ip unreachables peut aussi être appliquée à l'interface Null0 (Interface impasse pour orienter les paquets entrants indésirables).

  • Complément de sécurisation :

La sécurité d'un équipement Cisco et de son environnement peut être complétée en :
- Restreignant l'utilisation de SNMP à la seule version 3.
- Authentifiant les annonces HSRP entre routeurs ou commutateurs multiniveaux.
- Authentifiant les messages NTP et en bordant le comportement de ce protocole au moyen d'ACL.
- Ajoutant des ACL pour limiter l'accès au vty.
- Créant des interfaces Loopback sur les équipements le permettant, et en définissant ces interfaces commes adresses sources pour certains trafics (serveur SSh, SNMP, Syslog...)

Registres de configuration

Le regitre de configuration (Confreg) est un ensemble de paramètres d'une taille de 16 bits en général représenté en héxadécimal, lu et interprété au démarrage d'un équipement par ROMMON, puis par l'IOS. Ce registre stocké en NVRAM sur les équipements récents permet à ROMMON de savoir quelles opérations il doit réaliser :

  • Sur quel OS amorcer : RxBoot ou IOS en mémoire flash (et lequel si plusieurs sont présents) ou IOS à télécharger sur serveur TFTP ?
  • Quelle fichier de configuration appliquer ?
  • Comment utiliser le réseau (broadcast, TFTP) dès l'amorçage ?
  • Comment paramétrer la vitesse du port console ?
  • Comment activer les messages de diagnostic dès l'amorçage ?

Par défaut, le registre à une valeur de 0x2102 sur les équipements récents. Cette valeur peut être modifiée de 2 manières :

  • Depuis l'IOS :
Router(config)#config-register <valeur>                 (<valeur> est à remplacer par la valeur voulue)
  • Depuis le mode ROMMON en interrompant le démarrage normal par l'envoi d'une "séquence de Break" sur le port console dans les premières secondes qui suivent la mise sous tension. La commande permettant de lancer une "séquence de Break" dépend de l'émulateur de terminal VT100 utilisé (en général CTRL+PAUSE ou CTRL+B ou ALT+B ou CTRL+ARRET DEFIL). Une pression sur le bouton "mode" en façade peut aussi interrompre le démarrage normal pour les équipement qui possèdent ce bouton.

La page http://www.cisco.com/en/US/products/hw/routers/ps133/products_tech_note09186a0080174a34.shtml recense la liste des principaux émulateurs de terminal et leur séquence de break ; Si aucune ne fonctionne, consulter la section " how to simulate a break key sequence ".
En cas de succès de la séquence de break, affichage de:

boot
switch:

Ou en présence d'un matériel et d'une image RxBoot moins récents :

Abort at 0x10DF48E 
>

Valeurs du registre de configuration

  • Les Bits 0 à 3 définissent le champ d'amorçage :
    • Soit démarrage normal : le ROMMON décompresse l'IOS , le rend actif et lui demande de lire le fichier de configuration.
    • soit démarrage en mode "moniteur de mémoire ROM" (ROMMON) ==> pas de chargement de l'IOS (ou IOS défectueux, absent...)
    • soit utilisation des commandes boot system présentes en mémoire ROM (si plusieurs commandes boot system elles seront lues séquenciellement).
    • Soit utilisation des commandes boot system présentes en mémoire NVRAM (fichier de configuration). Dans ce cas si l'IOS est défectueux, le dispositif ira chercher successivement L'IOS en flash, ou à défaut un IOS valide sur un serveur TFTP et finalement en dernier recours l'IOS présent en ROM (certains routeurs haut de gamme peuvent stocker un IOS de secours en ROM).
  • Les bits 5, 11 et 12 définissent la vitesse du port console :
    • la valeur par défaut est de 9600 baud, les autres valeurs possibles sont 1200, 2400, 4800, 19200, 38400, 57600 et 115200.
  • le bit 6 permet de choisir si le fichier de configuration est lu ou pas.
    • 0 = utilisation du fichier de configuration. 1 = fichier de configuration ignoré (utilisé dans la procédure de récupération des mots de passe)
  • le bit 7 = OEM
  • Le bit 8 active / désactive le break après le chargement de l'IOS :
    • 0 = séquence de break activée 1 = séquence de break désactivé après le chargement de l'IOS (valeur par défaut)
  • Le bit 9 active le bootstap secondaire.
  • Les bits 10 et 14 indiquent comment sont formés les broadcast IP :
    • Seront ils émis vers tous les réseaux (255.255.255.255) ou uniquement vers l'adresse de broadcast de notre sous réseau (exemple : 192.168.0.255) ?
  • le bit 13 permet d'utiliser l'image par défaut en ROM si échec du démarrage réseau. Ne peut être utilisé que sur les gros équipements contenant un IOS de secours en ROM.
  • Le bit 15 active les messages de diagnostics et ignore le contenu de la NVRAM.

Attention !! Des matériels anciens peuvent avoir des valeurs différentes.

Valeurs de registre souvent utilisées

  • 0x2102 : valeur par défaut elle indique un démarrage normal sur un équipement récent.
  • 0x2142 : grâce au 6ème bit positionné à 1, l'IOS est chargé normalement mais le fichier de configuration est ignoré : Or c'est dans ce fichier que se trouvent tous les mots de passe. On peut donc accéder directement au mode privilégié et réinitialiser ainsi les mots de passe perdus.
  • 0x102 est la valeur par défaut des vieux équipements (par exemple routeur 2501)
  • 0x101 est la valeur de registre à appliquer sur ces vieux équipements pour démarrer sur le RxBoot sans chercher d'IOS.

Modification du registre pour récupération de mot de passe : explications pas à pas

Interruption du démarrage normal par la séquence de break adaptée à son émulateur de terminal VT100 :

Rommon1>confreg
Do you wish to change the configuration ? y
Enable “diagnostique mode” n
Enable “use net in ip bcats address” ? n
Disable “load rom after net fails”? n
Enable “use all zero broadcast”? n
Enable “break/abord has effect”? n
Enable “ignore systeme config info” y
Change console baud rate? n
Change the boot characteristics n 
Virtual config register 0x2142
Do you  wish to change the configuration n

Redémarrer le routeur et attendre l'assistant de configuration initiale :

Would you like to enter the initial configuration dialog? n

Pour modifier le mot de passe et quitter le mode config-register :

Router>en
Router#copy startup-config running-config
Router#conf t
Router(config)#enable secret xxxxxxxxxxxxxx  (xxxxxxxxxxxxxx nouveau mot de passe pour accéder au mode "enable", faire de même pour les mots de passe des utilisateurs)
Router(config)#config-register 0x2102  (repositionner le registre pour effectuer les prochaines fois un démarrage normal avec prise en compte du fichier de configuration)
Router#wr
Router#reload
Proceed with reload? [confirm]
Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Outils