La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Supervision Cours 3 SNMP Eric Garcia 2002 IUT GTR, Montbéliard.

Présentations similaires


Présentation au sujet: "Supervision Cours 3 SNMP Eric Garcia 2002 IUT GTR, Montbéliard."— Transcription de la présentation:

1 Supervision Cours 3 SNMP Eric Garcia 2002 IUT GTR, Montbéliard

2 Références ? : Modèle de communication
François Spies, Julien Bourgeois : Supervision de réseaux Mentor Technologies : Configuring SNMP in Cisco Routers

3 Plan SNMP : fonctionnement SNMP sous linux SNMP sur un routeur

4 Principe de SNMP

5 Définition Simple Network Management Protocol
Adopté par tous les constructeurs Langage commun à tous les appareils réseaux modem, PC, routeur, commutateurs, etc. Architecture agent/superviseur

6 Rôle et architecture Quelle information est intéressante ?
Comment nommer les éléments ? Comment obtenir et fixer des valeurs ? Architecture agent/superviseur Communication basées sur UDP Agent attend des ordres du superviseur Agent peut "désobéir" avec un trap

7 Les requêtes UDP, port 161 get-request : lecture
get-next-request : lecture séquentielle set-request : écriture get-response : attente réponse UDP, port 162 trap : alarme récupération par le superviseur

8 Service de gestion Trois primitives de service
GET : lecture d ’une valeur d ’objet géré SET : écriture d ’une valeur d ’objet géré GET-NEXT : lecture du « suivant » Une primitive de notification TRAP : un événement prédéfini

9 GET Question / Lecture /Réponse

10 Accès aux objets gérés Requête d’un Gestionnaire
lecture ou écriture, … paramètre : l ’oid (le type de l ’objet géré) si variable simple oid.0 si variable dans une table oid.<valeur index 1>.….<valeur index n>

11 Exemple de lecture

12 Le service GET Requête : une liste d’oid .0
Réponses : une liste de (oid,valeur) ou erreur

13 Le service SET Requête / Recherche / Mise à jour / Notification

14 Le service SET Requête : une liste de couple oid, valeur
Réponse : la même liste ou erreur

15 Le service GET-NEXT Question / Recherche du suivant /Lecture /Réponse

16 Le service GET-NEXT Requête : un oid o
Réponse : l ’oid et la valeur de l ’objet géré suivant o

17 Parcours

18 Parcours d’une MIB

19 Parcours d’une table

20 Parcours d’une table

21 Parcours d’une table

22 Parcours d’une table

23 Notification Trap ou alarme

24 Les traps 7 différents types d'alarmes coldStart, warmStart
linkDown, linkUp authetificationFailure egpNeighborLoss enterpriseSpecific 5 destinataires maximum

25 Les erreurs Champs : Error status Error index Codes d'erreur :
0 : noError 1 : tooBig 2 : noSuchName 3 : badValue 4 : readOnly 5 : genErr

26 Les droits d’accès Les types de droits d'accès : read-only read-write
write-only not-accessible Connaissance du nom de la communauté Restriction par sous-arbres de la MIB (MIB view)

27 La sécurité : communauté
Relation N-N entre Gestionnaires et Agents Un agent doit pouvoir contrôler son accès suivant les Gestionnaires Solution de mots de passe Un Agent définit des noms de communautés (public) Toute requête de Gestionnaire contient un nom (public)

28 Profil de communauté Une communauté a une vue partielle de la MIB
a des droits sur cette vue (mode d ’accès) droits à confronter avec ceux des objets gérés

29 Illustration

30 Plan SNMP : fonctionnement SNMP sous linux SNMP sur un routeur

31 Installation et configuration
Installation Debian : client snmp : apt-get install snmp serveur snmp = agent snmp : apt-get install snmpd Fichiers de configuration Serveur /etc/snmp/snmpd.conf ~/snmpd.conf Client /usr/share/snmp/snmpconf-data/snmp.conf

32 Fichier de configuration
########################################################################### # snmpd.conf # # - created by the snmpconf configuration program # SECTION: Access Control Setup # This section defines who is allowed to talk to your running # snmp agent. #rocommunity: a SNMPv1/SNMPv2c read-only access community name #arguments: community [default|hostname|network/bits] [oid] rocommunity public #rwcommunity: a SNMPv1/SNMPv2c read-write access community name rwcommunity public ...

33 Fichiers MIB Après l’installation du package snmp /usr/share/snmp/mibs
fichiers des différentes parties de mib RFC1213-MIB.txt, RMON-MIB.txt… Fichiers ASN.1 accès en lecture écriture, types (SNMPV2-SMI.txt) explications (SNMPV2-MIB.txt)…

34 Fichiers MIB SNMPv2-SMI
Fichier SNMPv2-SMI Définition de la partie de l’arbre de référence Définition des types utilisés dans cet arbre SNMPv2-SMI DEFINITIONS ::= BEGIN -- the path to the root org OBJECT IDENTIFIER ::= { iso 3 } -- "iso" = 1 dod OBJECT IDENTIFIER ::= { org 6 } internet OBJECT IDENTIFIER ::= { dod 1 } directory OBJECT IDENTIFIER ::= { internet 1 } mgmt OBJECT IDENTIFIER ::= { internet 2 } mib OBJECT IDENTIFIER ::= { mgmt 1 } transmission OBJECT IDENTIFIER ::= { mib-2 10 } experimental OBJECT IDENTIFIER ::= { internet 3 } private OBJECT IDENTIFIER ::= { internet 4 } enterprises OBJECT IDENTIFIER ::= { private 1 } ...

35 Fichiers MIB Vérification d’une requête avant son émission
impossible d’envoyer un SET avec un mauvais type MIB présente sur le gestionnaire et la ressource (ceci n’est pas obligatoire mais semble être la solution la plus souvent utilisée) Ouvrir SNMPv2-MIB

36 Fichiers MIB

37 snmpwalk Parcours de la MIB snmpwalk –v 1 –c public 172.20.168.254
system.sysDescr.0 = Cisco Internetwork Operating System Software IOS (tm) 1600 Software (C1600-SY-M), Version 12.0(5)T, RELEASE SOFTWARE (fc1) Copyright (c) by cisco Systems, Inc. Compiled Fri 23-Jul-99 06:04 by kpma system.sysObjectID.0 = OID: enterprises system.sysUpTime.0 = Timeticks: ( ) 66 days, 13:38:02.78 system.sysContact.0 = system.sysName.0 = moi system.sysLocation.0 = system.sysServices.0 = 78 system.sysORLastChange.0 = Timeticks: (0) 0:00:00.00 interfaces.ifNumber.0 = 4 interfaces.ifTable.ifEntry.ifIndex.1 = 1 ...

38 Snmpwalk : syntaxe Utilise la requête SNMP GET-NEXT pour parcourir l’arbre d’une entité réseau Un OID peut être donné en ligne de commande pour spécifier la portion de l’arbre devant être parcourue snmpwalk -Os -c public -v 1 zeus system will retrieve all of the variables under system: sysDescr.0 = STRING: "SunOS zeus.net.cmu.edu 4.1.3_U1 1 sun4m" sysObjectID.0 = OID: enterprises.hp.nm.hpsystem sysUpTime.0 = Timeticks: ( ) 17 days, 23:19:05 sysContact.0 = STRING: "" sysName.0 = STRING: "zeus.net.cmu.edu" sysLocation.0 = STRING: "" sysServices.0 = INTEGER: 72

39 snmpget Demande la valeur d’une variable correspondant à l’OID donné en ligne de commande snmpget –v 1 –c public ou snmpget –v 1 –c public system.sysDescr.0 system.sysDescr.0 = Cisco Internetwork Operating System Software IOS (tm) 1600 Software (C1600-SY-M), Version 12.0(5)T, RELEASE SOFTWARE (fc1) Copyright (c) by cisco Systems, Inc. Compiled Fri 23-Jul-99 06:04 by kpma snmpget -v 1 -c public localhost IF-MIB::ifNumber.0 = INTEGER: 2

40 Snmpget : syntaxe et erreurs
Différence d’écriture au niveau des raccourcis d’OID en fonction des version du client SNMP Paramétrage pour ne pas à avoir à taper tous les numéros jusqu’à MIBII ( ) snmpget -v1 -c public localhost system.sysUpTime system.sysContact.0 Error in packet Reason: (noSuchName) There is no such variable name in this MIB. This name doesn't exist: system.sysUpTime system.sysContact.0 = STRING:

41 snmpset Met à jour la valeur d’une variable correspondant à l’OID donné en ligne de commande Commande snmpset -v 1 -c public interfaces.ifTable.ifEntry.ifAdminStatus.2 i 1 Réponse interfaces.ifTable.ifEntry.ifAdminStatus.2 = up(1)

42 Snmpset : syntaxe Types i INTEGER n NULLOBJ u UNSIGNED o OBJID
s STRING t TIMETICKS x HEX STRING a IPADDRESS d DECIMAL STRING b BITS Exemple snmpset -c private -v 1 test-hub system.sysContact.0 s ip.ipforwarding.0 = 2 will set the variables sysContact.0 and ipForwarding.0: system.sysContact.0 = STRING: ip.ipForwarding.0 = INTEGER: not-forwarding(2)

43 snmpcmd man snmpcmd snmpcmd [-h|-H|-V] [-v (1 | 2c | 3) ]
[-O <OUTOPTS> ] [-I <INOPTS> ] [-P <PARSEROPTS> ] [-m mibs] [-M mibdirs] [-d] [-D <TOKEN[,TOKEN,...]> ] [-r retries] [-t timeout] [-p port] [-T UDP|TCP] [-c community] [-e engineid] [-Z boots time] [-n contextname] [-l seclevel] [-u secname] [-a authproto][-A authpasswd][-x privproto][-X priv- passwd] agent [community] commandparams

44 Sécurité Des tests effectués à l'université de OULU mettent en évidence que de nombreuses vulnérabilités ( débordement de mémoire, chaîne de format, ...) existent dans les routines de décodage et de traitement des messages SNMP. utiliser les capacités de filtrage que possèdent que possèdent certains agent SNMP (ACL) ne pas utiliser les noms de communautés positionnés lors de l'installation par défaut (public …) filtrer les ports 161/udp et 162/udp utilisés par le protocole SNMP V1 au niveau du garde-barrière afin d'empêcher l'exploitation de ces vulnérabilités depuis l'Internet

45 Différentes versions 3 versions du protocole SNMP : SNMPv1, SNMPv2 et SNMPv3. La version 1 est encore la plus utilisée. La version 2 est beaucoup plus complexe que la version 1 elle contient un niveau hiérarchique d’administration, ce qui permet d’avoir un administrateur central et de petits NMS dans le réseau. elle incorpore aussi un niveau plus élevé de sécurité, elle contient une gamme de messages d’erreurs plus vaste, elle utilise un nouveau type de tables MIB, les MIB II, qui contiennent plus d’éléments.

46 Différentes versions pas un standard complet (Full Standard)
La version 2 n’a cependant pas remplacé la version 1 du protocole, pas un standard complet (Full Standard) la version 1 est simple et fonctionne très bien. La version 3 pour sa part n’est pas encore au point devrait éventuellement remplacer la version 1 Cette version comprend : un module de sécurité plus élevée un module de traitements de messages des modules d’application et du répartiteur de paquets elle permet aussi d’interagir avec les anciennes versions.

47 Défauts / Avantages SNMP V1 authentification simpliste car le nom de la communauté circule en clair sur le réseau. consultation des tables fastidieuse SNMP V2 Mécanisme d'authentification incompatible avec SNMP v1 Peut s'appuyer sur IP, IPX, OSI Primitives d'interrogation de tables Encore peu utilisé Sécurité : notion de Party (échange) 1 adresse réseau, mot de passe, protocole de chiffrement, l'agent restreint l'accès à une partie de l'arborescence, une requête a une durée de vie limitée.

48 Options V2 et V3 -e engineid
sets the authoritative(security) engineID used for SNMP v3 Request messages. This is the engineID of the agent or proxy (e.g., ). will be discovered if not supplied) -n contextname sets the destination contextName used for SNMP v3 messages. Default contextName is the empty string "". -l seclevel sets the securityLevel used for SNMP v3 messages (noAuthNoPriv|authNoPriv|authPriv). Appropriate pass phrase(s) must provided when using any level higher than noAuthNoPriv. -u secname sets the securityName used for authenticated SNMP v3 messages.

49 Options V2 et V3 -a authproto
sets the authentication protocol (MD5|SHA) used for authenticated SNMP v3 messages. -A authpasswd sets the authentication pass phrase used for -X privpasswd sets the privacy pass phrase used for encrypted SNMP v3 messages.

50 MIB Privée

51 Snmpwalk privé snmpwalk -Os -c public -v 1 –m all zeus private
enterprises.cisco.local = "..System Bootstrap, Version 12.0(3)T, RELEASE SOFTWARE (fc1)..Copyright (c) 1999 by cisco Systems, Inc..." enterprises.cisco.local = "bus error at PC 0x266BBAA, address 0x " enterprises.cisco.local = "LaCultureDeLaBettrave" enterprises.cisco.local = "univ-fcomte.fr" ... enterprises.cisco.ciscoMgmt.ciscoImageMIB.ciscoImageMIBObjects.ciscoImageTable.ciscoImageEntry.ciscoImageString.3 = CW_FAMILY$C1600$ enterprises.cisco.ciscoMgmt.ciscoImageMIB.ciscoImageMIBObjects.ciscoImageTable.ciscoImageEntry.ciscoImageString.4 = CW_FEATURE$BASIC-IP PLUS$ enterprises.cisco.ciscoMgmt.ciscoImageMIB.ciscoImageMIBObjects.ciscoImageTable.ciscoImageEntry.ciscoImageString.5 = CW_VERSION$12.0(5)T, $

52 MIB Privée Cisco = branche 9 de entreprises (voir CISCO-SMI)
CISCO-SMI DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-IDENTITY, enterprises FROM SNMPv2-SMI; cisco MODULE-IDENTITY LAST-UPDATED " Z" ORGANIZATION "Cisco Systems, Inc." CONTACT-INFO ... ... DESCRIPTION "Initial version of this MIB module." ::= { enterprises 9 } -- assigned by IANA

53 MIB Privée snmpget -v 1 -c public -m all system.sysObjectID.0 = OID: enterprises CISCO-PRODUCTS-MIB.my ajoutée dans /usr/share/snmp/mibs (branche 1 de cisco) system.sysObjectID.0 = OID: enterprises.cisco.ciscoProducts.cisco1605

54 MIB Privée Cisco MIB privée = morceau d’une branche d’une entreprise
Attention aux erreurs si une partie de branche est utilisée sans avoir importer la partie qui permet de la relier à la racine cisco-bus.mib cisco-lecs.mib cisco-les.mib lane-client.mib cisco-vlan-bridge.mib atm-forum.mib Fichier cisco-smi.mib Définition de la partie CISCO de l’arbre

55 Cisco.com et MIBs Pour télécharger des MIBs pour des plate-formes particulières, utiliser la MIB Locator Pour accéder à la MIB Locator = compte chez Cisco.com : MIBs Courantes : liste, informations par plate-forme, téléchargement :

56 Cisco MIB Locator

57 L’arbre de référence

58 MIB Privée QoS Fichier MIB CISCO-QUEUE-MIB
ciscoQueueObjects OBJECT IDENTIFIER ::= { ciscoQueueMIB 1 } ciscoQueueTraps OBJECT IDENTIFIER ::= { ciscoQueueMIB 2 } ciscoQueueConformance OBJECT IDENTIFIER ::= { ciscoQueueMIB 3 } CQAlgorithm ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "The type of queuing algorithm used on the interface." SYNTAX INTEGER { fifo(1), -- First In First Out priority(2), -- Priority Queuing custom(3), -- Custom Queuing weightedFair(4) -- Weighted Fair Queuing } ...

59 MIB Privée QoS snmpwalk -v 1 -c public -m all internet.private   enterprises.cisco.local = "..System Bootstrap, Version 12.0(3)T, RELEASE SOFTWARE (fc1)..Copyright (c) 1999 by cisco Systems, Inc...“ ... enterprises.cisco.ciscoMgmt.ciscoQueueMIB.ciscoQueueObjects.cQIfTable.cQIfEntry.cQIfQType.1 = fifo(1) enterprises.cisco.ciscoMgmt.ciscoQueueMIB.ciscoQueueObjects.cQIfTable.cQIfEntry.cQIfQType.2 = fifo(1) enterprises.cisco.ciscoMgmt.ciscoQueueMIB.ciscoQueueObjects.cQIfTable.cQIfEntry.cQIfQType.3 = weightedFair(4)

60 Plan SNMP : fonctionnement SNMP sous linux SNMP sur un routeur

61 Configurer les accès au routeur
Activer l’agent SNMP du routeur RO, RW Configuration d’une community string équivalent à un mot de passe public, private, secret… snmp-server community public ro snmp-server community ourCommStr ro

62 Sécurité : mot de passe Utilisation possible de serveurs centralisés de mots de passes (SNMPv2 ou v3) XTACACS TACACS+ Voir cours de sécurité tacacs-server host A.B.C.D enable use-tacacs tacacs-server authenticate enable ...

63 Sécurité : access list Éviter les noms de communauté classiques pour un agent RW Le paramètre 60 restreint l’accès en écriture aux machines autorisées par l’ACL 60 ici deux machines dites gestionnaires possibilité de wildcard aux machines d’un sous-réseau snmp-server community topsecret rw 60 access-list 60 permit access-list 60 permit

64 Sécurité : view Paramètre view = restreint l’accès à une partie de la MIB Création de la vue noRouteTable avec les 4 dernières lignes snmp-server community hideit ro view noRouteTable snmp-server view noRouteTable internet included snmp-server view noRouteTable ip.21 excluded snmp-server view noRouteTable ip.22 excluded snmp-server view noRouteTable ifMIB excluded

65 Traps : configuration Configuration d’alarmes
envoyées à l’initiative de l’agent vers une ou plusieurs stations d’administration dédiées différentes alarmes en fonction de l’IOS utilisé snmp-server enable traps snmp-server enable traps frame-relay snmp-server enable traps envmon temperature

66 Traps : syslogd sur PC Configuration de la ou des stations d’administration dédiées à la réception des alarmes 1) reçoit toutes les alarmes 2) reçoit les traps snmp et bgp et les traps snmp et frame-relay snmp-server host public snmp-server host public snmp bgp snmp-server host public snmp frame-relay Configuration sur la station NMS Lancer le démon syslogd sur la station pour pouvoir utiliser les fichiers de logs

67 Les types d’alarmes authentication : échecs d’authentification
pour SNMPv1 = mauvaise community string Pour v2 et v3 mauvais mot de passe linkup : activation d’un lien linkdown : désactivation d’un lien coldstart : réinitialisation du périphérique avec possibilité de modification de la configuration de l’agent warmstart : réinitialisation du périphérique sans modification de la configuration de l’agent

68 Traps : versions d’IOS Release Modification
11.3 La commande snmp-server enable traps snmp authentication à été introduite à la place de snmp-server trap-authentication 12.1(3)T Les traps suivantes ont été ajoutées : • linkup • linkdown • coldstart 12.1(5)T Ajout de la commande warmstart

69 Autres commandes Permettre le redémarrage d’un routeur par une requête SNMP utilisé par le logiciel CiscoWork lors de téléchargement d’un nouvel IOS snmp-server system-shutdown Champs souvent non renseignés snmp-server contact XXXX snmp-server location YYYY

70 Bonus : Host et DNS Host table
utile même si le DNS est configuré : risques de pannes mettre les routeurs les plus importants ou les noms des serveurs TFTP pour les fichiers de conf. dans cette table ip host new_york_router a.b.c.d e.f.g.h i.j.k.l ip host chicago_router a.b.c.g m.n.o.p DNS ip domain-name univ-fcomte.fr ip name-server ip name-server no ip domain-lookup : pour invalider la rechetrche d’un DNS

71 Bonus : Accès Telnet Activer l’accès en telnet au routeur
on peut améliorer un peu la sécurité avec les ACL access-list 1 permit a.b.c access-list 1 permit a.b.g line vty 0 4 access-class 1 in login password xxx : password telnet exec-timeout 5 0 : logout auto si inactivité 5 minutes : (10 minutes par défaut) : exec-timeout 0 0 si on n’en veut pas

72 Exemple de config access-list 60 permit a.b.c.d 0.0.0.0
access-list 60 permit e.f.g.h access-list 60 deny snmp-server community password1 RO snmp-server community password2 RO 60 snmp-server community password3 RW 60 snmp-server system-shutdown snmp-server chassis-id YYYY snmp-server packetsize 4000 snmp-server host a.b.c.d snmp-server host a.b.c.g snmp-server contact XXXX snmp-server location YYYY snmp-server trap-authentication

73 Configurer l’agent sur un AP

74 Configurer l’agent sur un AP

75 Snmpwalk snmpwalk sur un Acces Point Cisco Aironet 350
~]$ snmpwalk -v 1 -c root system system.sysDescr.0 = Cisco 350 Series AP 11.21 system.sysObjectID.0 = OID: enterprises system.sysUpTime.0 = Timeticks: ( ) 17:49:56.00 system.sysContact.0 = Aironet Wireless Communications, Inc. system.sysName.0 = AP350-58b47c system.sysLocation.0 = Besancon system.sysServices.0 = 79


Télécharger ppt "Supervision Cours 3 SNMP Eric Garcia 2002 IUT GTR, Montbéliard."

Présentations similaires


Annonces Google