Sunteți pe pagina 1din 10

Protocolul SNMP

SNMP (Simple Network Management Protocol) este folosit pentru supravegherea funcionrii
reelelor bazate pe TCP/IP (controlul statistic al traficului, performanelor, modului de
configurare i securizare) utiliznd bazele de informaii de management (MIB), structurate pe
baza unor reguli definite de SMI (Structure of Management Information) conform RFC 1155.
Versiunea SNMP2 prevede posibilitatea aplicrii unor strategii centralizate sau distribuite de
management de reea.
Gestionarea reelelor de calculatoare se realizeaz pe baza protocoalelor de management de
reea. Suita TCP/IP include protocolul de managem (Management Protocol) definit n RFC 1155
- 1157, care implementeaz un mecanism de gestionare a resurselor reelei, folosind baze de date
MIB (Management Information Base), u informaii referitoare la toate componentele reelei
(RFC 1514 - Host Resources MIB; FC 1398 - Ethernet-like Interface Types MIB; RFC 1493 -
Bridge MIB i altele). RFC 1213 biectele gestionate pentru reelele bazate pe suita TCP/IP.
SNMP poate folosi oricare din protocoalele de transport din suita TCP/IP dar n cele
management a reelelor de calculatoare include trei categorii de component:
1. componente gestionate (managed device);
2. staii de gestionare sau de management (network management station);
3. protocolul de management (management protocol) utilizat pentru comunicaia dintre
celelalte componente ale sistemului de management.

Fig 3: Structura de baza a sistemei de management al retelei


RFC 1155 descrie un mecanism de identificare i descriere a obiectelor din MIB, denumit SMI
(Structure of Management Information), care definete schema de organizare a coleciei de
obiecte gestionate din MIB, pe baza unei diagrame 'arbore', cu mai multe nivele. Obiectele din
MIB sunt manipulate pe baza unor valori memorate la diverse momente (instances), ca date de
tipuri diferite n funcie de natura obiectului. Staiile de management a reelelor (NMS - Network
Management Station) lucreaz cu aceste valori instantanee ale obiectelor care sunt identificate
prin aa-numitul identificator de valoare (instance-identifier), ataat identificatorului de obiect.
Accesul la un obiect din MIB poate fi restricionat (not-accessible; read-only; write-only) sau
liber (read-write). teaz acel obiect; (NMS) pentru a transmite mesaje componentei gestionate,
mai precis agentului de management din cadrul acesteia.
Prin starea unui obiect se exprim condiiile de implementare ale acestuia:
1. mandatar: componenta gestionat de NMS implementeaz n mod obligatoriu acel obiect;
2. opional: componenta gestionat de NMS implementeaz opional acel obiect;
3. depit: componenta gestionat de NMS nu mai implemen
4. depreciat: componenta gestionat de NMS poate implementa acel obiect, dar exist un nou
obiect n MIB superior acestuia.
Protocolul SNMP este utilizat de staia de management (NMS) pentru a transmite mesaje
componentei gestionate, mai precis agentului de management din cadrul acesteia.
n general, SNMP acioneaz n mod recursiv, prin interogarea periodic (polling) a agenilor
de management ai componentelor gestionate de NMS.
Numai n situaii critice, un agent poate iniia schimbul de informaii cu NM a o ntiina de
modificrile aprute, transmind mesaje-capcan (trap) care ntrerup procesul de polling.
Unitatea de date sau mesajul SNMP (PDU - Protocol Data Unit) poate fi denumita in cinci
moduri distincte, n funcie de natura informaiei transmise:
1. cerere simpl (get-request) NMS cere unui agent de management informaii despre un
obiect;
2. cerere recursiv (get-next-request) - NMS cere unui agent de management informaii
despre obiectul urmtor din MIB;
3. cerere de impunere (set-request) - NMS impune o anumit valoare pentru un obiect din
MIB-ul agentului; 4. rspuns (get-response) - un agent trimite informaii spre NMS, despre un
obiect, ca rspuns la cererea acesteia;
5. "capcan" (trap) - un agent transmite spre MIB informaii referitoare la un eveniment
extraordinar care a afectat componenta gestionat prin intermediul su (reiniializarea agentului
de management, schimbarea strii unei interfee, nerespectarea unor condiii de autentificare etc).
Exist apte tipuri de mesaje-capcan SNMP.
Pentru agenii de management, se definesc profile prin care se stabilesc drepturile de acces la
diferitele subseturi de obiecte din MIB, total sau parial accesibile:
1. cu drept de citire (read-only);
2. cu drept de scriere (write-only);
3. cu drepturi de citire i de scriere (read-write);
4. fr drepturi de acces la MIB (not-accessible).
Serverul este, tipic, un PC care ruleaza un soft de management (NMS Network Monitoring
System). Mesajele principale snt:

GET, dinspre server spre agent (cu varianta GET-NEXT), prin care se interogheaza
valoarea
unei variabile. Tipic, n variabilele de pe agen_i se memoreaza valorile unor contoare care
reprezinta traficul prin interfe_e, ncarcarea, numarul de erori, etc
GET-RESPONSE: Raspunsul la GET
SET, dinspre server spre agent, pentru actualizarea unor informa_ii de management si
chiar
de configurare
TRAP (cu varianta INFORM), mesaj de urgen_a dinspre agent spre server, prin
care tipic
acesta din urma este informat despre apari_ia unei schimbari sau, mai ales, a unei erori.
Mesajele TRAP snt unidirec_ionale si nu primesc raspuns de la server, de aceea agentul nu
stie daca mesajul a ajuns sau nu. Mesajele INFORM snt de acelasi tip cu TRAP doar ca
serverul le confirma (ceea ce este pozitiv din punct de vedere al siguran_ei si negativ din
punct de vedere al traficului generat).
Schimbul de mesaje se face pe portul 161/UDP, cu excep_ia mesajelor TRAP care se trimit
pe 162/UDP.
Variabilele de pe agent, mpreuna cu o harta ierarhica a acestora si modul de acces la fiecare,
formeaza un MIB (Management Information Base).

Alte aspecte SNMP:


SNMP community: prezinta similitudini cu un domeniu Windows; to_i agen_ii care snt
configura_i n aceeasi comunitate cu serverul pot fi interoga_i de catre serverul respectiv (sau
i trimit mesaje TRAP). _ine loc si de parola de acces. Exemple de comunita_i predefinite:
public, private.
Se pot ntlni urmatoarele versiuni de SNMP: v1, v2c, v3. Cea din urma suporta si
autentificare prin metode mai avansate dect simpla parola data de community.

Desfasurare; configurare; exerci_ii


Linux PC va avea rol de NMS (Network Monitoring System) folosind pachetul Net-SNMP (sau
UCD-SNMP); de asemenea, pe PC va rula un agent care sa informeze asupra traficului prin
interfe_e.
Ruterul Cisco va avea rol de SNMP Agent
Faza 1: Configurarea SNMP pe Linux
Se instaleaza si configureaza serverul si clientul local de SNMP ca n [1]
sudo apt-get install snmpd
sudo apt-get install snmp
se modifica /etc/snmp/snmpd.conf
se comenteaza
com2sec paranoid default public
se decomenteza com2sec readonly default public
com2sec readwrite default private
si se restarteaza snmpd
sudo service snmpd restart
Cu acestea s-au instalat componentele SNMP.

Faza 2: Configurarea SNMP pe ruterul Cisco


Se configureaza pe ruter numele acestuia, adresa interfe_ei care se conecteaza la PC, precum si
faptul ca ruterul nu va iesi automat din modul enable datorita timpului de inactivitate:
Router> enable
Router# conf t
Router(config)# hostname R0
R0(config)# line con 0
R0(config-line)# no exec-timeout
R0(config)# interface E0
R0(config-if)# ip address 192.168.1.1 255.255.255.0
R0(config-if)# no shutdown
OBSERVA_IE: reamintim ca pentru a ntrerupe o comanda ping, traceroute etc care nu
func_ioneaza se va folosi secven_a CTRL-SHIFT-6
Se configureaza cine va fi serverul SNMP (keyword host) si comunitatea folosita:
R0(config)#snmp-server host 192.168.1.2 public tty config
snmp
R0(config)#snmp-server contact gigel
R0(config)#snmp-server chassis-id Cisco2500-1234
R0(config)#snmp-server community public ro
R0(config)#snmp-server community private rw
public si private snt comunita_ile, cu rol de parole; pot fi nlocuite cu orice, acestea snt
valorile
implicite (si nerecomandate daca se doreste securitate). Aceleasi parole trebuie scrise si n
/etc/snmpd/snmpd.conf, deci, n cazul nostru, nu se vor schimba !
RO/RW se refera la drepturi: Read-Only / Read-Write. Comunitatea private va fi folosita mai
trziu
(permite modificari pe ruterul Cisco prin SNMP).
Se va examina valoarea pentru diferite OID (Object Identifiers) din MIB. Denumirea acestora
este
standardizata la nivel global, ca n figura; fiecare producator si defineste OID-urile n categoria
1.3.6.1.4 (private).

De pe PC se va folosi snmpwalk pentru inspectarea variabilelor OID:


snmpwalk v1 c public 192.168.1.1 1.3.6.1.4.1.9.2.1 pt un grup de variabile
snmpwalk v1 c public 192.168.1.1 1.3.6.1.4.1.9.2.1.73 pt numele imaginii
snmpwalk v1 c public 192.168.1.1 1.3.6.1.4.1.9.2.1.8 pt free RAM
snmpwalk v1 c public 192.168.1.1 1.3.6.1.4.1.9.2.1.57 pt CPU use
De pe ruter:
R0# show snmp
arata toate pachetele SNMP trimise de ruter, precum si tipul acestora.

Faza 3 configurarea MRTG pe Linux


Se instaleaza o varianta populara de software NMS cu reprezentare grafica, numita MRTG
(Multi Router Traffic Grapher)
Sudo apt-get install mrtg
se creaza directorul radacina web al MRTG:
sudo mkdir /var/w/mrtg se genereaza fisierul de configurare pentru mrtg (se completeaza adresa
ip a routerului Cisco):
sudo cfgmaker -global 'WorkDir: /var/w/mrtg' -output /etc/mrtg.cfg public@141.85.43.5 se
genereaza fisiserul index ce contine toate interfetele:
indexmaker /etc/mrtg.cfg -columns=1 -output /var/w/mrtg/index.html
Se va lansa mrtg, se va deschide pagina de web n care scrie acesta (tipic,
http://127.0.0.1/mrtg) si se vor urmari statisticile. Tipic, dureaza cam 10-15 minute ca sa
se strnga suficiente statistici. Se recomanda sa se porneasca un ping ntre PC si ruter pentru a
genera trafic pe interfa_a ruterului.
Faza 4: Activarea SNMP Traps pe ruterul Cisco
snmp-server host 192.168.1.2 traps public tty config snmp
unde dupa numele comunita_ii se specifica acele categorii de traps care se doresc.
Se activeaza manual trimiterea de traps:
snmp-server enable traps
Pe PC:
Se activeaza (daca nu e activ deja) serverul care recep_ioneaza traps: snmptrapd. Poate fi
necesara editarea fisierului de configurare /etc/snmp/snmptrapd.conf
Se vizualizeaza n continuu, din alt terminal, fisierul de log (unde se scriu diverse
evenimente, inclusiv SNMP traps)
tail f /var/log/syslog

Faza 5: Modificarea de informa_ii pe ruter folosind SNMP


Pna acum, SNMP a fost folosit doar pentru interogare. Comunitatea public fiind read-only,
nici nu poate fi folosita n alt scop. Pentru a modifica valori se foloseste comunitatea read-write
pe
care am numit-o private.
Vom experimenta resetarea ruterului de la PC, scriind o valoare specifica Cisco n MIB.
Pe Cisco se definesc urmatoarele:
R0(config)#snmp-server host 192.168.1.2 private
R0(config)#snmp-server system-shutdown
Se salveaza configura_ia folosind copy run start, caci ruterul se va reseta !
Pentru a transmite comanda de resetare de pe PC, se da urmatoarea comanda (-v 2c specifica
versiunea 2c de SNMP; -c specifica numele comunita_ii):
snmpset -v 2c -c private 129.174.3.10 .1.3.6.1.4.1.9.2.9.9.0 i 2
Ruterul ar trebui sa se reseteze (reload). n terminalul care ruleaza tail f /var/log/syslog se pot
vedea mesajele trap pe care ruterul le trimite cnd se iniializeaza..

Arhitectura SNMP
SNMP se bazeaza pe modelul manager / agent care consta intr-un administrator, un
agent,o baza de date de management al informatiilor, gestionata de obiecte de protocol si
de retea. Managerul ofera interfata dintre om si sistemul de management.
Agentul ofera interfata intre manager si dispozitivul fizic(e) ce urmeaza a fi gestionate,
cum ar fi bridge-uri, hub-uri, routere sau servere de retea,aceste obiecte gestionate ar
putea fi hardware, parametrii de configurare, statisticile de performanta, si asa mai
departe .
Aceste obiecte sunt aranjate in ceea ce este cunoscut ca baza de date a informatiilor
virtuale, denumita Baza de gestionare a informatiilor, de asemenea, numita MIB. SNMP
permite managerilor si agentilor de a comunica cu scopul de a accesa aceste obiecte.
ASN.1
ASN.1 reprezinta un standard de descriere a structurilor de date, de codare, transmitere si
decodare. Este alcatuit dintr-un set de reguli generale pentru descrierea structurii obiectelor
independente de tehnicile proprii de codare ale terminalelor. In contextul SMNP ASN.1 specifica
modul in care datele sunt reprezentate si transmise intre calculatoare. Lucrul cel mai important la
ASN.1 este faptul ca nu depinde de masinile intre care se face legatura

Tipul si structura pachetelor


UDP(User Datagram Protocol) este protocolul de nivel transport care suporta mesaje SNMP. Un
transmitator SNMP trimite un mesaj in retea fara a stabili o conexiune in prealabil cu receptorul.
Protocolul UDP nu garanteaza transmiterea mesajelor, dar este un protocol care poate transmite
un numar mare de mesaje fara a folosi prea multe resurse de retea.
Sa examinam comunicatia intre un manager si un agent. Unele protocoale, sunt orientate
pe octet, cu un singur octet schimbat pentru a comunica, pe cand altele sunt orientate pe pachete
cu schimburi de pachete de date pentru a comunica. Pachetele contin antet, date si octeti de
control. Protocolul SNMP este, de asemenea, orientat pe pachete cu urmatoarele
pachete(Protocol Data Unit sau PDUs) SNMP v1 utilizate pentru a comunica:
Get
GetNext
Set
GetResponse
Trap
SNMPv2-ul initial a fost considerat prea complex ca securitate, folosea source and destination
party-based security si nu a fost acceptat la scara larga. Versiunea care a fost preluata de cei mai
multi producatori si se gaseste pe echipamente la pachet cu v1 si v3, este SNMPv2c
(community-based security), deci fara securitate, dar cu unele imbunatatiri fata de v1.
SNMPv1 si v2 nu sunt interoperabile, dar pot coexista, impreuna cu SNMPv3, pe acelasi
echipament.
Pe langa securitatea imbunatatita, versiunea 2 include si un mecanism de strangere
multitpla si detalierea mesajelor de eroare raportate catre entitatea de administrare. Mecanismul
de
strangere multipla suporta aducerea de tabele si cantitati mari de informatii. Acest mecanism
imbunatateste performantele retelei cand se acceseaza cantitati mari de date.
SNMP v2 a imbunatatit suportul pentru rezolvarea erorilor si include coduri de eroare in plus ce
permit diferentierea anumitor conditii de eroare. In plus, trei tipuri de exceptii sunt suportate in
SNMP v2. Ele sunt:
No such object
No such instance
End of MIB
Din moment ce SNMP versiunea 2 este foarte aproape sa devina un standard final care are
imbunatatirde performanta semnificative si devine din ce in ce mai folosit, suportul pentru
SNMP versiunea 2 este recomandat.
Interoperabilitate intre versiunile 1 si 2
Din nefericire versiunile 1 si 2 de SNMP nu sunt compatibile.
Mesajele din versiunea 2 au un header si o unitate de protocol diferita de cea din versiunea
1. Mai mult SNMPv2 foloseste doua protocoale care nu sunt specificate de SNMPv1.
Totusi exista doua versiuni de coexistenta intre versiunea 1 si versiunea 2: agenti proxi si
sistem de administrare bilingv. In cazul folosirii de agenti proxi agentul de la versiunea 2
lucreaza ca un proxi pentru cel de versiunea 1.
EMS =Element Manager Software poate controla mai multe dispozitive de telecomunicatii.
USM = User-based Security Model
SNMPv3 foloseste un model de control al accesului numit VACM (View-based Access Control
Model). Cu VACM se definesc view-uri si grupuri.

Coexistenta SNMPv1,v2,v3
In acesta parte se prezinta notiunile de mesaj SNMPv1, mesaj SNMPv2 , noile
imbunatatiri aduse versiunii SNMPv3 in ceea ce priveste securitatea, tipurile de atac
asupra retelelor de calculatoare.
SNMPv3
Are o structura modulara, permite adaugari usoare la protocol, modificari, si este
backward-compatible cu versiunile anterioare de SNMP.
Switch-urile Nortel suporta autentificare (user authentication) cu MD5, SHA si criptare
(privacy encryption) cu AES, DES si 3DES.
Securitatea cu v3 inseamna: autentificare, pentru a permite doar surselor autorizate sa
genereze snmp requests, se realizeaza prin crearea de useri si parole, criptare, pentru a
preveni citirea sau modificarea mesajelor snmp transmise prin retea, si controlul
accesului la MIB-uri, pentru a limita accesul la anumite informatii.
SNMPv3 nu foloseste termenii de agent si manager, ci de entitati SNMPv3, fiecare
entitate avand un Engine si un modul software de functii ce initiaza sau raspund la SNMP
requests. Engine-ul furnizeaza securitatea, controlul de acces, procesarea mesajelor.
Fiecare entitate are un EngineID
In acesta parte se prezinta notiunile de mesaj SNMPv1, mesaj SNMPv2 , noile imbunatatiri
aduse versiunii SNMPv3 in ceea ce priveste securitatea, tipurile de atac asupra retelelor de
calculatoare.