Beruflich Dokumente
Kultur Dokumente
Plan
SNMP : fonctionnement SNMP sous linux SNMP sur un routeur routeur sur un
Principe de SNMP
Dfinition
Simple Network Management Protocol Adopt par tous les constructeurs Langage commun tous les appareils rseaux modem, PC, routeur, commutateurs, etc. Architecture agent/superviseur
Rle et architecture
Quelle information est intressante ? Comment nommer les lments ? Comment obtenir et fixer des valeurs ? Architecture agent/superviseur Communication bases sur UDP Agent attend des ordres du superviseur Agent peut "dsobir" avec un trap
Les requtes
UDP, port 161 get-request : lecture get-next-request : lecture squentielle set-request : criture get-response : attente rponse UDP, port 162 trap : alarme rcupration par le superviseur
Service de gestion
Trois primitives de service GET : lecture d une valeur d objet gr SET : criture d une valeur d objet gr GET-NEXT : lecture du suivant Une primitive de notification TRAP : un vnement prdfini
GET
Exemple de lecture
Le service GET
Requte : une liste doid .0 Rponses : une liste de (oid,valeur) ou erreur
Le service SET
Requte / Recherche / Mise jour / Notification
Le service SET
Requte : une liste de couple oid, valeur Rponse : la mme liste ou erreur
Le service GET-NEXT
Question / Recherche du suivant /Lecture /Rponse
Le service GET-NEXT
Requte : un oid o Rponse : l oid et la valeur de l objet gr suivant o
Parcours
Notification
Trap ou alarme
Les traps
7 diffrents types d'alarmes coldStart, warmStart linkDown, linkUp authetificationFailure egpNeighborLoss enterpriseSpecific 5 destinataires maximum
Les erreurs
Champs : Error status Error index Codes d'erreur : 0 : noError 1 : tooBig 2 : noSuchName 3 : badValue 4 : readOnly 5 : genErr
Les types de droits d'accs : read-only read-write write-only not-accessible Connaissance du nom de la communaut Restriction par sous-arbres de la MIB (MIB view)
La scurit : communaut
Relation N-N entre Gestionnaires et Agents Un agent doit pouvoir contrler son accs suivant les Gestionnaires Solution de mots de passe Un Agent dfinit des noms de communauts (public) Toute requte de Gestionnaire contient un nom (public)
Profil de communaut
Une communaut a une vue partielle de la MIB a des droits sur cette vue (mode d accs) droits confronter avec ceux des objets grs
Illustration
Plan
SNMP : fonctionnement SNMP sous linux SNMP sur un routeur routeur sur un
Installation et configuration
Installation Fedora : client snmp : yum install net-snmp-utils serveur snmp = agent snmp : yum install net-snmp Fichiers de configuration Serveur /etc/snmp/snmpd.conf /etc/snmp/snmptrapd.conf Client /usr/share/snmp/snmpconf-data/
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 #arguments: community [default|hostname|network/bits] [oid] rwcommunity public ...
Fichiers MIB
Aprs linstallation du package snmp /usr/share/snmp/mibs fichiers des diffrentes parties de mib RFC1213-MIB.txt, RMON-MIB.txt Fichiers ASN.1 accs en lecture criture, types (SNMPV2-SMI.txt) explications (SNMPV2-MIB.txt)
::= ::= ::= ::= ::= ::= ::= ::= ::= ::=
{ { { { { { { { { {
iso 3 } -- "iso" = 1 org 6 } dod 1 } internet 1 } internet 2 } mgmt 1 } mib-2 10 } internet 3 } internet 4 } private 1 } ...
Fichiers MIB
Vrification dune requte avant son mission impossible denvoyer un SET avec un mauvais type MIB prsente sur le gestionnaire et la ressource (ceci nest pas obligatoire mais semble tre la solution la plus souvent utilise)
Ouvrir SNMPv2-MIB
Fichiers MIB
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) 1986-1999 by cisco Systems, Inc. Compiled Fri 23-Jul-99 06:04 by kpma system.sysObjectID.0 = OID: enterprises.9.1.172 system.sysUpTime.0 = Timeticks: (575148278) 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 ...
Snmpwalk : syntaxe
Utilise la requte SNMP GET-NEXT pour parcourir larbre dune entit rseau Un OID peut tre donn en ligne de commande pour spcifier la portion de larbre 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.10.1.1 sysUpTime.0 = Timeticks: (155274552) 17 days, 23:19:05 sysContact.0 = STRING: "" sysName.0 = STRING: "zeus.net.cmu.edu" sysLocation.0 = STRING: "" sysServices.0 = INTEGER: 72
snmpget
Demande la valeur dune variable correspondant lOID donn en ligne de commande snmpget v 1 c public 172.20.168.254 1.1.0 ou snmpget v 1 c public 172.20.168.254 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) 19861999 by cisco Systems, Inc. Compiled Fri 23-Jul-99 06:04 by kpma
snmpset
Met jour la valeur dune variable correspondant lOID donn en ligne de commande Commande snmpset -v 1 -c public 194.57.88.50 interfaces.ifTable.ifEntry.ifAdminStatus.2 i 1 Rponse interfaces.ifTable.ifEntry.ifAdminStatus.2 = up(1)
Snmpset : syntaxe
Types
i u s x d INTEGER UNSIGNED STRING HEX STRING DECIMAL STRING n o t a b NULLOBJ OBJID TIMETICKS IPADDRESS BITS
Exemple snmpset -c private -v 1 test-hub system.sysContact.0 dpz@noc.rut-gers.edu ip.ipforwarding.0 = 2 will set the variables sysContact.0 and ipForwarding.0: system.sysContact.0 = STRING: "dpz@noc.rutgers.edu" ip.ipForwarding.0 = INTEGER: not-forwarding(2) s
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 privpasswd] agent [community] commandparams
Scurit
Des tests effectus l'universit de OULU mettent en vidence que de nombreuses vulnrabilits ( dbordement de mmoire, chane de format, ...) existent dans les routines de dcodage et de traitement des messages SNMP. utiliser les capacits de filtrage que possdent que possdent certains agent SNMP (ACL) ne pas utiliser les noms de communauts positionns lors de l'installation par dfaut (public ) filtrer les ports 161/udp et 162/udp utiliss par le protocole SNMP V1 au niveau du garde-barrire afin d'empcher l'exploitation de ces vulnrabilits depuis l'Internet
Diffrentes versions
3 versions du protocole SNMP : SNMPv1, SNMPv2 et SNMPv3. La version 1 est encore la plus utilise. La version 2 est beaucoup plus complexe que la version 1 elle contient un niveau hirarchique dadministration, ce qui permet davoir un administrateur central et de petits NMS dans le rseau. elle incorpore aussi un niveau plus lev de scurit, elle contient une gamme de messages derreurs plus vaste, elle utilise un nouveau type de tables MIB, les MIB II, qui contiennent plus dlments.
Diffrentes versions
La version 2 na cependant pas remplac la version 1 du protocole, pas un standard complet (Full Standard) la version 1 est simple et fonctionne trs bien. La version 3 pour sa part nest pas encore au point devrait ventuellement remplacer la version 1 Cette version comprend : un module de scurit plus leve un module de traitements de messages des modules dapplication et du rpartiteur de paquets elle permet aussi dinteragir avec les anciennes versions.
Dfauts / Avantages
SNMP V1 authentification simpliste car le nom de la communaut circule en clair sur le rseau. consultation des tables fastidieuse SNMP V2 Mcanisme d'authentification incompatible avec SNMP v1 Peut s'appuyer sur IP, IPX, OSI Primitives d'interrogation de tables Encore peu utilis Scurit : notion de Party (change)
1 adresse rseau, mot de passe, protocole de chiffrement, l'agent restreint l'accs une partie de l'arborescence, une requte a une dure de vie limite.
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., 800000020109840301). 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.
Options V2 et V3
-a authproto sets the authentication protocol (MD5|SHA) used for authenticated SNMP v3 messages. -A authpasswd sets the authentication pass authenticated SNMP v3 messages. -X privpasswd sets the privacy SNMP v3 messages. pass phrase used for encrypted phrase used for
MIB Prive
Snmpwalk priv
snmpwalk -Os -c public -v 1 m all zeus private enterprises.cisco.local.1.1.0 = "..System Bootstrap, Version 12.0(3)T, RELEASE SOFTWARE (fc1)..Copyright (c) 1999 by cisco Systems, Inc..." enterprises.cisco.local.1.2.0 = "bus error at PC 0x266BBAA, address 0x65656569" enterprises.cisco.local.1.3.0 = "LaCultureDeLaBettrave" enterprises.cisco.local.1.4.0 = "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, $
MIB Prive
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 "200001110000Z" ORGANIZATION "Cisco Systems, Inc." CONTACT-INFO ... ... DESCRIPTION "Initial version of this MIB module." ::= { enterprises 9 } -- assigned by IANA
MIB Prive
Cisco.com et MIBs
Pour tlcharger des MIBs pour des plate-formes particulires, utiliser la MIB Locator http://tools.cisco.com/ITDIT/MIBS/servlet/index Pour accder la MIB Locator = compte chez Cisco.com : http://www.cisco.com/register MIBs Courantes : liste, informations par plate-forme, tlchargement :
http://www.cisco.com/public/sw-center/netmgmt/cmtk/mibs.shtml
Larbre de rfrence
... enterprises.cisco.ciscoMgmt.ciscoQueueMIB.ciscoQueueObjects.cQIfTable.c QIfEntry.cQIfQType.1 = fifo(1) enterprises.cisco.ciscoMgmt.ciscoQueueMIB.ciscoQueueObjects.cQIfTable.c QIfEntry.cQIfQType.2 = fifo(1) enterprises.cisco.ciscoMgmt.ciscoQueueMIB.ciscoQueueObjects.cQIfTable.c QIfEntry.cQIfQType.3 = weightedFair(4)
Plan
SNMP : fonctionnement SNMP sous linux SNMP sur un routeur routeur sur un
Scurit : view
Paramtre view = restreint laccs une partie de la MIB Cration de la vue noRouteTable avec les 4 dernires lignes snmp-server community hideit ro view noRouteTable snmp-server snmp-server snmp-server snmp-server view view view view noRouteTable noRouteTable noRouteTable noRouteTable internet included ip.21 excluded ip.22 excluded ifMIB excluded
Traps : configuration
Configuration dalarmes envoyes linitiative de lagent vers une ou plusieurs stations dadministration ddies diffrentes alarmes en fonction de lIOS utilis snmp-server enable traps snmp-server enable traps frame-relay snmp-server enable traps envmon temperature
snmp-server host 10.1.1.1 public snmp-server host 10.1.1.1 public snmp bgp snmp-server host 10.2.2.2 public snmp frame-relay Configuration sur la station NMS Lancer le dmon syslogd sur la station pour pouvoir utiliser les fichiers de logs
12.1(3)T
Autres commandes
Permettre le redmarrage dun routeur par une requte SNMP utilis par le logiciel CiscoWork lors de tlchargement dun nouvel IOS snmp-server system-shutdown
Champs souvent non renseigns snmp-server contact XXXX snmp-server location YYYY
Exemple de config
access-list access-list access-list snmp-server snmp-server snmp-server snmp-server snmp-server snmp-server snmp-server snmp-server snmp-server snmp-server snmp-server 60 permit a.b.c.d 0.0.0.0 60 permit e.f.g.h 0.0.0.0 60 deny 0.0.0.0 255.255.255.255 community password1 RO community password2 RO 60 community password3 RW 60 system-shutdown chassis-id YYYY packetsize 4000 host a.b.c.d host a.b.c.g contact XXXX location YYYY trap-authentication
Snmpwalk
snmpwalk sur un Acces Point Cisco Aironet 350
[garcia@zelda ~]$ snmpwalk -v 1 -c root 194.57.88.51 system system.sysDescr.0 = Cisco 350 Series AP 11.21 system.sysObjectID.0 = OID: enterprises.9.1.380 system.sysUpTime.0 = Timeticks: (6419600) 17:49:56.00 system.sysContact.0 = Aironet Wireless Communications, Inc. system.sysName.0 = AP350-58b47c system.sysLocation.0 = Besancon system.sysServices.0 = 79