juin 2009 Archives

19-06-2009 17:51:50

Installation Cisco SDM et formation CCNA Exploration

Autant le dire d'emblée, cet article pourrait très bien s'intituler «Chronique d'une abominable galère !». En effet, le logiciel Security Device Manager est très difficile à exploiter dans des conditions nominales avec une infrastructure de travaux pratiques usuelle. Après avoir consacré une grande quantité d'énergie à essayer d'installer et d'utiliser cet outil dans des contextes très divers et variés, il apparaît qu'il n'est utilisable que dans des conditions pour le moins «singulières».

Chère lectrice, cher lecteur, qui souriez ironiquement à la lecture de la phrase précédente, nous allons évacuer rapidement le poncif habituel sur le thème : «encore un utilisateur Linux qui se plaint ; il l'a bien cherché !». Dans ce cas précis, la principale objection tient dans le paradoxe suivant : «pour que SDM fonctionne sur un système GNU/Linux, encore faudrait-il qu'il fonctionne correctement sur Windows XP™ !

D'après la documentation officielle, SDM peut être installé soit sur un routeur, soit sur un PC, ou bien encore sur les deux. La lecture des mille et un messages postés sur les forums ne nous avance guère. L'expérience montre que ce logiciel n'est exploitable que s'il est installé directement sur le routeur. C'est ce mode d'installation qui est décrit dans la première partie de l'article.

Côté utilisation, le tableau n'est pas brillant non plus. Il faut disposer d'un machine Java en retard d'au moins 10 révisions et corrections de bugs et d'un navigateur 32 bits. En conséquence, il suffit de disposer d'un poste de travail à jour sur le plan sécurité pour que l'accès à SDM soit impossible. La seconde partie de l'article est consacrée à l'installation et à la configuration d'une version 32 bits de Firefox associée à une machine virtuelle Java extraite des archives. Ces opérations sont réalisées sans l'aide d'un gestionnaire de paquets puisqu'un processus d'assurance qualité correct ne permet pas la diffusion de logiciels contenant des vulnérabilités connues et corrigées (CVE-2006-2426).

Installation SDM sur routeur 1841

Les routeurs 1841 fournis dans le bundle sont d'excellentes machines qui permettent de faire les manipulations des curriculas CCNA et CCNP BSCI dans des conditions très confortables.

Sur ces modèles, le système d'exploitation (IOS) est stocké sur une mémoire de type CompactFlash. Dans le contexte de cet article, la capacité de stockage est limitée à 32Mo, ce qui ne permet pas de faire cohabiter le système d'exploitation et SDM sur la même carte.

Heureusement, il existe une astuce assez répandue qui consiste à télécharger le fichier image du système d'exploitation à partir d'un serveur TFTP lors de l'initialisation du routeur. De cette façon, on économise l'espace de stockage du système et on peut implanter les fichiers nécessaires au fonctionnement de SDM à la place.

Pour la mise en œuvre d'un serveur TFTP, il est possible de consulter la section correspondante de l'article Gestion des équipements réseau avec GNU/Linux. Ici, on considère que le service TFTP est disponible.

Du point de vue de l'organisation des travaux pratiques, ce mode de fonctionnement impose une connexion particulière lors de la mise sous tension des routeurs en début de séance. Il faut que le port FastEthernet fa0/0 soit raccordé à un commutateur qui permette de joindre le service TFTP de la salle. Dans le cas de l'architecture STRI, la passerelle de la salle joue justement ce rôle.i

Une fois la phase d'initialisation du système d'exploitation achevée, il est possible de rebrasser et reconfigurer les interfaces réseau suivant les besoins des questions de travaux pratiques.

Autre contrainte, en fin de séance il est nécessaire de restaurer une configuration minimale contenant les instructions nécessaires au rechargement du système via TFTP lors de la remise sous tension suivante du routeur.

Voici les opérations de préparation d'un routeur 1841 en fonction des éléments énoncés.

Dans l'exemple qui suit, l'adresse IP du routeur est 192.168.1.3 et celle du serveur TFTP est 192.168.1.1.

Paramètres ROMMON

Pour que le routeur puisse accéder au serveur TFTP avant l'initialisation de son système d'exploitation complet, il doit utiliser une image «minimum» baptisée ROMMON lui permettant de communiquer avec ce serveur. Les paramètres de communication réseau doivent être stockés en NVRAM pour être réutilisés lors des remise sous tension suivantes.

rommon 10 > FE_PORT=0
rommon 11 > FE_SPEED_MODE=3
rommon 12 > IP_ADDRESS=192.168.1.3
rommon 13 > IP_SUBNET_MASK=255.255.255.0
rommon 14 > DEFAULT_GATEWAY=192.168.1.1
rommon 15 > TFTP_SERVER=192.168.1.1
rommon 16 > TFTP_FILE=c1841-ipbasek9-mz.124-24.T.bin
rommon 17 > sync
rommon 18 >

On accède au mode ROMMON en utilisant une séquence de break. On tape ALT+F dans minicom.

Test téléchargement TFTP

Une fois les paramètres mémorisés, on effectue un test de téléchargement du système d'exploitation et d'initialisation du système à l'aide de la commande ROMMON tftpdnld.

rommon 20 > tftpdnld -r

          IP_ADDRESS: 192.168.1.3
      IP_SUBNET_MASK: 255.255.255.0
     DEFAULT_GATEWAY: 192.168.1.1
         TFTP_SERVER: 192.168.1.1
           TFTP_FILE: c1841-ipbasek9-mz.124-24.T.bin
        TFTP_MACADDR: 00:14:f2:75:4b:26
        TFTP_VERBOSE: Progress
    TFTP_RETRY_COUNT: 18
        TFTP_TIMEOUT: 7200
       TFTP_CHECKSUM: Yes
             FE_PORT: 0
       FE_SPEED_MODE: 100MB/FD
......
Receiving c1841-ipbasek9-mz.124-24.T.bin from 192.168.1.1 !!!!!!!
<snipped/>
Configuration minimale

On applique ici les commandes de configuration nécessaires à l'initialisation du système via TFTP.

Router>en
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#no boot system
Router(config)#boot system tftp://192.168.1.1/c1841-ipbasek9-mz.124-24.T.bin
Router(config)#config-register 0x010F
Router(config)#^Z
Router#
Router#reload

System configuration has been modified. Save? [yes/no]: yes
Building configuration...
[OK]
Proceed with reload? [confirm]

Au redémarrage, le routeur doit recharger son image système à partir du réseau avant de s'initialiser avec cette même image.

Dans certains cas, la manipulation ci-dessus ne suffit pas et une image système doit nécessairement être présente sur la mémoire flash avant le téléchargement réseau. Il s'agit probablement d'un problème de gestionnaire de démarrage (boot loader) qui se bloque sur l'absence d'image système en mémoire flash. Il est donc nécessaire de placer une image système la plus petite possible de façon à répondre à l'objectif initial : installer SDM.

Voici un extrait du processus d'initialisation en trois étapes.

Router#reload
Proceed with reload? [confirm]

*Jun 16 07:09:22.619: %SYS-5-RELOAD: Reload requested  by console. Reload Reason: Reload Command.
System Bootstrap, Version 12.4(13r)T5, RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 2007 by cisco Systems, Inc.
PLD version 0x10
GIO ASIC version 0x127
c1841 platform with 131072 Kbytes of main memory
Main memory is configured to 64 bit mode with parity disabled


Upgrade ROMMON initialized
program load complete, entry point: 0x8000f000, size: 0xcb80
program load complete, entry point: 0x8000f000, size: 0xcb80

program load complete, entry point: 0x8000f000, size: 0xc7d244
Self decompressing the image : ######<snipped/>################# [OK]

Smart Init is enabled
smart init is sizing iomem
ID            MEMORY_REQ         TYPE
Unable to read eeprom
                0X003AA110 public buffer pools
                0X00211000 public particle pools
0X0013          0X00035000 Card in slot 1

If any of the above Memory Requirements are
"UNKNOWN", you may be using an unsupported
configuration or there is a software problem and
system operation may be compromised.

Allocating additional 8246951 bytes to IO Memory.
PMem allocated: 117440512 bytes; IOMem allocated: 16777216 bytes

%Error opening tftp://192.168.1.1/c1841-ipbasek9-mz.124-24.T.bin (Timed out)
Retrying...

Loading c1841-ipbasek9-mz.124-24.T.bin from 192.168.1.1 (via FastEthernet0/0): !!
<snipped/>!!!!!!!!!!!!!!!!!!!!!!!!!
[OK - 27542552 bytes]
program load complete, entry point: 0x8000f000, size: 0x1a44278
Self decompressing the image : ######<snipped/>################# [OK]
Validation de l'initialisation système via TFTP

La commande rituelle show version, doit permettre de retrouver la version de l'IOS en cours d'exécution ainsi que son origine.

Router#sh ver
Cisco IOS Software, 1841 Software (C1841-IPBASEK9-M), Version 12.4(24)T, RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2009 by Cisco Systems, Inc.
Compiled Wed 25-Feb-09 16:11 by prod_rel_team

ROM: System Bootstrap, Version 12.4(13r)T5, RELEASE SOFTWARE (fc1)
ROM: Cisco IOS Software, 1841 Software (C1841-IPBASE-M), Version 12.3(11)YZ2, RELEASE SOFTWARE (fc2)

Router uptime is 59 minutes
System returned to ROM by reload at 07:09:22 UTC Tue Jun 16 2009
System image file is "tftp://192.168.1.1/c1841-ipbasek9-mz.124-24.T.bin"
Copie des fichiers SDM en mémoire flash

On utilise à nouveau le service TFTP pour transférer les fichiers nécessaires au fonctionnement de SDM.

Router#copy tftp://192.168.1.1/common.tar flash:
Destination filename [common.tar]?
Accessing tftp://192.168.1.1/common.tar...
Loading common.tar from 192.168.1.1 (via FastEthernet0/0): !!!!!!
[OK - 1505280 bytes]
<snipped>

Une fois que les transferts sont terminés, on obtient la liste des fichiers suivants en mémoire flash.

Router#sh flash:
-#- --length-- -----date/time------ path
1      1505280 Jun 16 2009 07:05:40 common.tar
2       512000 Jun 16 2009 07:05:56 dg_sdm.tar
3       931840 Jun 16 2009 07:06:14 es.tar
4         1038 Jun 16 2009 07:06:22 home.shtml
5       112640 Jun 16 2009 07:06:34 home.tar
6      6389760 Jun 16 2009 07:07:10 sdm.tar
7     13095908 Jun 16 2009 07:08:10 c1841-ipbase-mz.123-11.YZ2.bin

9240576 bytes available (22560768 bytes used)

Le routeur est maintenant prêt. Il reste à traiter le volet interface utilisateur sur le poste de travail.

Configuration du poste de travail

La principale difficulté rencontrée lors de l'utilisation de SDM vient de son intégration sur le poste de travail. Côté routeur, Cisco™ a une «bonne maîtrise du système». Dès que l'on sort du châssis de l'équipement réseau, c'est une autre affaire.

Tout comme dans la section précédente, on a recours à une astuce pour utiliser un navigateur 32 bits et une machine virtuelle Java ancienne. Les opérations présentées ci-après sont effectuées sur un poste de travail installé et configuré avec une distribution Debian GNU/Linux AMD64. Normalement, n'importe quelle installation de distribution doit faire l'affaire dans la mesure où la configuration mise en œuvre ne dépend pas du gestionnaire de paquets.

Au risque de paraître «lourd», il faut rappeler que ce qui suit n'est pas du tout conforme à une bonne pratique d'administration système qui veut que le gestionnaire de paquets ne propose que des paquets contenant les derniers correctifs de sécurité.

Installation Firefox 32 bits dans l'arborescence utilisateur

On commence par créer l'arborescence d'installation. Dans cet exemple, le répertoire ~/cna/sdm.

:~$ mkdir -p ~/cna/sdm

Dans ce répertoire, on télécharge la version Linux 32 bits de Firefox à partir de l'adresse : http://www.mozilla-europe.org/fr/firefox/. On extrait ensuite l'arborescence de l'archive.

:~/cna/sdm$ ls
firefox-3.0.11.tar.bz2
:~/cna/sdm$ tar xf firefox-3.0.11.tar.bz2
:~/cna/sdm$ ls
firefox  firefox-3.0.11.tar.bz2

Avant de lancer l'exécution de ce navigateur, il faut contrôler l'installation des paquets de bibliothèques 32 bits fournies par la distribution.

:~/cna/sdm$ dpkg -l ia32* | grep ^ii
ii  ia32-libs            2.7                ia32 shared libraries for use on amd64 and ia64 systems
ii  ia32-libs-gtk        2.7                GTK+ ia32 shared libraries
ii  ia32-libs-xulrunner  1.8.1.3-0.2        xulrunner ia32 shared libraries

:~/cna/sdm$ dpkg -l lib32* | grep ^ii
ii  lib32asound2         1.0.20-2           shared library for ALSA applications (32 bit)
ii  lib32gcc1            1:4.4.0-6          GCC support library (32 bit Version)
ii  lib32ncurses5        5.7+20090523-1     shared libraries for terminal handling (32-bit)
ii  lib32nss-mdns        0.10-3             NSS module for Multicast DNS name resolution
ii  lib32stdc++6         4.4.0-6            The GNU Standard C++ Library v3 (32 bit Version)
ii  lib32z1              1:1.2.3.3.dfsg-13  compression library - 32 bit runtime

Les bibliothèques 32 bits étant présentes sur le système, on peut lancer le navigateur et contrôler l'état des plugins installés.

:~/cna/sdm/firefox/firefox
Installation Machine Virtuelle Java JRE 6u4

Dans la même arborescence d'installation, on télécharge la machine virtuelle Java à partir de l'adresse du site d'archives : http://java.sun.com/products/archive/. Si on se réfère à la documentation officielle, c'est le paquet baptisé JRE 6u4 qu'il faut installer. On sélectionne ensuite l'archive auto-extractible.

Une fois l'archive présente dans le répertoire ~/cna/sdm, on procède de la même façon qeu pour le navigateur. On extrait l'arborescence et on met en place le lien symbolique d'accès au plugin Java.

:~/cna/sdm$ sh ./jre-6u4-linux-i586.bin
:~/cna/sdm$ ls
firefox  firefox-3.0.11.tar.bz2  jre1.6.0_04  jre-6u4-linux-i586.bin
:~/cna/sdm$ cd firefox/plugins/
:~/cna/sdm/firefox/plugins$ ln -s ../../jre1.6.0_04/plugin/i386/ns7/libjavaplugin_oji.so
:~/cna/sdm/firefox/plugins$ cd ~/cna/sdm
:~/cna/sdm$ firefox/firefox

Il ne reste plus qu'à valider l'installation du plugin Java et sa version.

L'installation du navigateur est maintenant complète et il est possible de placer un raccourci sur le bureau de son gestionnaire graphique favori.

Une fois la validation terminée, il est possible de constituer une archive de sauvegarde de cette configuration de navigation dans l'arborescence utilisateur.

:~/cna$ tar cjf sdm-firefox.tar.bz2 sdm/
:~/cna$ ls -sh sdm-*
66M sdm-firefox.tar.bz2

Pour conclure

Voilà ! Si vous êtes arrivés jusque là vous disposez d'une interface d'utilisation de Security Device Manager fonctionnelle. Il ne reste plus qu'à implanter le navigateur «local» sur l'image maître des postes de la salle de travaux pratiques. Pour les quatre routeurs 1841 du bundle, il est possible d'implanter un fichier de configuration type à recharger depuis le serveur TFTP.

Le mode d'exploitation présenté ici est certainement critiquable en bien des points. Si vous avez d'autres propositions, n'hésitez pas à en faire part !

Merci d'avoir eu le courage de lire ces lignes jusqu'à la fin.

Ce document est disponible en version imprimable au format PDF : sdm-ccna.pdf.

$Id: sdm-ccna.xml 1405 2009-06-19 15:50:48Z latu $

04-06-2009 20:43:34

Anatomie d'un hyperviseur Linux

Alors que j'avance très laborieusement dans la révision de l'article Virtualisation système et enseignement, un article d'une qualité autrement supérieure vient d'être publié sur le site IBM developerWorks sur les caractéristiques d'un hyperviseur pour le noyau Linux : Anatomy of a Linux hypervisor

D'une manière générale, les articles de la série Anatomy of ... sont tous d'une grande qualité. À lire absolument.