Snmp: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Dkrajuhh (talk | contribs)
Dkrajuhh (talk | contribs)
No edit summary
 
(16 intermediate revisions by the same user not shown)
Line 1: Line 1:
SNMP - Deniss Krajuhhin AK21
Autor: Deniss Krajuhhin, AK21


Antud artikkel annab üldist kirjeldust SNMP protokollile ning näitlikult seletab selle paigaldamist Ubuntu Server keskkonnas. Toodud näited põhinevad Ubuntu Server versioonil 12.04.
Antud artikkel annab üldist kirjeldust SNMP protokollile ning näitlikult seletab selle paigaldamist Ubuntu Server keskkonnas. Toodud näited põhinevad Ubuntu Server versioonil 12.04.3.




Line 9: Line 9:
SNMP vahendusel on võimalik saada erinevat võrguseadme(te) kohta käivat infot nagu võrguliidese, protsessori ning mälu kasutamine ja olekud; süsteemi, marsruutimistabelite, teenuste kasutamise ja konfiguratsiooni statistikat ning väga palju muud (Solarwinds).  
SNMP vahendusel on võimalik saada erinevat võrguseadme(te) kohta käivat infot nagu võrguliidese, protsessori ning mälu kasutamine ja olekud; süsteemi, marsruutimistabelite, teenuste kasutamise ja konfiguratsiooni statistikat ning väga palju muud (Solarwinds).  
Sõltuvalt jälgitavate andmete saamise tihedusest (konfigureeritav) vastavate rakenduste vahendusel on võimalik jälgida seadmete ja ühenduste olekuid ning statistikat peagu reaalajas.
Sõltuvalt jälgitavate andmete saamise tihedusest (konfigureeritav) vastavate rakenduste vahendusel on võimalik jälgida seadmete ja ühenduste olekuid ning statistikat peagu reaalajas.
Lisaks võrguseadmete jälgimisele SNMP vahendusel on võimalik ka lähtestada seadmete konfiguratsiooni parameetreid (sõltub konkreetse riistavara/tarkvara võimalustest) (Solarwind).
Lisaks võrguseadmete jälgimisele SNMP vahendusel on võimalik ka lähtestada seadmete konfiguratsiooni parameetreid (sõltub konkreetse riistavara/tarkvara võimalustest) (Solarwinds).


SNMP-t toetavad peagu kõik võrguseadmed (versioonide tugi võib erineda).
SNMP-t toetavad peagu kõik võrguseadmed (versioonide tugi võib erineda).


SNMP ajakohaseks info edastamiseks transpordikihi protokollina kasutatakse UDP-t (Solarwind).  
SNMP ajakohaseks info edastamiseks transpordikihi protokollina kasutatakse UDP-t (Solarwinds).  


'''SNMP versioonid'''
'''SNMP versioonid'''


Kinnitatud on kolm SNMP versiooni (standarti):
Kinnitatud on kolm SNMP versiooni:


• SNMPv1
• SNMPv1
Line 26: Line 26:


SNMPv1 oli esialgu määratletud 1988.a. ning kirjeldatud IETF kommentaarikutses 1990.a. SNMPv2 tutvustati 1993.a., milles eemaldati SNMPv1 puudusi protokollide töös ning tõstes selle turvalisust. Kuid turvalisuse tõstmisega esile tulnud puudused viisid SNMPv2c versiooni arendamiseni, milles jäeti uue turvamudeli võimalused. (Oracle)
SNMPv1 oli esialgu määratletud 1988.a. ning kirjeldatud IETF kommentaarikutses 1990.a. SNMPv2 tutvustati 1993.a., milles eemaldati SNMPv1 puudusi protokollide töös ning tõstes selle turvalisust. Kuid turvalisuse tõstmisega esile tulnud puudused viisid SNMPv2c versiooni arendamiseni, milles jäeti uue turvamudeli võimalused. (Oracle)
SNMPv3, mis tututvustati 1999.a., määratleb SNMP haldusraamistiku, mis toetab liidetavaid komponente, nende hulgas ka turvakomponente (Oracle).
SNMPv3, mis tutvustati 1999.a., määratleb SNMP haldusraamistiku, mis toetab liidetavaid komponente, nende hulgas ka turvakomponente (Oracle).


'''SNMP süsteemi ülesehitus'''
'''SNMP süsteemi ülesehitus'''
Line 39: Line 39:


== SNMP ohud ==
== SNMP ohud ==
SNMPv1 ja SNMPv2 enimlevinud alamversioon SNMPv2c  ei ole turvalised (teised SNMPv2 versioonid ei ole piisavalt turvalised) (SANS org).   
SNMPv1 ja SNMPv2 enimlevinud alamversioon SNMPv2c  ei ole turvalised (teised SNMPv2 versioonid ei ole piisavalt turvalised) (SANS Institute).   
Nende versioonide haldurite ja agentide andmevahetuseks moodustatakse nn kogukond (''ingl'' community). Kogukonda kuulumise tõestuseks kasutatakse salasõnu, mida SNMP-s nimetatakse kogukonna ''string''-iks (eestikeelset vastet ei ole veel välja kujunenud). Neid ''string''-e SNMPv1 ja SNMPv2c versioonides vahendatakse SNMP sõnumites avatekstina, mille tõttu nende käte saamine paketinuhkimistarkvara abil peetakse lihtsaks ja seega, need ei ole turvalised.
Nende versioonide haldurite ja agentide andmevahetuseks moodustatakse nn kogukond (''ingl'' community). Kogukonda kuulumise tõestuseks kasutatakse salasõnu, mida SNMP-s nimetatakse kogukonna ''string''-iks (eestikeelset vastet ei ole veel välja kujunenud). Neid ''string''-e SNMPv1 ja SNMPv2c versioonides vahendatakse SNMP sõnumites avatekstina, mille tõttu nende käte saamine paketinuhkimistarkvara abil peetakse lihtsaks ja seega, need ei ole turvalised.


SNMPv3 adresseerib eelnevate versioonide turvalisuse nõrkusi tuues sisse selliseid omadusi nagu kasutajad, autentimine ja krüpteerimine. SNMPv3-ga on võimaliku luua nii palju kasutajaid kui vaja ning lubada neid ainult teatud MIB andmetele. Kasutajaid autentitakse enne andmete vahendamise alustamist ning kogu andmevahetuse terviklikkus on tagatud MD5 või SHA krüptoräsiga (SANS).
SNMPv3 adresseerib eelnevate versioonide turvalisuse nõrkusi tuues sisse selliseid omadusi nagu kasutajad, autentimine ja krüpteerimine. SNMPv3-ga on võimaliku luua nii palju kasutajaid kui vaja ning lubada neid ainult teatud MIB andmetele. Kasutajaid autenditakse enne andmete vahendamise alustamist ning kogu andmevahetuse terviklikkus on tagatud MD5 või SHA krüptoräsiga (SANS Institute).


== SNMP paigaldamine ==
== SNMP paigaldamine ==
SNMP seadistamiseks Linux-laadses süsteemis on vaja paigaldada kahte tarkvarapaki - '''net-snmp''' ja '''snmp daemon''' (taustal töötav programm). Pakide nimed on vastavalt '''snmp''' ja '''snmpd'''.  
SNMP seadistamiseks Linux-laadses süsteemis on vaja paigaldada kahte tarkvarapaki - '''net-snmp''' ja '''snmp daemon''' (taustal töötav programm). Pakkide nimed on vastavalt '''snmp''' ja '''snmpd''' (Jinkernet).  


Pakkide paigaldamine:
Pakkide paigaldamine:
Line 51: Line 51:
<pre> sudo apt-get install snmp snmpd </pre>
<pre> sudo apt-get install snmp snmpd </pre>


Enne edasiste muudatuste tegemist tuleks varundada deemoni paigaldamise käigus loodud konfiguratsiooni fail '''snmpd.conf''' ja luua uus '''snmpd.conf''' fail (juhuks kui muudatuste käigus midagi läheb katki):
Enne edasiste muudatuste tegemist tuleks varundada deemoni paigaldamise käigus loodud konfiguratsiooni fail '''snmpd.conf''' ja luua uus '''snmpd.conf''' fail (juhuks kui muudatuste käigus midagi läheb katki) (Jinkernet):


<pre> sudo cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.vana </pre>
<pre> sudo cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.vana </pre>
Line 57: Line 57:
Edasi tuleb muuta '''snmp.conf''' fail.  
Edasi tuleb muuta '''snmp.conf''' fail.  


SNMP kaudu andmete pärimiseks turvalise kohtvõrgu piires piisab sellest, kui lubatakse kogu kogukonnale andmete lugemist. Selleks kõige pealt tuleks tekstiredaktoriga (näiteks nano) teha lahti '''snmpd.conf''' fail:
SNMP kaudu andmete pärimiseks turvalise kohtvõrgu piires piisab sellest, kui lubatakse kogu kogukonnale andmete lugemist. Selleks kõige pealt tuleks tekstiredaktoriga (näiteks nano) teha lahti '''snmpd.conf''' fail (It-Salv.net):


<pre> sudo nano /etc/snmp/snmpd.conf </pre>
<pre> sudo nano /etc/snmp/snmpd.conf </pre>
Line 68: Line 68:
</pre>
</pre>


Teadlikumale administraatorile on soovitav teostada '''snmpd.conf''' faili põhjalikum seadistamine vastavalt vajadustele:
Teadlikumale administraatorile on soovitav teostada '''snmpd.conf''' faili põhjalikum seadistamine vastavalt vajadustele (Jinkernet):


<pre> sudo snmpconf -g basic_setup </pre>
<pre> sudo snmpconf -g basic_setup </pre>


Seejärel tuleb '''snmpd''' -le lähtestada uue faili kasutamine ning käivitada teenus kõikidel portidel.
Seejärel tuleb '''snmpd''' -le lähtestada uue faili kasutamine ning käivitada teenus kõikidel portidel (It-Salv.net).


Selleks tuleks tekstiredaktoriga muuta faili '''/etc/default/snmpd''':
Selleks tuleks tekstiredaktoriga muuta faili '''/etc/default/snmpd''':
Line 90: Line 90:
<pre> sudo /etc/init.d/snmpd restart </pre>
<pre> sudo /etc/init.d/snmpd restart </pre>


Ubuntu versioonis 12.04 ja vanem ''snmp'' või ''snmpd'' paigalduspakid enam ei sisalda ''MIB'' -e. ''MIB'' -ide allalaadimiseks tuleb lisaks ka paigaldada pakk '''snmp-mibs-downloader''':
Ubuntu versioonis 12.04 ja vanem ''snmp'' või ''snmpd'' paigalduspakid enam ei sisalda ''MIB'' -e. ''MIB'' -ide alla laadimiseks tuleb lisaks ka paigaldada pakk '''snmp-mibs-downloader''':


<pre> sudo apt-get install snmp-mibs-downloader </pre>
<pre> sudo apt-get install snmp-mibs-downloader </pre>


Peali paki paigaldamist tuleb tekstiredaktoriga muuta '''/etc/snmp/snmp.conf''' fail ning panna ette trellid ainsale kommenteerimata reale "mibs:"
Peale paki paigaldamist tuleb tekstiredaktoriga muuta '''/etc/snmp/snmp.conf''' fail ning panna ette trellid ainsale kommenteerimata reale "'''mibs:'''" (help.ubuntu.com):


<pre>
<pre>
Line 104: Line 104:
</pre>
</pre>


== Lingid ==
'''Testimine'''
 
Teenuse testimiseks tuleb sisestada järgmine käsk (käsu kasutamisest ja selle võimalustest on soovitatav uurida selle manuaali '''man snmpwalk''' ) (askubuntu.com):
 
<pre> snmpwalk -v 2c -c public localhost system </pre>
 
Juhul kui SNMP teenus toimib, vastuseks tuleb midagi sarnast:
<pre>
SNMPv2-MIB::sysDescr.0 = STRING: Linux server2 3.8.0-29-generic #42~precise1-Ubuntu SMP Wed Aug 14 16:19:23 UTC 2013 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1436249) 3:59:22.49
SNMPv2-MIB::sysContact.0 = STRING: deniss.krajuhhin@itcollege.ee
SNMPv2-MIB::sysName.0 = STRING: server2
SNMPv2-MIB::sysLocation.0 = STRING: "HP-Deniss"
...
</pre>
 
== Allikad ==
 
1. http://docs.oracle.com/cd/E19624-01/817-2559-16/intro.html
 
2. http://www.solarwinds.com/documentation/ref/IntroductionToSNMP.pdf
 
3. http://www.sans.org/reading-room/whitepapers/networkdevs/securing-snmp-net-snmp-snmpv3-1051
 
4. http://jinkernet.com/WordPress/2013/09/16/how-to-install-and-configure-snmp-on-ubuntu-server-12-04-3/
 
5. http://www.it-slav.net/blogs/2009/02/05/install-and-configure-snmp-on-ubuntu/
 
6. https://help.ubuntu.com/community/SNMPAgent
 
7. http://askubuntu.com/questions/141564/what-is-snmp-used-for/252994#252994
 
== Kokkuvõte ==
 
Tänapäeva IT kujutab endast üpriski keerukat paljudest omavahel seotud komponentidest süsteemi. Eriti suurfirmades ja suurtes asutustes. Mida suurem ja keerukam IT süsteem, seda raskemaks muutub selle haldamine ja seda suuremat rolli hakkab omama kiire ja asjakohane info edastamine IT süsteemi ja selle komponentide kõrvalekallete ja rikete kohta. Kusjuures erinevaid funktsioone täitvatele isikutele või gruppidele edastatav informatsioon peab olema erinev. Eriti meie jätkuvalt globaliseerivas maailmas see hakkab omama järjest suuremat tähtsust.
 
Seda kõike võimaldab SNMP.
 
Oma lihtsuse tõttu SNMP v1 on siiani laialt kasutusel, mis küll kindlasti nõuab eraldi VLAN-i ja hästi korraldatud ligipääsuõigusi, siis SNMP v3 seda veel ei ole ja lisaks nõuab ka tunduvalt suuremat jõudlust ja seadistamise panust. Kuid SNMP v3 võimaldab saavutada kõike seda, mida tänapäeval võime ühe IT süsteemi haldamisvõimalustest oodata. Seda kindlasti ees ootab suur tulevik.

Latest revision as of 16:31, 7 January 2014

Autor: Deniss Krajuhhin, AK21

Antud artikkel annab üldist kirjeldust SNMP protokollile ning näitlikult seletab selle paigaldamist Ubuntu Server keskkonnas. Toodud näited põhinevad Ubuntu Server versioonil 12.04.3.


Mis on SNMP?

Simple Network Management Protocol (SNMP) on interneti protokollistikku kuuluv rakenduskihi protokoll võrguseadmete jälgimiseks ja haldamiseks. Protokoll ja selle erinevad versioonid on kirjeldatud Internet Engineering Task Force (IETF) poolt kommentaarikutsete (ingl RFC – Request for Comment) kogumikus (Oracle).

SNMP vahendusel on võimalik saada erinevat võrguseadme(te) kohta käivat infot nagu võrguliidese, protsessori ning mälu kasutamine ja olekud; süsteemi, marsruutimistabelite, teenuste kasutamise ja konfiguratsiooni statistikat ning väga palju muud (Solarwinds). Sõltuvalt jälgitavate andmete saamise tihedusest (konfigureeritav) vastavate rakenduste vahendusel on võimalik jälgida seadmete ja ühenduste olekuid ning statistikat peagu reaalajas. Lisaks võrguseadmete jälgimisele SNMP vahendusel on võimalik ka lähtestada seadmete konfiguratsiooni parameetreid (sõltub konkreetse riistavara/tarkvara võimalustest) (Solarwinds).

SNMP-t toetavad peagu kõik võrguseadmed (versioonide tugi võib erineda).

SNMP ajakohaseks info edastamiseks transpordikihi protokollina kasutatakse UDP-t (Solarwinds).

SNMP versioonid

Kinnitatud on kolm SNMP versiooni:

• SNMPv1

• SNMPv2 (jaguneb omakorda alamversioonideks)

• SNMPv3

SNMPv1 oli esialgu määratletud 1988.a. ning kirjeldatud IETF kommentaarikutses 1990.a. SNMPv2 tutvustati 1993.a., milles eemaldati SNMPv1 puudusi protokollide töös ning tõstes selle turvalisust. Kuid turvalisuse tõstmisega esile tulnud puudused viisid SNMPv2c versiooni arendamiseni, milles jäeti uue turvamudeli võimalused. (Oracle) SNMPv3, mis tutvustati 1999.a., määratleb SNMP haldusraamistiku, mis toetab liidetavaid komponente, nende hulgas ka turvakomponente (Oracle).

SNMP süsteemi ülesehitus

"Üldiselt võib öelda, et SNMP süsteem koosneb kolmest osast – SNMP haldur (ingl manager), SNMP agent ja haldusinfo andmebaas (ingl MIB – Management Information Base)(Solarwinds):

• SNMP haldur on tarkvarasüsteem, mis kasutab SNMP-t sõnumite vahendamiseks halduri ja selle agendi vahel. Seda nimetatakse ka võrgu haldussüsteemiks (ingl NMS – Netowrk Management System)

• SNMP agent on tarkvara, mis on hallatavate seadmetesse paigaldatud. Agent võimaldab hallataval seadmel salvestada enda kohta andmeid ja vahetada neid halduriga

• SNMP MIB on interpreteerija, mis võimaldab struktureeritud andmete vahetust halduri ja agendi vahel" (Solarwinds)

SNMP ohud

SNMPv1 ja SNMPv2 enimlevinud alamversioon SNMPv2c ei ole turvalised (teised SNMPv2 versioonid ei ole piisavalt turvalised) (SANS Institute). Nende versioonide haldurite ja agentide andmevahetuseks moodustatakse nn kogukond (ingl community). Kogukonda kuulumise tõestuseks kasutatakse salasõnu, mida SNMP-s nimetatakse kogukonna string-iks (eestikeelset vastet ei ole veel välja kujunenud). Neid string-e SNMPv1 ja SNMPv2c versioonides vahendatakse SNMP sõnumites avatekstina, mille tõttu nende käte saamine paketinuhkimistarkvara abil peetakse lihtsaks ja seega, need ei ole turvalised.

SNMPv3 adresseerib eelnevate versioonide turvalisuse nõrkusi tuues sisse selliseid omadusi nagu kasutajad, autentimine ja krüpteerimine. SNMPv3-ga on võimaliku luua nii palju kasutajaid kui vaja ning lubada neid ainult teatud MIB andmetele. Kasutajaid autenditakse enne andmete vahendamise alustamist ning kogu andmevahetuse terviklikkus on tagatud MD5 või SHA krüptoräsiga (SANS Institute).

SNMP paigaldamine

SNMP seadistamiseks Linux-laadses süsteemis on vaja paigaldada kahte tarkvarapaki - net-snmp ja snmp daemon (taustal töötav programm). Pakkide nimed on vastavalt snmp ja snmpd (Jinkernet).

Pakkide paigaldamine:

 sudo apt-get install snmp snmpd 

Enne edasiste muudatuste tegemist tuleks varundada deemoni paigaldamise käigus loodud konfiguratsiooni fail snmpd.conf ja luua uus snmpd.conf fail (juhuks kui muudatuste käigus midagi läheb katki) (Jinkernet):

 sudo cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.vana 

Edasi tuleb muuta snmp.conf fail.

SNMP kaudu andmete pärimiseks turvalise kohtvõrgu piires piisab sellest, kui lubatakse kogu kogukonnale andmete lugemist. Selleks kõige pealt tuleks tekstiredaktoriga (näiteks nano) teha lahti snmpd.conf fail (It-Salv.net):

 sudo nano /etc/snmp/snmpd.conf 

Ja lisada sellesse järgmised read (või vähemalt esimene rida):

rocommunity public
syslocation “Siia tuleb kirjeldus”
syscontact meiliaadress@domeen.midagi 

Teadlikumale administraatorile on soovitav teostada snmpd.conf faili põhjalikum seadistamine vastavalt vajadustele (Jinkernet):

 sudo snmpconf -g basic_setup 

Seejärel tuleb snmpd -le lähtestada uue faili kasutamine ning käivitada teenus kõikidel portidel (It-Salv.net).

Selleks tuleks tekstiredaktoriga muuta faili /etc/default/snmpd:

 sudo nano /etc/default/snmpd 

Ja pannes ette trellid kommenteerida välja järgmine rida:

 #SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid' 

Ning selle asemel lisada:

 SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid -c /etc/snmp/snmpd.conf' 

Peale muudatuste teostamist on vaja snmpd teenus taaskäivitada:

 sudo /etc/init.d/snmpd restart 

Ubuntu versioonis 12.04 ja vanem snmp või snmpd paigalduspakid enam ei sisalda MIB -e. MIB -ide alla laadimiseks tuleb lisaks ka paigaldada pakk snmp-mibs-downloader:

 sudo apt-get install snmp-mibs-downloader 

Peale paki paigaldamist tuleb tekstiredaktoriga muuta /etc/snmp/snmp.conf fail ning panna ette trellid ainsale kommenteerimata reale "mibs:" (help.ubuntu.com):

#
# As the snmp packages come without MIB files due to license reasons, loading
# of MIBs is disabled by default. If you added the MIBs you can reenable
# loaging them by commenting out the following line.
# mibs :

Testimine

Teenuse testimiseks tuleb sisestada järgmine käsk (käsu kasutamisest ja selle võimalustest on soovitatav uurida selle manuaali man snmpwalk ) (askubuntu.com):

 snmpwalk -v 2c -c public localhost system 

Juhul kui SNMP teenus toimib, vastuseks tuleb midagi sarnast:

SNMPv2-MIB::sysDescr.0 = STRING: Linux server2 3.8.0-29-generic #42~precise1-Ubuntu SMP Wed Aug 14 16:19:23 UTC 2013 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1436249) 3:59:22.49
SNMPv2-MIB::sysContact.0 = STRING: deniss.krajuhhin@itcollege.ee
SNMPv2-MIB::sysName.0 = STRING: server2
SNMPv2-MIB::sysLocation.0 = STRING: "HP-Deniss"
...

Allikad

1. http://docs.oracle.com/cd/E19624-01/817-2559-16/intro.html

2. http://www.solarwinds.com/documentation/ref/IntroductionToSNMP.pdf

3. http://www.sans.org/reading-room/whitepapers/networkdevs/securing-snmp-net-snmp-snmpv3-1051

4. http://jinkernet.com/WordPress/2013/09/16/how-to-install-and-configure-snmp-on-ubuntu-server-12-04-3/

5. http://www.it-slav.net/blogs/2009/02/05/install-and-configure-snmp-on-ubuntu/

6. https://help.ubuntu.com/community/SNMPAgent

7. http://askubuntu.com/questions/141564/what-is-snmp-used-for/252994#252994

Kokkuvõte

Tänapäeva IT kujutab endast üpriski keerukat paljudest omavahel seotud komponentidest süsteemi. Eriti suurfirmades ja suurtes asutustes. Mida suurem ja keerukam IT süsteem, seda raskemaks muutub selle haldamine ja seda suuremat rolli hakkab omama kiire ja asjakohane info edastamine IT süsteemi ja selle komponentide kõrvalekallete ja rikete kohta. Kusjuures erinevaid funktsioone täitvatele isikutele või gruppidele edastatav informatsioon peab olema erinev. Eriti meie jätkuvalt globaliseerivas maailmas see hakkab omama järjest suuremat tähtsust.

Seda kõike võimaldab SNMP.

Oma lihtsuse tõttu SNMP v1 on siiani laialt kasutusel, mis küll kindlasti nõuab eraldi VLAN-i ja hästi korraldatud ligipääsuõigusi, siis SNMP v3 seda veel ei ole ja lisaks nõuab ka tunduvalt suuremat jõudlust ja seadistamise panust. Kuid SNMP v3 võimaldab saavutada kõike seda, mida tänapäeval võime ühe IT süsteemi haldamisvõimalustest oodata. Seda kindlasti ees ootab suur tulevik.