| 1 | Exercices SNMP, partie I |
|---|
| 2 | ====================== |
|---|
| 3 | |
|---|
| 4 | Remarque : Bon nombre de commandes utilisées dans cet exercice n'ont pas |
|---|
| 5 | besoin d'être exécutées en tant que root, mais il est prudent de les exécuter |
|---|
| 6 | toutes en tant que root. |
|---|
| 7 | Il est donc plus simple de lancer un shell en tant que root et d'entrer |
|---|
| 8 | toutes les commandes à ce niveau. Vous pouvez lancer un shell de root ainsi : |
|---|
| 9 | |
|---|
| 10 | $ sudo -s |
|---|
| 11 | |
|---|
| 12 | ou |
|---|
| 13 | |
|---|
| 14 | $ sudo -s |
|---|
| 15 | |
|---|
| 16 | 0. Installation des outils de client (manager) |
|---|
| 17 | ---------------------------------------------- |
|---|
| 18 | |
|---|
| 19 | # apt-get install snmp |
|---|
| 20 | # apt-get install snmp-mibs-downloader |
|---|
| 21 | |
|---|
| 22 | La deuxième des deux commandes ci-dessus téléchargent les MIB |
|---|
| 23 | standards de l'IETF et IANA, qui ne sont pas incluses par défaut. |
|---|
| 24 | |
|---|
| 25 | Note: afin que ceci fonctionne, vous devez activer la source |
|---|
| 26 | Ubuntu "multiverse" dans votre configuration APT. Ceci a déja |
|---|
| 27 | été fait pour vous ici. |
|---|
| 28 | |
|---|
| 29 | Maintenant, éditez le fichier /etc/snmp/snmp.conf |
|---|
| 30 | |
|---|
| 31 | Remplacez cette ligne: |
|---|
| 32 | |
|---|
| 33 | mibs : |
|---|
| 34 | |
|---|
| 35 | ... afin qu'elle devienne: |
|---|
| 36 | |
|---|
| 37 | # mibs : |
|---|
| 38 | |
|---|
| 39 | Note: En ajoutant '#' devant le mot 'mibs "', vous *commentez" la |
|---|
| 40 | déclaration, qui dans son état précédent, disait aux outils SNMP |
|---|
| 41 | de ne *pas* charger automatiquement les MIBs dans le répertoire |
|---|
| 42 | /usr/share/mibs/ |
|---|
| 43 | |
|---|
| 44 | 1. Configuration de SNMP sur votre routeur Cisco |
|---|
| 45 | ------------------------------------------------ |
|---|
| 46 | |
|---|
| 47 | Pour cet exercise, nous allons travailler en groupe. Une personne |
|---|
| 48 | dans chaque groupe sera désignée pour entrer les commandes au clavier. |
|---|
| 49 | |
|---|
| 50 | Rappel: Groupe 1: pc1-4, Groupe2: pc5-8, etc. |
|---|
| 51 | |
|---|
| 52 | Si vous n'êtes pas certain du groupe auquel vous appartenez, référez vous |
|---|
| 53 | au Diagramme Réseau sur http://noc.ws.nsrc.org/ |
|---|
| 54 | |
|---|
| 55 | Connectez-vous à votre routeur: |
|---|
| 56 | |
|---|
| 57 | $ ssh cisco@rtrN.ws.nsrc.org (ou "ssh cisco@10.10.N.254") |
|---|
| 58 | |
|---|
| 59 | où N est le numéro de votre groupe |
|---|
| 60 | |
|---|
| 61 | username: cisco |
|---|
| 62 | password: <MOT DE PASSE DONNÉ EN CLASSE> |
|---|
| 63 | |
|---|
| 64 | rtrN> enable |
|---|
| 65 | Password: <MOT DE PASSE DONNÉ EN CLASSE> |
|---|
| 66 | rtr1# configure terminal (conf t) |
|---|
| 67 | |
|---|
| 68 | On va ajouter une Access List (liste d'accès) pour l'accès à SNMP, |
|---|
| 69 | puis activer SNMP, donner une communauté et indiquer au routeur |
|---|
| 70 | de garder les même index SNMP même après un redémarrage. |
|---|
| 71 | |
|---|
| 72 | rtrN(config)# access-list 99 permit 10.10.0.0 0.0.255.255 |
|---|
| 73 | rtrN(config)# snmp-server community NetManage ro 99 |
|---|
| 74 | rtrN(config)# snmp-server ifindex persist |
|---|
| 75 | |
|---|
| 76 | On sort du mode config et on sauve la configuration en mémoire permanente. |
|---|
| 77 | |
|---|
| 78 | rtrN(config)# exit |
|---|
| 79 | rtrN# write memory (wr mem) |
|---|
| 80 | rtrN# exit (until you return to your pc) |
|---|
| 81 | |
|---|
| 82 | Nous allons voir maintenant si ces changements ont eu un effet. |
|---|
| 83 | |
|---|
| 84 | 2. Essai de SNMP |
|---|
| 85 | --------------- |
|---|
| 86 | |
|---|
| 87 | Pour vérifier que l'installation SNMP est opérationnelle, exécutez la |
|---|
| 88 | commande snmpstatus sur chacun des dispositifs suivants |
|---|
| 89 | |
|---|
| 90 | $ snmpstatus -c 'NetManage' -v2c <IP_ADDRESS> |
|---|
| 91 | |
|---|
| 92 | Où IP_ADDRESS correspond à la liste suivante : |
|---|
| 93 | |
|---|
| 94 | * Le routeur de backbone : 10.10.0.254 |
|---|
| 95 | * Le serveur NOC : 10.10.0.250 |
|---|
| 96 | * Le routeur de votre groupe : 10.10.N.254 |
|---|
| 97 | * Le commutateur du backbone : 10.10.0.253 |
|---|
| 98 | * Les points d'accès : 10.10.0.251 |
|---|
| 99 | |
|---|
| 100 | 3. SNMP Walk et OID |
|---|
| 101 | --------------------- |
|---|
| 102 | |
|---|
| 103 | Vous allez maintenant utiliser la commande 'snmpwalk', qui fait |
|---|
| 104 | partie de la boîte à outils SNMP, sur chacun des équipements testés |
|---|
| 105 | plus haut afin de lister les tables associées aux OID ci-dessous : |
|---|
| 106 | |
|---|
| 107 | .1.3.6.1.2.1.2.2.1.2 |
|---|
| 108 | .1.3.6.1.2.1.31.1.1.1.18 |
|---|
| 109 | .1.3.6.1.4.1.9.9.13.1 |
|---|
| 110 | .1.3.6.1.2.1.25.2.3.1 |
|---|
| 111 | .1.3.6.1.2.1.25.4.2.1 |
|---|
| 112 | |
|---|
| 113 | Vous essaierez avec deux variantes de la commande 'snmpwalk' : |
|---|
| 114 | |
|---|
| 115 | $ snmpwalk -c 'NetManage' -v2c <IP_ADDRESS> <OID> |
|---|
| 116 | |
|---|
| 117 | et |
|---|
| 118 | |
|---|
| 119 | $ snmpwalk -On -c 'NetManage' -v2c <IP_ADDRESS> <OID> |
|---|
| 120 | |
|---|
| 121 | ... où OID est l'un des trois OID listés ci-dessus : .1.3.6... |
|---|
| 122 | |
|---|
| 123 | Remarque : l'option "-On" active l'affichage numérique, à savoir : |
|---|
| 124 | aucune conversion OID <-> MIB de l'objet n'aura lieu. |
|---|
| 125 | |
|---|
| 126 | Pour ces OID : |
|---|
| 127 | |
|---|
| 128 | a) Tous les équipements répondent-ils ? |
|---|
| 129 | |
|---|
| 130 | b) Avez-vous remarqué quelque chose d'important à propos de l'OID |
|---|
| 131 | sur la sortie ? |
|---|
| 132 | |
|---|
| 133 | 4. Configuration de snmpd sur votre PC |
|---|
| 134 | ------------------------------------- |
|---|
| 135 | |
|---|
| 136 | Pour cet exercice, votre groupe doit vérifier que le service snmpd |
|---|
| 137 | fonctionne et répond aux requêtes provenant des autres machines. |
|---|
| 138 | |
|---|
| 139 | On comment par activer snmpd sur votre machine, puis on teste si |
|---|
| 140 | votre machine répond, et enfin on vérifie chacune des machines |
|---|
| 141 | des autres groupes. |
|---|
| 142 | |
|---|
| 143 | * Installation de l'agent SNMP (démon): |
|---|
| 144 | |
|---|
| 145 | # apt-get install snmpd |
|---|
| 146 | |
|---|
| 147 | * Configuration: |
|---|
| 148 | |
|---|
| 149 | On va créer une sauvegarde de la configuration livrée en |
|---|
| 150 | standard, puis on créera la notre. |
|---|
| 151 | |
|---|
| 152 | # cd /etc/snmp |
|---|
| 153 | # mv snmpd.conf snmpd.conf.dist |
|---|
| 154 | # editor snmpd.conf |
|---|
| 155 | |
|---|
| 156 | Ensuite, copiez/collez la section suivante (SAUF les lignes |
|---|
| 157 | "-- couper ici --") |
|---|
| 158 | |
|---|
| 159 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 160 | -- couper ici ------------------------- |
|---|
| 161 | |
|---|
| 162 | # Listen for connections on all interfaces (both IPv4 *and* IPv6) |
|---|
| 163 | agentAddress udp:161,udp6:[::1]:161 |
|---|
| 164 | |
|---|
| 165 | # Configure Read-Only community and restrict who can connect |
|---|
| 166 | rocommunity NetManage 10.10.0.0/16 |
|---|
| 167 | rocommunity NetManage 127.0.0.1 |
|---|
| 168 | |
|---|
| 169 | # Information about this host |
|---|
| 170 | sysLocation NSRC Network Management Workshop |
|---|
| 171 | sysContact sysadm@pcX.ws.nsrc.org |
|---|
| 172 | |
|---|
| 173 | # Which OSI layers are active in this host |
|---|
| 174 | # (Application + End-to-End layers) |
|---|
| 175 | sysServices 72 |
|---|
| 176 | |
|---|
| 177 | # Include proprietary dskTable MIB (in addition to hrStorageTable) |
|---|
| 178 | includeAllDisks 10% |
|---|
| 179 | |
|---|
| 180 | -- couper ici ------------------------- |
|---|
| 181 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 182 | |
|---|
| 183 | Sauver le fichier et quitter l'éditeur. |
|---|
| 184 | |
|---|
| 185 | * Redémarrez snmpd |
|---|
| 186 | |
|---|
| 187 | # service snmpd restart |
|---|
| 188 | |
|---|
| 189 | 5. Vérifiez que snmpd fonctionne: |
|---|
| 190 | --------------------------------- |
|---|
| 191 | |
|---|
| 192 | $ snmpstatus -c NetManage -v2c localhost |
|---|
| 193 | |
|---|
| 194 | Qu'observez-vous ? |
|---|
| 195 | |
|---|
| 196 | 6. Testez vos voisins |
|---|
| 197 | --------------------- |
|---|
| 198 | |
|---|
| 199 | Vérifiez maintenant que vous pouvez exécuter snmpstatus avec le |
|---|
| 200 | serveur de votre voisin : |
|---|
| 201 | |
|---|
| 202 | $ snmpstatus -c NetManage -v2c pcN.ws.nsrc.org |
|---|
| 203 | |
|---|
| 204 | Par exemple, dans le groupe 5, vous pouvez tester avec: |
|---|
| 205 | |
|---|
| 206 | * pc17.ws.nsrc.org |
|---|
| 207 | * pc18.ws.nsrc.org |
|---|
| 208 | * pc19.ws.nsrc.org |
|---|
| 209 | * pc20.ws.nsrc.org |
|---|
| 210 | |
|---|
| 211 | 8. Ajoutez des MIB |
|---|
| 212 | ------------------ |
|---|
| 213 | |
|---|
| 214 | Lorsque vous aviez exécuté : |
|---|
| 215 | |
|---|
| 216 | $ snmpwalk -c NetManage -v2c 10.10.0.1 .1.3.6.1.4.1.9.9.13.1 |
|---|
| 217 | |
|---|
| 218 | vous aviez peut-être remarqué que le client SNMP (snmpwalk) ne |
|---|
| 219 | parvenait pas à interpréter tous les OID issus de l'agent : |
|---|
| 220 | |
|---|
| 221 | SNMPv2-SMI::enterprises.9.9.13.1.3.1.2.1 = STRING: "chassis" |
|---|
| 222 | SNMPv2-SMI::enterprises.9.9.13.1.3.1.6.1 = INTEGER: 1 |
|---|
| 223 | |
|---|
| 224 | Qu'est-ce que "9.9.13.1.3.1" ? |
|---|
| 225 | |
|---|
| 226 | Pour pouvoir interpréter cette information, nous devons télécharger |
|---|
| 227 | des MIB supplémentaires : |
|---|
| 228 | |
|---|
| 229 | Nous allons utiliser les MIBs suivantes (ATTENDEZ avant de les |
|---|
| 230 | récupérer!) |
|---|
| 231 | |
|---|
| 232 | MIB CISCO : ftp://ftp.cisco.com/pub/mibs/v2/CISCO-SMI.my |
|---|
| 233 | ftp://ftp.cisco.com/pub/mibs/v2/CISCO-ENVMON-MIB.my |
|---|
| 234 | |
|---|
| 235 | Pour faciliter les choses, nous avons un miroir local sur |
|---|
| 236 | http://noc.ws.nsrc.org/mibs/ |
|---|
| 237 | |
|---|
| 238 | # apt-get install wget |
|---|
| 239 | # cd /usr/share/mibs |
|---|
| 240 | # mkdir cisco |
|---|
| 241 | # cd cisco |
|---|
| 242 | |
|---|
| 243 | # wget http://noc.ws.nsrc.org/mibs/CISCO-SMI.my |
|---|
| 244 | # wget http://noc.ws.nsrc.org/mibs/CISCO-ENVMON-MIB.my |
|---|
| 245 | |
|---|
| 246 | Il faut maintenant indiquer aux commandes snmp* qu'elles doivent |
|---|
| 247 | charger les MIBs Cisco. Donc, nous allons éditer le fichier |
|---|
| 248 | /etc/snmp/snmp.conf, et ajouter les deux lignes suivantes: |
|---|
| 249 | |
|---|
| 250 | mibdirs +/usr/share/mibs/cisco |
|---|
| 251 | mibs +CISCO-ENVMON-MIB:CISCO-SMI |
|---|
| 252 | |
|---|
| 253 | Enregistrez le fichier et quittez. |
|---|
| 254 | |
|---|
| 255 | Faites maintenant un nouvel essai : |
|---|
| 256 | |
|---|
| 257 | $ snmpwalk -c 'NetManage' -v2c 10.10.X.254 .1.3.6.1.4.1.9.9.13.1 |
|---|
| 258 | |
|---|
| 259 | Que remarquez-vous ? |
|---|
| 260 | |
|---|
| 261 | |
|---|
| 262 | 8. SNMPwalk - le reste de la MIB-II |
|---|
| 263 | -------------------------------- |
|---|
| 264 | |
|---|
| 265 | Essayez d'exécuter snmpwalk sur des hôtes (routeurs, commutateurs, machines) |
|---|
| 266 | que vous n'avez pas encore testés, dans le réseau 10.10.0.X |
|---|
| 267 | |
|---|
| 268 | Notez le type d'informations que vous pouvez obtenir. |
|---|
| 269 | |
|---|
| 270 | $ snmpwalk -c 'NetManage' -v2c 10.10.0.X ifDescr |
|---|
| 271 | $ snmpwalk -c 'NetManage' -v2c 10.10.0.X ifAlias |
|---|
| 272 | $ snmpwalk -c 'NetManage' -v2c 10.10.0.X ifTable | less |
|---|
| 273 | $ snmpwalk -c 'NetManage' -v2c 10.10.0.X ifXTable | less |
|---|
| 274 | $ snmpwalk -c 'NetManage' -v2c 10.10.0.X ifOperStatus |
|---|
| 275 | $ snmpwalk -c 'NetManage' -v2c 10.10.0.X ifAdminStatus |
|---|
| 276 | $ snmpwalk -c 'NetManage' -v2c 10.10.0.X if |
|---|
| 277 | |
|---|
| 278 | (Avec la commande 'less', utilisez la touche espace pour la page suivante, |
|---|
| 279 | 'b' pour la page précédente, et 'q' pour quitter). |
|---|
| 280 | |
|---|
| 281 | Voyez vous une différence entre 'ifTable' et 'ifXTble' ? |
|---|
| 282 | |
|---|
| 283 | Pouvez-vous expliquer la différence entre ifOperStatus et ifAdminStatus ? |
|---|
| 284 | Pouvez-vous imaginer un scénario où cela pourrait être utile ? |
|---|
| 285 | |
|---|
| 286 | 9. Autres choses intéressantes dans les MIB-OID |
|---|
| 287 | ------------------------------------------------ |
|---|
| 288 | |
|---|
| 289 | * Utilisez SNMP pour examiner: |
|---|
| 290 | |
|---|
| 291 | a) les processus qui s'exécutent sur le serveur de votre voisin |
|---|
| 292 | (hrSWRun) |
|---|
| 293 | b) l'espace disque disponible sur le serveur de votre voisin |
|---|
| 294 | (hrStorage) |
|---|
| 295 | c) les interfaces sur le serveur de votre voisin (ifIndex, IfDescr) |
|---|
| 296 | |
|---|
| 297 | Pouvez-vous utiliser des noms abrégés pour parcourir ces tables OID ? |
|---|
| 298 | |
|---|
| 299 | * Faites un essai avec la commande "snmptranslate", par exemple : |
|---|
| 300 | |
|---|
| 301 | $ snmptranslate .1.3.6.1.4.1.9.9.13.1 |
|---|
| 302 | |
|---|
| 303 | * Essayez avec différents OID |
|---|