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 |
---|