22 0 243KB
Protocolul SNMP SNMP (Simple Network Management Protocol) este folosit pentru supravegherea funcţionării reţelelor bazate pe TCP/IP (controlul statistic al traficului, performanţelor, modului de configurare şi securizare) utilizând bazele de informaţii de management (MIB), structurate pe baza unor reguli definite de SMI (Structure of Management Information) conform RFC 1155. Versiunea SNMP2 prevede posibilitatea aplicării unor strategii centralizate sau distribuite de management de reţea. Gestionarea reţelelor de calculatoare se realizează pe baza protocoalelor de management de reţea. Suita TCP/IP include protocolul de managem (Management Protocol) definit în RFC 1155 - 1157, care implementează un mecanism de gestionare a resurselor reţelei, folosind baze de date MIB (Management Information Base), u informaţii referitoare la toate componentele reţelei (RFC 1514 - Host Resources MIB; FC 1398 - Ethernet-like Interface Types MIB; RFC 1493 Bridge MIB şi altele). RFC 1213 biectele gestionate pentru reţelele bazate pe suita TCP/IP. SNMP poate folosi oricare din protocoalele de transport din suita TCP/IP dar în cele management a reţelelor de calculatoare include trei categorii de component: 1. componente gestionate (managed device); 2. staţii de gestionare sau de management (network management station); 3. protocolul de management (management protocol) utilizat pentru comunicaţia 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 defineşte schema de organizare a colecţiei 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 funcţie de natura obiectului. Staţiile de management a reţelelor (NMS - Network Management Station) lucrează cu aceste valori instantanee ale obiectelor care sunt identificate prin aşa-numitul identificator de valoare (instance-identifier), ataşat identificatorului de obiect. Accesul la un obiect din MIB poate fi restricţionat (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ă condiţiile de implementare ale acestuia: 1. mandatar: componenta gestionată de NMS implementează în mod obligatoriu acel obiect; 2. opţional: componenta gestionată de NMS implementează opţional acel obiect; 3. depăşit: 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 staţia de management (NMS) pentru a transmite mesaje componentei gestionate, mai precis agentului de management din cadrul acesteia. În general, SNMP acţionează în mod recursiv, prin interogarea periodică (polling) a agenţilor de management ai componentelor gestionate de NMS. Numai în situaţii critice, un agent poate iniţia schimbul de informaţii cu NM a o înştiinţa de modificările apărute, transmiţând 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 funcţie de natura informaţiei transmise: 1. cerere simplă (get-request) NMS cere unui agent de management informaţii despre un obiect; 2. cerere recursivă (get-next-request) - NMS cere unui agent de management informaţii despre obiectul următor din MIB; 3. cerere de impunere (set-request) - NMS impune o anumită valoare pentru un obiect din MIB-ul agentului; 4. răspuns (get-response) - un agent trimite informaţii spre NMS, despre un obiect, ca răspuns la cererea acesteia; 5. "capcană" (trap) - un agent transmite spre MIB informaţii referitoare la un eveniment extraordinar care a afectat componenta gestionată prin intermediul său (reiniţializarea agentului de management, schimbarea stării unei interfeţe, nerespectarea unor condiţii de autentificare etc). Există şapte tipuri de mesaje-capcană SNMP. Pentru agenţii de management, se definesc profile prin care se stabilesc drepturile de acces la diferitele subseturi de obiecte din MIB, total sau parţial 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. fără drepturi de acces la MIB (not-accessible).
Serverul este, tipic, un PC care ruleaza un soft de management (NMS – Network Monitoring System). Mesajele principale sînt: •
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 sînt unidirec_ionale si nu primesc raspuns de la server, de aceea agentul nu stie daca mesajul a ajuns sau nu. Mesajele INFORM sînt 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 sînt 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 întîlni urmatoarele versiuni de SNMP: v1, v2c, v3. Cea din urma suporta si autentificare prin metode mai avansate decît 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” sînt comunita_ile, cu rol de parole; pot fi înlocuite cu orice, acestea sînt 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 tîrziu (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 [email protected] 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 strînga 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 Pîna 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 cînd se inițializeaza..
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.