monitorizarea unei rețele prin protocolul snmp · 2015-2016, luând în considerare conținutul...
Embed Size (px)
TRANSCRIPT
-
UNIVERSITATEA TEHNIC Gheorghe Asachi din IAIFACULTATEA DE AUTOMATIC I CALCULATOAREDOMENIUL: Calculatoare i tehnologia informaieiSPECIALIZAREA: Calculatoare
Monitorizarea unei reele prinprotocolul SNMP
LUCRARE DE LICEN
Coordonator tiinific. l. Ing. Amarandei Cristian Mihai
AbsolventIonu Lumin
Iai, 2016
-
DECLARAIE DE ASUMARE A AUTENTICITII LUCRRII DE LICEN
Subsemnatul(a) LUMIN IONU ,legitimat() cu CI seria MZ nr. 083882 , CNP 1930609225898autorul lucrrii MONITORIZAREA UNEI REELE PRIN PROTOCOLUL SNMP
elaborat n vederea susinerii examenului de finalizare a studiilor de licenorganizat de ctre Facultatea de Automatic i Calculatoare din cadrul UniversitiiTehnice Gheorghe Asachi din Iai, sesiunea SEPTEMBRIE a anului universitar2015-2016 , lund n considerare coninutul Art. 34 din Codul de etic universitar al
Universitii Tehnice Gheorghe Asachi din Iai (Manualul Procedurilor, UTI.POM.02 Funcionarea Comisiei de etic universitar), declar pe proprie rspundere, c aceastlucrare este rezultatul propriei activiti intelectuale, nu conine poriuni plagiate, iarsursele bibliografice au fost folosite cu respectarea legislaiei romne (legea 8/1996) i aconveniilor internaionale privind drepturile de autor.
Data Semntura13.09.2016
-
Cuprins
Capitolul 1. Introducere...................................................................................................................1Capitolul 2. Fundamentarea teoretic i documentarea bibliografic..............................................2
2.1. Simple Network Management Protocol...............................................................................2 2.1.1. SNMPv1......................................................................................................................4 2.1.2. SNMPv2......................................................................................................................4 2.1.3. SNMPv3......................................................................................................................4
2.2. RRDtool...............................................................................................................................42.3. Limbajul Python i avantajele folosirii acestuia..................................................................52.4. Framework-ul Django..........................................................................................................62.5. Jinja2....................................................................................................................................62.6. Serverul web Apache...........................................................................................................62.7. Soluii existente pentru monitorizarea unei reele................................................................7
2.7.1. Nagios..........................................................................................................................7 2.7.2. Cacti.............................................................................................................................7 2.7.3. Zenoss..........................................................................................................................8
Capitolul 3. Proiectarea aplicaiei....................................................................................................93.1. Componenta hardware.........................................................................................................9
3.1.1. Router..........................................................................................................................9 3.1.2. Firewall......................................................................................................................10 3.1.3. Switch........................................................................................................................10 3.1.4. Server.........................................................................................................................10
3.2. Componenta software.........................................................................................................11 3.2.1. Microsoft Windows Server 2012 R2.........................................................................11 3.2.2. Microsoft Hyper-V....................................................................................................11 3.2.3. Linux.........................................................................................................................12 3.2.4. CentOS 7...................................................................................................................12 3.2.5. Aplicaia propriu zis.................................................................................................13
Capitolul 4. Implementarea aplicaiei............................................................................................144.1. Comunicarea manager agent...........................................................................................144.2. Interfaa cu utilizatorul.......................................................................................................154.3. Probleme ntmpinate i modaliti de rezolvarea.............................................................16
4.3.1. SELinux.....................................................................................................................16Capitolul 5. Testarea aplicaiei i rezultatele experimentale..........................................................17
5.1. Elemente de configurare....................................................................................................17 5.1.1. Configurarea managerului SNMP.............................................................................17 5.1.2. Configurarea agentului SNMP pe Linux...................................................................17 5.1.3. Configurarea agentului SNMP pe Windows.............................................................17
5.2. Testarea sistemului.............................................................................................................19 Concluzii.......................................................................................................................................20 Bibliografie...................................................................................................................................21 Anexe............................................................................................................................................22
Anexa 1. Exemplul de informaii din fiierul snmp-manager.cfg.............................................22Anexa 2. Script xml pentru excepie firewall............................................................................23
-
Anexa 3. Executarea unui fiier la un interval regulat de timp.................................................23Anexa 4. Configurarea fiierului snmpd.conf...........................................................................23
-
Monitorizarea unei reele prin protocolul SNMP
Ionu Lumin
Rezumat
Proiectul i propune realizarea unui instrument de monitorizare a unei reele. Soluiapropus se bazeaz pe protocolul SNMP. Scopul acestui proiect este de a observa, n timp real,starea de funcionare a echipamentelor de comunicaie sau a echipamentelor destinate anumitorservicii. Printre lucrurile observabile se enumer traficul de download i upload, memoria RAMdisponibil, procentul de ncrcare al CPU i spaiul liber pe hard disk.
Accesul la aplicaie se realizeaz prin intermediul unei pagini web. Serverul web Apacheeste pe acelai echipament pe care este realizat i acest proiect. Prin intermediul paginii web, sepot observa graficele corespunztoare datelor furnizate de obiectele monitorizate.
Limbajul de programare utilizat, pentru implementarea comunicrii dintre obiectulmonitorizat i server, este realizat n Python. Datele preluate de aplicaie sunt salvate ntr-o bazde date RRD i apoi sunt prelucrate cu RRDTools.
Pentru partea de interfa cu utilizatorul am utilizat Django i Jinja2 mpreun cu Python.Cu ajutorul Jinja2, folosit mpreun cu Python. Django a fost folosit pentru a crea dou template-uri care au ajutat la crearea mult mai uoar a paginii web.
Ca o idee general, am preferat ca aplicaia s fie open-source, prin urmare am folositsoluii de tip open-source. De asemenea, sistemul de operare, pe care este realizat proiectul, esteCentOS 7.
-
Capitolul 1.Introducere
Capitolul 1. Introducere
Am ales dezvoltarea unei unui instrument de monitorizare a unei reele. Prin reea, mrefer la reeaua local (LAN) a unei organizaii.
Aceast idee a venit n urma unei necesiti, la locul de munc, de a observa, n timp real,starea de funcionare a echipamentelor de comunicaie sau a echipamentelor destinate anumitorservicii.
Monitorizarea reelei pentru o organizaie este o funcie critic i deosebit de important,care poate salva resurse financiare importante, crete performana reelei i costurile dentreinere a infrastructurii. Acest proces presupune colectarea informaiilor referitoare la toateaspectele unei reele.
Un aspect ce trebuie stabilit, n cazul strategiei de monitorizare are n vedere partea carese dorete a fi observat, care sunt procesele care fac obiectul acestor operaii complexe.
Informaiile obinute prin monitorizare pot fi folosite pentru a determina dac resurseleimplicate sunt utilizate corespunztor, pentru a verifica cum lucreaz echipamentele care suntfolosite n reea, a urmri activitatea n cadrul unei reele i pentru a identifica probleme careapar i de a lua msurile necesare pentru rezolvarea lor.
Monitorizarea reelei se poate face prin utilizarea diferitelor soluii software saucombinaii de echipamente hardware. n cazul acestui proiect am preferat utilizarea soluieisoftware.
Componenta software este format din scripturi realizate n Python, un fiier deconfigurare i un fiier de log-uri. Scripturile obin informaiile de la dispozitivele monitorizatei le salveaz n mai multe fiiere cu extensia rrd, apoi genereaz graficele ce vor fi afiate ntr-opagina web, cu ajutorul a dou abloane realizate n Jinja2, dar i cu ajutorul framework-uluiDjango. n fiierul de configurare sunt informaii despre dispozitivele monitorizate i ce anumese dorete a se monitoriza. n fiier-ul de log-uri sunt scrise erorile ce pot apare n funcionareascripturilor.
1
-
Ionu Lumin
Capitolul 2. Fundamentarea teoretic i documentarea bibliografic
2.1. Simple Network Management ProtocolSNMP[1] este un protocol, care funcioneaz la nivelul aplicaie al modelului TCP/IP.
Acest protocol a aprut din nevoia companiilor de a evita situaiile neplcute n carecomponentele unei reele s nu funcioneze la parametri optimi.Majoritatea implementrilor folosesc UDP pentru transferul de mesaje, deoarece este consideratacceptabil pierderea de pachete n comparaie cu funciile pe care trebuie s le ndeplineascentitile administrate.UDP (User Datagram Protocol) este un protocol fr conexiune, ntre emitor i receptor i nuofer sigurana livrrii mesajelor, acestea fiind responsabilitatea celor care a implementataplicaia.
SNMP se bazeaz pe modelul manager / agent, care const ntr-un administrator, un agenti o baz de date de management a informaiilor , gestionat de obiecte de protocol i de reea.
Managerul ofer interfaa dintr om i sistemul de management.Agentul ofer interfaa ntre manager i dispozitivele fizice ce urmeaz a fi gestionate,
cum ar fi bridge-uri, hub-uri, routere, servere de reea sau computer-ul unui utilizator. Acesteobiecte gestionate ar putea fi hardware, parametrii de configurare, statisticile de performan ialtele.
Aceste obiecte sunt aranjate n ceea ce este cunoscut ca baz de date a informaiilorvirtuale, denumit Baza de gestionare a informaiilor, de asemenea, numit i MIB (ManagementInformation Base). SNMP permite managerilor i agenilor de a comunica cu scopul de a accesaaceste obiecte.
Managerul i agentul utilizeaz baza de gestionare a informaiilor i un set de comenzirelativ mic, pentru a schimba informaii. MIB este organizat ntr-o structur de arbore cuvariabile individuale, cum ar fi punctul de stare sau descriere, fiind reprezentat ca frunzele de peramuri (vezi Figura 2.1 [2]). Un tag numeric lung sau un obiect de identificare (OID) este folositpentru a distinge fiecare variabil unic n MIB i n mesajele SNMP.
2
Figura 2.1: Exemplu de arbore OID
-
Capitolul 2.Fundamentarea teoretic i documentarea bibliografic
Managerul SNMP nu poate monitoriza dispozitive cu excepia cazului n care le-acompilat fiierele MIB. MIB-ul este, de asemenea, un ghid de capabiliti a dispozitivelor SNMP.
Fiecare elemente SNMP gestioneaz obiecte specifice cu fiecare obiect avndcaracteristici specifice. Fiecare obiect/caracteristic are un obiect unic de identificare constnddin numere separate prin puncte zecimale (de exemplu: 1.3.6.1.4.1.2636.1).
Unele protocoale sunt orientate pe octet, pe cnd altele sunt orientate pe pachete.Pachetele conin antet, date i octei de control. Protocolul SNMP este orientat pe pachete (veziFigura 2.2 [3]), PDU (protocol Data Unit).Un PDU are urmtoarele cmpuri:
Version versiunea de SNMP; Community denumirea grupului din care face parte; Request ID este trimis napoi la manager mpreun cu rspunsul pentru a ti la ce cerere
se refer un rspuns; Error code agentul plaseaz un cod de eroare n acest cmp, dac are loc o eroare la
procesarea cererii; OID obiectul din MIB; Value valoarea care se dorete setat, dac mesajul este un SetRequest, o valoare nul
dac mesajul este un GetRequest i valoarea returnat pentru OID, dac mesajul este unGetResponse.
Exist 7 tipuri de PDU: GetRequest o cerere manager-agent pentru a primi o valoare sau o list de valori a unui
obiect din MIB; SetRequest o cerere de la manager la agent pentru a seta sau modifica o valoare; GetNextRequest managerul solicit valoarea obiectului care urmeaz dup obiectul
precizat n cerere; GetBulkRequest o versiune optimizat a GetNextRequest, managerul poate cere mai
multe iteraii de GetNextRequest; GetResponse mesajul trimis de agent, ca urmare a cererii de tip GetRequest,
GetNextRequest sau SetRequest; Trap o atenionare trimis de agent ctre manager, atunci cnd apare un eveniment
neateptat legat de dispozitivul monitorizat; InformRequest asigur livrarea mesajelor Trap.
De-a lungul timpului au fost dezvoltate mai multe versiuni al SNMP.
3
Figura 2.2: Formatul unui PDU
-
Ionu Lumin
2.1.1. SNMPv1SNMP [4] versiunea 1 este versiunea iniial a conceptului de SNMP, a fost introdus
pentru a rspunde nevoii de administrare a dispozitivelor ce folosesc protocolul IP. Este definit nRFC 1157.
SNMP ofer utilizatorilor un set simplu de operaii, care permite acestor dispozitive s fieadministrate de la distan. Baza protocolului este un set de operaii, care ofer administratorilorposibilitatea de a urmri sau modifica parametrii unor dispozitive ce suport SNMP.
Prima versiunea a fost criticat pentru lipsa de securitate. Autentificarea se fcea printr-un grup numit community string i era nu era codificat sub nicio form.
2.1.2. SNMPv2SNMPv2 [4], revizuiete prima versiune i aduce mbuntiri la performan, securitate,
confidenialitate i comunicarea ntre manageri. Pe lng acestea, versiunea 2 includeGetBulkRequest i detalierea mesajelor de eroare raportate ctre manager. GetBulkRequestsuport aducerea de tabele i cantiti mari de date.
SNMPv2c (Community-Based Simple Network Management Protocol version 2) estedefinit n RFC 1901 RFC 1908. Aceast versiune a fost considerat, pn s apar versiunea atreia, un standard pentru SNMP.
2.1.3. SNMPv3Versiunea a treia [4] nu aduce schimbri, n afar de partea de securitate. Cu toate acestea
conine termeni diferii fa de versiunile anterioare.Aceast versiune are o structur modular, permind adugri uoare, dar i modificri. Modificrile pe partea de securitate se refer la autentificare, criptare i controlul
accesului. Autentificarea permite doar surselor autorizate s genereze cereri SNMP. Acest lucruse realizeaz prin crearea de cont de utilizator i respectiv a unei parole. Criptarea previne citireasau modificarea mesajelor SNMP transmise prin reea, iar controlul accesului la MIB-uri a fostimplementat pentru a limita accesul la anumite informaii.
Din punct de vedere al termenilor, versiunea a treia nu folosete termeni de agent imanager, ci de entiti. Fiecare entitate avnd un Engine i un modul software de funcii ceiniiaz sau rspund la cereri SNMP. Engine-ul furnizeaz securitatea, controlul de acces iprocesarea mesajelor.
Versiunea a treia este compatibil cu versiunile anterioare, lucru pe care nu-l putem spunei fa de versiunea a doua.
2.2. RRDtoolRRDtool[5] (Round-Robin Database tool) poate prelucra date precum limea de band a
unei reele, temperatura CPU, procentul de ncrcare a CPU, memoria RAM utilizat, spaiul destocare utilizat i altele. Aceste date sunt stocate ntr-o baz de date cu buffer circular.
RRDtool a fost conceput iniiat pentru a extrage date RRD ntr-un format grafic.El poate fi folosit n limbaje precum Perl, Python, Ruby, Tcl, PHP i Lua. De asemenea
exist i o versiunea independent realizat n Java.
4
-
Capitolul 2.Fundamentarea teoretic i documentarea bibliografic
2.3. Limbajul Python i avantajele folosirii acestuiaLimbajul[6] de programare Python a fost creat de Guido van Rossum, n anul 1989.
Descendent al limbajului de programare ABC. Python este un limbaj de programare dinamic, de nivel nalt, ce pune accent pe
expresivitatea i nelegerea uoar a codului. Sintaxa sa permite implementri echivalente cualte limbaje n mai puine linii de cod. Datorit acestui fapt, Python este foarte rspndit att nprogramarea de aplicaii, ct i n zona de scripting.
Spre deosebire de C, Python nu este un limbaj compilat, ci interpretat. Acest fapt are attavantaje, ct i dezavantaje. Pe de-o parte, Python este mai lent dect C. Pe de alt parte,aplicaiile Python sunt foarte uor de depanat, codul putnd fi uor inspectat n timpul rulrii. Deasemenea, este foarte uor de experimentat cu mici fragmente de cod folosind interpretorulPython.
Sintaxa este gndita n aa fel nct programele Python s fie uor de citit. Acest lucrueste obinut prin folosirea de cuvinte n locul semnelor (de exemplu, and n loc de &&) i prinincluderea indentrii n limbaj. Astfel, n Python nu se folosesc acolade (ca n C/C++, Java), ciblocurile de cod se delimiteaz prin indentare. Programele Python sunt, de multe ori, foarteaproape de o implementare echivalent n pseudo cod.
Includerea diferitelor structuri i funcii ce permit manipularea i prelucrarea lor, precumi multe biblioteci de funcii sunt prezente datorit conceptului Batteries Included. Guido vanRossum i comunitatea, ce s-a format n jurul limbajului, cred c un limbaj de programare nuprezint utilitate practic dac nu are un set de biblioteci importante pentru majoritateadezvoltatorilor.
Din acest motiv Python include biblioteci pentru lucrul cu fiiere, arhive, fiiere XML iun set de biblioteci pentru lucrul cu reeaua i principalele protocoale de comunicare pe internet(HTTP, Telnet, FTP). Un numr mare de platforme Web sunt construite cu Python. Abilitilelimbajului ca limbaj pentru programarea CGI sunt n afara oricror dubii. De exemplu YouTube,unul din site-urile cu cea mai ampl cantitate de trafic din lume, este construit pe baza limbajuluiPython.
Totui, Python permite extinderea funcionalitii prin pachete adiionale programate deteri care sunt axate pe o anumit funcionalitate. De pild, pachetul wxPython conine metodelei structurile necesare crerii unei interfee grafice.
Popularitatea limbajului este n cretere ncepnd cu anul 2000, datorit faptului cPython permite crearea mai rapid a aplicaiilor, care nu cer viteze nalte de procesare a datelor.De asemenea este util ca limbaj de scripting, utilizat n cadrul aplicaiilor scrise n alte limbaje.
5
Figura 2.3: Exemplu de grafic RRD
-
Ionu Lumin
Modulele (bibliotecile) Python pot fi de asemenea scrise n C, compilate i importate n Pythonpentru a mri viteza de procesare.
2.4. Framework-ul DjangoDjango [7] este un soft pentru dezvoltarea aplicaiilor web, open-source, realizat n
Python. El urmeaz modelul arhitectural Model-View-Controller.Acest framework a fost creat de Adrian Holovay i Simon Willison, n anul 2003. El a
fost realizat ca i rspuns la necesitatea de a publica ct mai repede articole (creatorii acestuiframework, lucrau la ziarul Lawrence Journal-World).
Scopul principal al acestui soft, pentru dezvoltarea aplicaiilor web, este de a facilitacrearea de website-uri complexe, ce au n componena lor i o baz de date. Django pune accentpe reutilizarea codului, pe modularitate, dezvoltare rapid a site-urilor web, ghidndu-se dupprincipiul DRY (Don`t repeat yourself). Django este realizat n Python, chiar i fiierele deconfigurare i modelele de date sunt implementate n acest limbaj de programare. Django ofer iun panou administrativ, prin intermediul cruia se pot crea, citi, actualiza i terge date din bazade date.
Printre site-urile care utilizeaz Django se enumer Pinterest, Instagram, Mozilla i TheWashington Times.
2.5. Jinja2Template-engine-ul Jinja2 [8] permite utilizarea codului Python pentru realizarea site-
urilor web. Jinja2 este un limbaj text ce i permite s generezi orice marcaj precum i cod surs.
Jinja2 este asemenea lui Django, cu excepia c n Jinja2 ai posibilitatea s apelezi funcii cuargumente. Template-ul Jinja2 ofer posibilitatea personalizrii codului prin tag-uri i filtre.
2.6. Serverul web ApacheApache [9] este un server HTTP de tip open-source. Apache este folosit, n prezent, de
aproximativ 65.2 % din paginile web. El a reprezentat o alternativ viabil la NetscapeCommunications Corporation i a evoluat rapid n funcionalitate i performan ca un rivalcompetitiv pentru alte servere web bazate pe Unix.
Apache este dezvoltat de o comunitate deschis, sub emblema Apache SoftwareFoundation. Aplicaia este disponibil pentru o mare varietate de sisteme de operare incluzndUnix, FreeBSD, Linux, Solaris, Mac OS i Microsoft Windows.
Serverul Apache este caracterizat ca fiind un software gratuit i open-source, aceastafcnd ca, ncepnd din aprilie 1996, s devin cel mai popular web server.
Prima versiune a fost creat de Robert McCool, care la vremea respectiv era implicat nproiectul Naional Center for Supercomputing Applications (NCSA HTTPd). A doua versiune aserverului a fost o rescriere substanial, punndu-se accent pe crearea unui layer prioritar i asuportului de module.
Apache suport o mare varietate de module care i extind funcionalitatea. Aceastavariaz de la server side programming, pn la scheme de autentificare. Cteva limbaje suportatesunt Pearl, Python, Tcl, PHP. O alt calitate a serverului Apache este gzduirea virtual, careconst n posibilitatea de a gzdui mai multe site-uri simultan pe acelai server.
6
-
Capitolul 2.Fundamentarea teoretic i documentarea bibliografic
Google folosete o versiune modificat de Apache, numit Google Web Server. Deasemenea i proiectele Wikimedia ruleaz pe un server Apache.
2.7. Soluii existente pentru monitorizarea unei reelePentru monitorizare se pot folosi multe aplicaii software, unele dintre ele sunt gratis,
altele trebuie cumprate Printre acestea putem enumera Nagios, Cacti sau Zenoss.Fiecare dintre acestea au fost realizate cu ajutorul diferitelor limbaje de programare, dar
toate au n comun RRDtool i un server web.Proiectul prezentat mbin limbajul de programare Python cu framework-ul Django i
template-ul Jinja2, lucru pe care nu l-am vzut la alt produs pentru monitorizarea unei reele.n cele ce urmeaz voi prezenta cteva produse existente cu ajutorul crora poi
monitoriza o reea.
2.7.1. NagiosNagios [10] este un sistem open-source de monitorizare a sistemelor informatice i a
reelelor de calculatoare, realizat cu ajutorul limbajului de programare C. Sistem de monitorizarea nodurilor sau a serviciilor de reea i n cazul n care apar probleme, notific administratorul.Monitorizarea continu a tuturor componentelor dezvluie zonele cu probleme i ajut larezolvarea lor nainte de eec, fr a afecta performana reelei. Nagios monitorizeaz activitateaserviciilor de reea precum: SMTP, POP3, IMAP, SSH, Telnet, FTP, HTTP, DNS i multe altele.De asemenea, el poate fi folosit pentru a monitoriza utilizarea resurselor de pe server, precum:procentul de ncrcare a CPU, memoria RAM utilizat, spaiul de stocare utilizat i altele. Nagiosnu funcioneaz doar n Unix, ci i n distribuii Linux, dar i n sisteme de operare precum MacOS i Windows.
Cu ajutorul Nagios poi monitoriza un sistem de la distan. Arhitectura simpl poate creapropriile ci de servicii de testare i manipulri de evenimente (spre exemplu, repornirea unuiserviciu de reea).
Nagios este apreciat pentru abilitatea de a construi hri ale infrastructurii de reea igrafice a parametrilor diferitelor sisteme care sunt monitorizate.
Proiectul are originea nc din 2002, dei la nceput era cunoscut sub numele de NetSaint.Principalul dezvoltator al acestui produs este Ethan Galstat. Fa de versiunea iniial proiectul aevoluat, permind utilizarea plugin-urilor i a addon-urilor.
2.7.2. CactiCacti [11] este un alt sistem open-source pentru monitorizarea sistemelor informatice i a
reelelor de calculatoare. Acesta este o aplicaie front-end realizat n PHP.Cacti a fost lansat n anul 2001, de ctre Ian Berry. Acest proiect a fost realizat n urma
necesitii de a monitoriza reeaua unui campus. El nvnd n timpul liceului PHP i MySQL, areuit s le mbine, realiznd Cacti. Principalul lui scop n realizarea acestui proiect a fost pentrua oferi o alternativ mai uor de folosit dect RRDtool i mai flexibil dect MRTG.
Ca i utilizare comun este folosit pentru a monitoriza traficul sau ncrcarea CPU a unorservere sau a unor switch-uri sau routere. Toate acestea sunt realizate prin intermediul SNMP.
n prezent, Cacti ofer dou versiuni, una realizat n PHP, ce este recomandat reelelorde mici dimensiuni, cea de a doua este realizat n C i este recomandat pentru monitorizareareelelor la o scar mai mare.
7
-
Ionu Lumin
2.7.3. ZenossZenoss [12] este o aplicaie open-source, parial gratuit. Dezvoltarea aplicaiei a nceput
n anul 2002 de Erik Dahl, iar 4 ani mai trziu a fost lansat prima versiune.Zenoss a fost realizat cu ajutorul limbajelor de programare Python i Java.Aceast aplicaie ofer o interfa web cu ajutorul creia poi monitoriza activitatea,
configurrile i anumite evenimente dintr-o reea.Versiunea pltita a acestui produs ofer pe lng suport, integrarea aplicaiei cu Microsoft
SQL i Exchange.n prezent, Zenoss ruleaz doar pe distribuiile Fedora (Red Hat Enterprise Linux i
CentOS).
8
-
Capitolul 3.Proiectarea aplicaiei
Capitolul 3. Proiectarea aplicaiei
3.1. Componenta hardwareDup cum spuneam i n introducere, proiectul a venit ca rspuns a necesitii la locul de
munc pentru a monitoriza diferite staii de lucru. n cele ce urmeaz voi prezenta obiectele careau ajutat la funcionarea acestui proiect (vezi Figura 3.1 pentru o vizualizarea mai concret ainfrastructurii).
3.1.1. RouterRouter-ul [13] este un dispozitiv hardware sau software, care conecteaz dou sau mai
multe reele de calculatoare, bazate pe comutare de pachete. Funcia ndeplinit de routere senumete routare.Routerele opereaz la nivelul 3 al modelului OSI, Ele folosesc adrese IP (de reea) ale pacheteloraflate n tranzit pentru a decide ctre care interfa de ieire s trimit pachetul respectiv. Deciziaeste luat comparnd adresa calculatorului destinaie cu nregistrrile din tabela de routere.Aceasta poate conine att nregistrri statistice (configurate/definite de ctre administratorulreelui), ct i dinamice, aflate de la routerele vecine prin intermediul unor protocoale de rutare.
n cazul de fa, routerul este un dispozitiv hardware i este folosit pentru interconectarea
9
Figura 3.1: Infrastructura hardware a companiei
-
Ionu Lumin
ntre providerul de internet (mai exact ntre dou sisteme autonome) i reeaua companiei dincare fac parte.
3.1.2. Firewalln reelele de calculatoare, un firewall [13], denumit i paravan de protecie este un
dispozitiv sau o serie de dispozitive configurate n aa fel nct s filtreze, s cripteze sau sintermedieze traficul ntre diferite domenii de securitate pe baza unor reguli predefinite.
Un firewall este un dispozitiv hardware sau software, care monitorizeaz i filtreazpermanent transmisiile de date realizate ntre reeaua local i internet.
Soluiile de protecie prin firewall se mpart n dou categorii: soluii profesionale hardware sau software dedicate proteciei ntregului trafic dintre
reeaua unei companii sau instituii i internet; firewall dedicat monitorizrii traficului pe calculatorul personal.
n acest proiect firewall-ul este un dispozitiv hardware i are rolul de a filtra traficuldintre reeaua companiei i internet.
3.1.3. SwitchUn switch [13], numit i comutator de reea este un dispozitiv care realizeaz
interconectarea diferitelor segmente de reea, pe baza adreselor MAC. Dispozitivele hardwareuzuale includ switch-uri, care utilizeaz conexiuni de 10, 100 sau chiar 1000 MB pe secund, lasemi-duplex sau duplex.
Semi-duplex nseamn c dispozitivul poate doar s trimit sau s primeasc informaii,la un moment dat, n timp ce duplex ofer posibilitatea trimiterii i primirii concomitente deinformaii.
n cazul de fa switch interconecteaz firewall-ul, calculatoarele angajailor i serverulpe care este realizat acest proiect.
3.1.4. ServerUn server [13] este o aplicaie pe un calculator sau chiar un calculator ntreg, care
opereaz continuu n reeaua din care face parte i ateapt solicitri din partea altor calculatoaredin reea. Serverul poate fi folosit simultan i pentru alte scopuri, dar poate ndeplini exclusivfuncia de server. De exemplu, un calculator se poate folosi ntr-o companiei, simultan pentrudou scopuri, ca staie de lucru i ca server pentru celelalte calculatoare din birou.n prezent, serverele seamn fizic cu celelalte calculatoare uzuale, dei configuraia hardwareeste deseori optimizat pentru funcionarea lor ca servere. Multe componente hardware suntidentice cu cele pe care le gsim ntr-un calculator personal. Totui serverele ruleaz sisteme deoperare i programe specializate, care sunt foarte diferite fa de cele folosite pe calculatoarelepersonale i staiile de lucru.
Serverele deservesc recursele hardware, care sunt partajate i pot uneori fi comandate dectre calculatoarele client, cum ar fi imprimante sau sisteme de fiiere. Aceast partajare permiteun acces i o securitate mai bun. De asemenea, ea poate reduce cheltuielile pentru dispozitiveperiferice.
n cadrul acestui proiect, serverul are rolul de a reduce cheltuielile pentru dispozitiveleperiferice. n componena lui se gsesc mai multe servere virtuale, dar aceste vor fi detaliate lacomponenta software.
10
-
Capitolul 3.Proiectarea aplicaiei
3.2. Componenta softwareDup cum am specificat anterior, n acest context principalul rol al serverului este de a
reduce cheltuielile pentru achiziionarea altor dispozitive. Prin urmare, a fost nevoie de instalareaunui mediu virtual.
Principalele medii virtuale de pe piaa IT sunt Hyper-V i VMware ESXI. n cazul se fas-a preferat folosirea mediului virtual Hyper-V.Prin urmare, a fost nevoie de un sistem de operare creat de Microsoft, mai exact MicrosoftWindows Server 2012 R2.
3.2.1. Microsoft Windows Server 2012 R2Microsoft Windows Server 2012 [14] reprezint a asea ediie Windows Server. Ea este
ediia pentru sisteme de tip server i este succesorul a Windows Server 2008 R2. Dou versiuniau aprut n ediia dezvoltrii i anume, previzualizare pentru dezvoltatorii de aplicaii iversiunea beta. Produsul a devenit disponibil pe pia. ncepnd cu data de 4 septembrie 2012.
Spre deosebire de versiunea precedent, Windows Server 2012 ofer patru ediii:Foundation, Essential, Standard i Datacenter.
Windows Server 2012 Foundation este disponibil doar cu achiziionarea unui nou server.Proiectat pentru ntreprinderi mici, aceast ediie este limitat la 15 utilizatori. De asemenea,aceast versiune nu suport virtualizare i suport doar un singur procesor. n rest, ofer oinfrastructur de reea de baz Active Directory (AD), acces la distan, partajare de fiiere iimprimare.
Windows Server 2012 Essential este conceput pentru mediile de afaceri mici (IMM-uri ntreprinderi Mici i Mijlocii). Aceast versiune este limitat la 25 de utilizatori. La fel ca iversiunea Foundation, nu suport virtualizarea, dar suport dou procesoare.
Windows Server 2012 Standard dispune de toate caracteristicile produsului. Aceastversiune suport pn la dou procesoare per licen i suport virtualizarea.
Windows Server 2012 Datacenter este destinat pentru cei care au utilizarea pe scar larga mainilor virtuale. Fiecare licen acoper pn la dou procesoare i un numr nelimitat demaini virtuale. Aceast versiune suport maini cu un maximum de 640 procesoare i 4 TBmemorie RAM.
Fiind de la sine neles, pe server s-a preferat instalarea Microsoft Windows Server 2012Datacenter.
Cerinele minime pentru instalarea acestui sistem de operare sunt: o arhitectur pe 64 bii,un procesor cu o frecven de 1.4 GHz, 512 MB memorie RAM i 32GB spaiul minim pe HDD.
Microsoft Windows Server 2012 R2 este a doua ediie revizuit a Microsoft WindowsServer 2012.
3.2.2. Microsoft Hyper-VMicrosoft Hyper-V [15] cunoscut i ca Windows Server Virtualization este un soft nativ
folosit la virtualizare.Un server ce ruleaz Hyper-V poate fi accesat de la distan de multiple calculatoare
client. Fiecare din calculatoarele client pot rula ca i cnd ar folosi serverul gazd, n mod direct.Utilizatorii calculatoarelor client pot rula aplicaii de pe serverul gazd de la distan, chiar dacaplicaiile respective nu sunt instalate i pe calculatoarele client.
Microsoft Hyper-V exist n dou variante: Ca produs de sine stttor, numit Hyper-V server ultima versiune este Hyper-V Server
2012 R2;
11
-
Ionu Lumin
Ca rol instalabil al sistemului de operare pentru Windows Server.Versiunea de sine stttoare a Hyper-V, Hyper-V Server include ntreaga funcionalitate a
Hyper-V. Celelalte roluri ale Windows Server sunt dezactivate, iar serviciile oferite sunt limitate.De asemenea aceast versiune este limitat la o interfa de tip linie de comand (CLI), iarconfigurare sistemului de operare, a componentelor i a software-ului se efectueaz cu ajutorulcomenzilor din linia de comand. Administrarea i configurarea Hyper-V Server, ct i a configurarea sistemelor de operarevirtuale este, n general, realizat prin descrcarea consolei extinse, Microsoft ManagementConsoles ce este instalat pe un calculator client.
Hyper-V se gsete i ca rol instalabil n Windows Server. Aceast modalitate permite caconfigurarea i administrarea Hyper-V s fie mult mai uoar, datorit interfeei grafice.
3.2.3. LinuxPentru instalarea serverului pentru monitorizare, am optat pentru o distribuie Linux.Iniial, Linux [16] era un sistem de operare, care a fost creat ca un hobby de ctre un
tnr student, Linus Torvalds, la Universitatea din Helsinki, Finlanda. Linus a avut un interes nMinix, un mic sistem de operare derivat din UNIX, i a decis s dezvolte un sistem care sdepeasc standardele Minix. i-a nceput activitatea n 1991, cnd a lansat versiunea 0.02 i alucrat n mod constant pn n 1994, cnd versiunea 1.0 a kernel-ului Linux.Kernelul dezvoltat de Linus este inima tuturor sistemelor Linux, fiind dezvoltat i distribuit subGNU General Public License, iar codul su surs este disponibil gratuit pentru oricine.
Sistemele de operare bazate pe Linux sunt disponibile, n general, sub form dedistribuii. Unele dintre acestea sunt orientate spre utilizatorul particular, pe cnd altele suntorientate ctre servere. Cteva din cele mai folosite distribuii Linux sunt: Ubuntu, SUSE Linux,Fedora, Debian i Gentoo Linux.
Dintre acestea am preferat s folosesc o distribuie bazat pe RedHat Enterprise Linux,mai exact sistemul de operare CentOS.
3.2.4. CentOS 7Community Enterprise Operating System (CentOS) [17] este un sistem de operare
GNU/Linux, open-source, gratuit. Sursele acestui sistem de operare sunt puse la dispoziie sublicen open-source de ctre Red Hat Enterprise Linux.
Acest sistem de operare a luat natere pentru a oferi o distribuie gratuit pentru mediulde afaceri.
Versiunea pltit a acestui sistem de operare este Red Hat Enterprise Linux. Diferenamajor ntre aceste dou sisteme de operare este c Red Hat Enterprise Linux ofer suport tehnic.
Fiecare versiune de CentOS este ntreinut pentru o perioad de 7 ani (pentruactualizrile referitoare la probleme de securitate). Versiunile noi apar la fiecare 2 ani i suntactualizate cu regularitate (aproximativ, la fiecare 6 luni), pentru a include suport pentruhardware nou.
n prezent CentOS se afl la cea de a aptea versiune.Am ales acest sistem de operare, deoarece sunt familiar cu acesta i l-am mai folosit i la
alte proiecte.
12
-
Capitolul 3.Proiectarea aplicaiei
3.2.5. Aplicaia propriu zisAplicaia propriu zis conine mai multe fiiere, fiecare avnd rolul lui, cu ajutorul crora
funcioneaz acest proiect.Primul fiier prezentat este un fiier de configurare. Acest este numit snmp-manager.cfg.
Acest fiier conine datele obiectelor monitorizate. Un exemplu concret al acestor informaii seregsete n Anexa 1. n acest exemplu se regsesc informaiile necesare pentru monitorizareaunui server FTP. Informaiile sunt structurate n informaii despre obiectul monitorizat i ceinformaii trimite agentul ctre manager.
Informaiile ce se gsesc n snmp-manager.cfg sunt: description o etichet care va aprea i pe pagina web, care s specifice ce obiect este
monitorizat i ce informaie transmite agentul ctre manager; address adresa IP a obiectului monitorizat; port portul prin intermediul cruia comunic managerul cu agentul; communityro community-ul string necesar pentru securitatea SNMP; OID cu ajutorul acestuia agentul tie ce informaii s trimit managerului; system conine eticheta a ce sistem este monitorizat; sampling_rate perioada n secunde, cu care se trimit informaiile de la agent la manager.
Un alt fiier ce ajut la funcionarea acestui proiect este snmp-manager.py. Acest fiierconine un script realizat n Python. Cu ajutorul acestui script se culeg informaiile trimise deageni ctre manager. Acest script ia informaiile necesare pentru un obiect monitorizat dinfiierul snmp-manager.cfg le prelucreaz pentru a lua datele trimise de ageni ctre manager i lesalveaz ntr-o baz de date RRD; cte o baz de date pentru fiecare tip de informaie comunicatde agent ctre manager.
Pentru prelucrarea bazelor de date, a fost necesar crearea unui alt script, care se gseten fiierul snmp-pages.py. Acest script prelucreaz bazele de date transformndu-le n fiiere png.De asemenea acest script genereaz i paginile web ce pot fi observate, cu uurin, obiectelemonitorizate.Acest script a fost realizat n Python cu ajutorul Jinja2.
Alte dou fiiere sunt template.html i details.html. Aceste dou fiiere sunt realizate nDjango. Ele ajuta la prelucrarea informaiilor pentru a fi afiate pe pagina web.
13
-
Ionu Lumin
Capitolul 4. Implementarea aplicaiei
Prima cunotin ce este necesar pentru implementarea aplicaiei este cum comunicmanagerul i agentul SNMP.
4.1. Comunicarea manager agentVom continua s examinm protocolul SNMP, concentrndu-ne atenia la modelul
stratificat de comunicare, utilizat pentru a face schimb de informaii. Aceast seciune seconcentreaz asupra structurii mesajelor SNMP, cu toate acestea un mesaj SNMP nu este trimisde la sine. Acesta este mpachetat ntr-un pachet UDP, care la rndul lui este inclus ntr-un pachetIP. Acestea sunt cele la care se face referire ca niveluri i se bazeaz pe un model cu patruniveluri. SNMP este un protocol caracteristic nivelului Aplicaie, UDP face parte din nivelulTransport i protocolul IP este caracteristic nivelului Internet (aici ne referim la stiva TCP/IP). Alpatrulea nivel este nivelul Acces reea, unde sunt asamblate pachetele. Acest model muli-nivelizoleaz sarcinile de comunicaie i n cele din urm, ajut la elaborarea i punerea n aplicare aunei reele.
Pentru a ilustra funcionarea acestui model pe niveluri, voi prezenta o solicitare Get, dinperspectiva agentului.
Managerul vrea s tie numele sistemului agentului i pregtete un mesaj Get, cu OID-ulcorespunztor. Se trece mesajul la nivelul Transport UDP. Nivelul transport adaug un bloc dedate, care identific portul managerului la care ar trebui s fie trimis pachetul de rspuns i portulde la care se ateapt agentul SNMP s asculte mesaje. Pachetele astfel formate sunt trecute lanivelul Internet IP. Aici, un bloc de date, care conine adresele IP i MAC ale managerului iale agentului, este adugat nainte de pachetul ntreg asamblat i este trecut la nivelul Accesreea. Nivelul Acces reea verific accesul i disponibilitatea la mediul de comunicaie i plaseazpachetele pentru transport.
Dup ce trece de router, pe baza adresei IP, pachetul ajunge, n final, la agent. Aici setrece prin aceleai patru niveluri n exact ordinea opus, care a fost realizat la manager. nprimul rnd, este tras din mediul de comunicaie interfaa de ctre nivelul de Acces reea. Dupce confirm c pachetul este intact i valid, nivelul de acces la reea, pur i simplu trece pachetulla nivelul Internet. La nivelul internet se verific MAC-ul i adresa IP i l plaseaz mai departenivelului Transport. Aici este verificat portul destinaie pentru aplicaiile conectate. Dac oaplicaie ascult la portul destinaie, pachetul este trecut la nivelul Aplicaie. n cazul n careaplicaia, care ascult este agentul SNMP, solicitarea GET este procesat. Rspunsul agentuluiurmeaz, apoi aceeai cale, dar n sens invers pentru a ajunge la manager. Toate acest lucruri suntexplicate n Figura 4.1[18].
14
Figura 4.1: Comunicarea ntre managerul i agentul SNMP
-
Capitolul 4.Implementarea aplicaiei
4.2. Interfaa cu utilizatorulLa deschiderea paginii web sunt prezentate informaii generale despre obiectele
monitorizate. Informaii precum adresa IP, portul i informaiile ce sunt puse la dispoziie prinSNMP. Adresa la care se gsete interfaa cu utilizatorul este asemenea cu adresa IP a serveruluiSNMP. O prezentare concret a interfeei se gsete n Figura 4.2.
Pe lng pagina principal utilizatorul are acces i la alte pagini. Aceste pagini coningrafice cu informaiile preluate de la agenii SNMP. n Figura 4.3 este prezentat un astfel degrafic cu memoria RAM disponibil a serverului FTP. n acest grafic, pe lng memoria RAMdisponibil, este prezentat i intervalul orar n care au fost preluate aceste date.Aceste grafice sunt prelucrate cu ajutorul fiierului snmp-pages.py. El prelucreaz datele trimisede agent ctre manager, ce sunt salvate iniial ntr-o baz de date RRD i le transform n graficecu ajutorul RRDtool. Acest lucru a fost preferat pentru a putea fi mai uor de urmrit obiectulmonitorizat.
15
Figura 4.2: Pagina principal aaplicaiei
Figura 4.3: Exemplul de informaie de la serverul FTP
-
Ionu Lumin
4.3. Probleme ntmpinate i modaliti de rezolvareaDup ce a fost configurat aplicaia, prima problem ntmpinat a fost legat de
comunicare ntre obiectul monitorizat i serverul SNMP. Aceasta a fost rezolvat n doi pai.Primul pas a fost realizarea unui fiier xml, care va fi folosit ca i excepie n firewall-ulsistemului de operare de pe serverul SNMP. Codul surs acestui fiier se gsete n Anexa 2.
Dup realizarea acestui pas, managerul nu primea informaii de la ageni. Acest lucru afost remediat prin dezactivarea SELinux.
4.3.1. SELinuxSELinux [19], denumit i Security Enhanced Linux, reprezint un mod de mbuntire a
securitii distribuiilor bazate pe Linux, fiind implementat ca un modul de securitate (LinuxSecurity Module). A fost creat de Agenia Naional pentru Securitate, SELinux se bazeaz petehnica Mandatory Access Control, care permite implementarea unei mari varieti de polie desecuritate. Pentru a putea folosi aceast tehnic, modulul SELinux adaug o referin ctrekernel-ul (nucleul) Linux-ului, cu ajutorul creia implementeaz MAC-ul.
Principalul pe care se bazeaz aceast tehnic este acela de a refuza execuia aplicaiilorale cror permisiuni nu sunt explicit descrise, prin urmare nu se tie exact, care va fi efectulexecutrii lor. Un alt avantaj al SELinux este acela c ofer posibilitatea de a seta anumite limiteale comportamentului unor aplicaii ce se ncadreaz n categoria color potenial duntoaresistemului de Linux. Astfel, respectivele aplicaii nu pot iei din acel model comportamental,rmnnd blocate i probabil oprite.
Alte probleme ntmpinate au fost legate de serverul web, dar i de necesitatea de a ruladou fiiere snmp-manager.py i snmp-pages.py, la un interval regulat.
Problema legat de serverul web a fost c nu mai mergea serviciul ce are legtur cupagina web. Dup o citire amnunt a informaiilor gsite n log-uri, a trebuit s specific nfiierul de configurare a serverului web ServerName-ul (numele sau eticheta serverului web princare poate fi accesat pe un browser). Deoarece nu am creat un domeniu, am scris adresa IP aserverului web i problema a fost rezolvat.
Necesitatea de a rula dou fiiere la un interval regulat (n acest caz am ales un minut) afost mplinit prin folosirea Crontab. Dup realizarea acestui lucru, a aprut alt problem, nurma executrii fiierului snmp-pages.py rezulta o eroare cum c nu exist fiierul template.html.Acest lucru a fost rezolvat, prin forarea crontab-ului de a deschide mai nti calea la care existfiierele necesare rulrii proiectului i apoi executnd acele fiiere. Datele care se gsesc ncrontab, se gsesc la Anexa 3.
16
-
Capitolul 5.Testarea aplicaiei i rezultatele experimentale
Capitolul 5. Testarea aplicaiei i rezultatele experimentale
5.1. Elemente de configurarePentru ca proiectul s ofere datele dorite este nevoie ca att managerul, ct i agenii s
fie configurai corespunztor.
5.1.1. Configurarea managerului SNMPnainte de a ajunge la configurarea managerului SNMP a fost nevoie de instalarea
NetSNMP. Dup aceea a fost nevoie de configurarea fiierului snmpd.conf, care se gsete lacalea /var/www/html.n acest fiier a trebuit s am n vedere versiunea SNMP pe care urma s o utilizez, communitystring-ul (o mic metod de securitate, pentru nu a avea oricine acces la datele trimise de agentctre manager) i la ce gam de informaii poate avea acces.
n final, am creat scripturile prezentate anterior, pentru o comunicare ct mai uoar ntreagent i manager.
Pentru o siguran se verific dac managerul comunic cu agenii prin portul 161.Aceasta se face prin comanda netstat -tulpan grep 161.
5.1.2. Configurarea agentului SNMP pe Linux Asemenea ca pe maina pe care se gsete managerul SNMP, trebuie realizat i pe
obiectele ce se doresc monitorizate (mai puin partea cu realizarea scripturilor).Informaiile ce se regsesc n fiierul snmpd.conf se gsesc la Anexa 4. Ca i precizare, a
ultimei linii ,aflat n fiierul snmpd.conf, este necesar pentru a trimite date despre spaiu pedisk ctre manager.
Pe lng adaptarea fiierului snmpd.conf la cele necesare, mai trebuie adugat excepie peportul 161/udp n firewall.
n final, se realizeaz aceeai verificare, conform creia agentul comunic cu managerulpe portul 161.
5.1.3. Configurarea agentului SNMP pe WindowsPe sistemele de operare puse la dispoziie de Microsoft lucrurile sunt puin mai simple.
Aici voi explica pas cu pas cu ajutorul capturilor realizate n timpul configurrii.Fie c este un sistem de operare dedicat uzului de zi cu zi (Windows 7, 8 sau 10) sau
dedicat pentru servere, paii de configurare sunt la fel, cu o singur excepie insignifiant. Pasul iniial este s deschizi Control Panel, apoi n Programs and Features i deschizi
Turn Windows features on or off. Diferena de care spuneam se gsete aici. Pe sistem de operarededicat uzului de zi cu zi se deschide o fereastr nou, ca n Figura 5.1. n cazul unui sistem de operare dedicat serverului, se va deschide Server Manager i Add Rolesand Features Wizard, ca n Figura 5.2. Aici, se va selecta de la Features, SNMP Service.
17
-
Ionu Lumin
Dup instalarea serviciului SNMP, se va intra la servicii pentru a l configura. Principalullucru ce trebuie realizat, este s specifici n tabul de securitate community string-ul i de la cineaccepi pachete SNMP. Un exemplu concret al acestor specificaii se gsete n Figura 5.3. Deasemenea trebuie specificate ce informaii s comunice agentul managerului. Acestea se gsescn tabul Agent. Un exemplu concret se gsete n Figura 5.4.
La finalul acestor configurri, trebuie restartat serviciul SNMP pentru a lua n consideraremodificrile efectuate.
18
Figura 5.1: Instalare agent SNMP peWindows 7
Figura 5.2: Instalare agent SNMP pe Windows Server 2012 R2
Figura 5.3: Exemplu de configurare n tabulSecuritate
Figura 5.4: Exemplu de configurare n tabul Agent
-
Capitolul 5.Testarea aplicaiei i rezultatele experimentale
5.2. Testarea sistemuluiTestarea sistemului a fost realizat pe serverul SNMP. S-a adaptat fiierul de configurare
snmp-manager.cfg astfel nct s se monitorizeze serverul SNMP. Pentru a genera cteva rezultate a fost nevoie s utilizm resursele mainii, prin urmare amdeschis un browser i am navigat pe internet, timp de 10 minute. n final, s-au observat graficelegenerate pentru traficul de download, upload, memoria RAM disponibil i procentul CPUutilizat. De asemenea pentru memoria RAM i CPU am fcut o comparaie cu datele obinute dinaplicaia top i acestea coincideau cu graficul generat pe pagina web.
Pentru testarea comunicrii dintre agent i manager, am folosit comanda snmpwalk. Cuajutorul acestei comenzi fceam cerere la agent s mi genereze date, n funcie de OID-ulspecificat. Aceste date erau furnizate la consol.
Un exemplu concret al acestei comenzi este urmtorul: smnpwalk -v 2c -c userall 10.0.1.131 1.3.6.1.2.1.2.2.1.10.
Primul lucru specificat dup snmpwalk este versiunea (-v), care n exemplul de fa este 2c. Aldoilea lucru ce era necesar pentru a primi date de la agent era community string-ul (-c), care esteuserall. Ultimele dou lucruri sunt adresa IP a obiectului de la care se doresc informaii( 10.0.1.131 ) i OID-ul 1.3.6.1.2.1.2.2.1.10. Cu ajutorul acestui OID am primit informaii de latoate plcile de reea existente, n legtur cu traficul pentru download. Pentru a face distinciantre plcile de reea a trebuit s folosesc alt OID i anume 1.3.6.1.2.1.2.2.1.2. Cu ajutorul acestuiOID mi afieaz pe consol o descriere succint a fiecrei plci de reea existente ( n acest cazera 23 plci de reea ).
19
-
Ionu Lumin
Concluzii
Dup cum mi-am propus, nainte de a proiecta aplicaia, am reuit s ndeplinesc ceea cemi-am propus i anume s observ, n timp real, starea de funcionare a echipamentelor decomunicaie sau a echipamentelor destinate anumitor servicii.
Acest proiect a fost o provocare pentru mine. Pe de o parte, am nvat destul de multelucruri i mi-a trezit interesul pentru a continua n acest domeniul. Pe de alt parte, amntmpinat destul de multe dificulti, dar cu toate acestea sunt bucuros de ceea ce am realizat.
Proiectul poate fi dezvoltat n continuare. El ar putea s conin mai multe date statisticede la obiectele monitorizate, folosirea wake on LAN pentru a putea porni un calculator,posibilitatea de a restarta diferite servicii sau placa de reea i adugarea unui nou obiect ce sedorete monitorizat direct din pagina web. Pe lng acestea, proiectul ar mai putea include ometod de autentificare (de preferat prin LDAP), un nume de domeniu i un certificat pentruHTTPS.
Ca i concluzie general, acest proiect poate fi de ajutor oricrui administrator de sistem,care dorete s foloseasc o soluie proprie.
20
-
Bibliografie
Bibliografie[1] Douglas Mauro, Kevin Schmidt, Essential SNMP, O'Reilly, 2008.[2] Aaron Leskiw, SNMP Tutorial Part 2: Rounding Out the Basics [Online], Disponibil la adresa:
http://www.networkmanagementsoftware.com/snmp-tutorial-part-2-rounding-out-the-basics/,Accesat: 2016.
[3] Kevin R. Fall, W. Richard Stevens, The Protocols, Addison-Wesley Professional ComputingSeries, 2012.
[4] William Stallings, SNMP, SNMPv2, SNMPv3 and RMON 1 and 2, Addison-WesleyProfessional, 1993.
[5] , RRDtool [Online], Disponibil la adresa: http://oss.oetiker.ch/rrdtool/, Accesat: 2016.[6] , De ce Python [Online], Disponibil la adresa: http://py4school.rosedu.org/wiki/doku.php?id=intro-
si-sintaxa, Accesat: 2016.[7] , Why Django [Online], Disponibil la adresa: https://www.djangoproject.com/start/overview/,
Accesat: 2016.[8] , [Online], Disponibil la adresa: http://jinja.pocoo.org/, Accesat: 2016.[9] , About Apache [Online], Disponibil la adresa: http://httpd.apache.org/ABOUT_APACHE.html,
Accesat: 2016.[10] , [Online], Disponibil la adresa: https://www.nagios.com/, Accesat: 2016.[11] , What is Cacti? [Online], Disponibil la adresa: http://www.cacti.net/what_is_cacti.php, Accesat:
2016.[12] , About Zenoss [Online], Disponibil la adresa: https://www.zenoss.com/company, Accesat: 2016.[13] Andrew Tanenbaum, Reele de calculatoare, Byblos, 2003.[14] Rand Morimoto, Michael Noel, Guy Yardeni, Omar Droubi, Andrew Abbate, Chris Amaris ;
technical edit by Tyson Kopczynski, Windows Server 2012 unleashed, SAMS, 2013.[15] Aidan Finn, Patrick Lownds, Michel Luescher, Patrick Lownds, Damian Flynn, Windows Server
2012 Hyper-V Instalation and Configuration Guide, SYBEX, 2013.[16] , Ce este Linux? [Online], Disponibil la adresa: http://www.linux.ro/, Accesat: 2016.[17] , What is CentOS Linux? [Online], Disponibil la adresa: https://wiki.centos.org/?id=3, Accesat:
2016.[18] Dina Glazer, SNMP Tutorial Part 4: Layered Communication [Online], Disponibil la adresa:
http://userpages.umbc.edu/~dgorin1/451/snmp/snmp_tutorial.htm, Accesat: 2007.[19] Christopher Negus, Linux Bible, Wiley, 2015.
21
-
Ionu Lumin
Anexe
Anexa 1. Exemplul de informaii din fiierul snmp-manager.cfg[system_4]description=Server FTPaddress=10.0.1.65port=161communityro=userall
[check_40]description=WLAN incoming trafficoid=1.3.6.1.2.1.2.2.1.10.2system=system_4sampling_rate=100
[check_41]description=WLAN outgoing trafficoid=1.3.6.1.2.1.2.2.1.16.2system=system_4sampling_rate=100
[check_42]description=Available Disk Spaceoid=1.3.6.1.4.1.2021.9.1.7.1system=system_4sampling_rate=600
[check_43]description=Percentage of User CPU timeoid=1.3.6.1.4.1.2021.11.9.0system=system_4sampling_rate=600
[check_44]description=RAM Availableoid=1.3.6.1.4.1.2021.4.6.0system=system_4sampling_rate=600
22
-
Anexe
Anexa 2. Script xml pentru excepie firewall
SNMPSNMP protocol
Anexa 3. Executarea unui fiier la un interval regulat de timp*/1 * * * * (cd /var/www/html/ ; ./snmp-manager.py >> log.txt)*/1 * * * * (cd /var/www/html/; /snmp-pages.py >>log.txt)
Anexa 4. Configurarea fiierului snmpd.conf# Map 'userc' community to the 'ConfigUser'# Map 'userall' community to the 'AllUser'
# sec.name source communitycom2sec ConfigUser default userccom2sec AllUser default userall# Map 'ConfigUser' to 'ConfigGroup' for SNMP Version 2c# Map 'AllUser' to 'AllGroup' for SNMP Version 2c
# sec.model sec.namegroup ConfigGroup v2c ConfigUsergroup AllGroup v2c AllUser
# Define 'SystemView', which includes everything under .1.3.6.1.2.1.1 (or .1.3.6.1.2.1.25.1)# Define 'AllView', which includes everything under .1# incl/excl subtreeview SystemView included .1.3.6.1.2.1.1view SystemView included .1.3.6.1.2.1.25.1.1view SystemView included .1.3.6.1.2.1.2.2.1.10view SystemView included .1.3.6.1.2.1.2.2.1.16view SystemView included .1.3.6.1.4.1.2021.9view AllView included .1.3.6.1.4.1.2021.9view AllView included .1
# Give 'ConfigGroup' read access to objects in the view 'SystemView'# Give 'AllGroup' read access to objects in the view 'AllView'# context model level prefix read write notifyaccess ConfigGroup "" any noauth exact SystemView none noneaccess AllGroup "" any noauth exact AllView none none
disk / 100000
23
Capitolul 1. IntroducereCapitolul 2. Fundamentarea teoretic i documentarea bibliografic2.1. Simple Network Management Protocol2.1.1. SNMPv12.1.2. SNMPv22.1.3. SNMPv32.2. RRDtool2.3. Limbajul Python i avantajele folosirii acestuia2.4. Framework-ul Django2.5. Jinja22.6. Serverul web Apache2.7. Soluii existente pentru monitorizarea unei reele2.7.1. Nagios2.7.2. Cacti2.7.3. ZenossCapitolul 3. Proiectarea aplicaiei3.1. Componenta hardware3.1.1. Router3.1.2. Firewall3.1.3. Switch3.1.4. Server3.2. Componenta software3.2.1. Microsoft Windows Server 2012 R23.2.2. Microsoft Hyper-V3.2.3. Linux3.2.4. CentOS 73.2.5. Aplicaia propriu zisCapitolul 4. Implementarea aplicaiei4.1. Comunicarea manager agent4.2. Interfaa cu utilizatorul4.3. Probleme ntmpinate i modaliti de rezolvarea4.3.1. SELinuxCapitolul 5. Testarea aplicaiei i rezultatele experimentale5.1. Elemente de configurare5.1.1. Configurarea managerului SNMP5.1.2. Configurarea agentului SNMP pe Linux5.1.3. Configurarea agentului SNMP pe Windows5.2. Testarea sistemuluiConcluziiBibliografieAnexeAnexa 1. Exemplul de informaii din fiierul snmp-manager.cfgAnexa 2. Script xml pentru excepie firewallAnexa 3. Executarea unui fiier la un interval regulat de timpAnexa 4. Configurarea fiierului snmpd.conf