Snmp: Difference between revisions
No edit summary |
|||
(35 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
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) ( | 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 ( | SNMP ajakohaseks info edastamiseks transpordikihi protokollina kasutatakse UDP-t (Solarwinds). | ||
'''SNMP versioonid''' | '''SNMP versioonid''' | ||
Kinnitatud on kolm SNMP versiooni | 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 | 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 | 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 | 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). Pakkide nimed on vastavalt '''snmp''' ja '''snmpd''' (Jinkernet). | |||
Pakkide paigaldamine: | |||
<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) (Jinkernet): | ||
<pre> sudo cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.vana </pre> | |||
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): | |||
<pre> sudo nano /etc/snmp/snmpd.conf </pre> | |||
Ja lisada sellesse järgmised read (või vähemalt esimene rida): | |||
<pre> | |||
rocommunity public | |||
syslocation “Siia tuleb kirjeldus” | |||
syscontact meiliaadress@domeen.midagi | |||
</pre> | |||
Teadlikumale administraatorile on soovitav teostada '''snmpd.conf''' faili põhjalikum seadistamine vastavalt vajadustele (Jinkernet): | |||
<pre> sudo snmpconf -g basic_setup </pre> | |||
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''': | |||
<pre> sudo nano /etc/default/snmpd </pre> | |||
Ja pannes ette trellid kommenteerida välja järgmine rida: | |||
<pre> #SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid' </pre> | |||
Ning selle asemel lisada: | |||
<pre> SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid -c /etc/snmp/snmpd.conf' </pre> | |||
Peale muudatuste teostamist on vaja '''snmpd''' teenus taaskäivitada: | |||
<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 alla laadimiseks tuleb lisaks ka paigaldada pakk '''snmp-mibs-downloader''': | |||
<pre> sudo apt-get install snmp-mibs-downloader </pre> | |||
Peale paki paigaldamist tuleb tekstiredaktoriga muuta '''/etc/snmp/snmp.conf''' fail ning panna ette trellid ainsale kommenteerimata reale "'''mibs:'''" (help.ubuntu.com): | |||
<pre> | |||
# | |||
# 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 : | |||
</pre> | |||
'''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
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.