Snmp
SNMP - 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.
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 tututvustati 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 autentitakse 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). Pakide 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 allalaadimiseks tuleb lisaks ka paigaldada pakk snmp-mibs-downloader:
sudo apt-get install snmp-mibs-downloader
Peali 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 manuali 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" ...
Lingid
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