<html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>snmp_agent_uptime</title> </head> <body> <h1>snmp_agent_uptime</h1> <h2>Namen naloge</h2> <p> </p> <h2>Hitra navodila</h2> <p> Naloga: Postavi tri navidezne racunalnike SimpleArbiter s sliko diska simpleArbiterDhcp,SNMPServer in SNMPClient. Napiši program upminutes, ki bo izpisal v minutah koliko casa je racunalnik vklopljen. Postavi ga na SNMPClient v domaÄŤi imenik uporabnika test z geslom test. </p> <p> Poskrbi, da bo SNMP strežnik prek SNMP pod NET-SNMP-EXTEND-MIB::nsExtendOutput2Table sporočal, koliko časa je vklopljen v sekundah. </p> <p> Napisi skripto, poimenovano beri.sh, ki prek SNMP prebere vrednost s streĹľnika SNMPServer na OID 1.3.6.1.4.1.8072.1.3.2.4.1.4. Postavi jo na SNMP klienta, v domači imenik uporabnika test z geslom test. </p> <h2>Navodila</h2> <h3>Nastavitev VM VirtualBox-a</h3> <ol> <li> Prenesi sledeče slike virtualk (*.vid) iz datoteke z slikami virtualk računalnikov: <ol type="disc"> <li> simpleArbiterDhcp.vdi </li> <li> neko-bash-konzolo.vdi (dvakrat), enkrat za SNMPServer in drugič SNMPClient. </li> </ol> </li> <li> VM VirtualBox OPOZORILO! Ce hoces uporabljati isto sliko virtualke (neko-bash-konzolo.vdi) za dva navidezna racunalnika (SNMPServer in SNMPClient), moras <strong>spremeniti UUID</strong> ene od slik. <ol type="disc"> <li> Uporabi ta ukaz <i>vboxmanage internalcommands sethduuid ime-diska.vdi</i> za spreminjanje UUID (<a href="http://www.giannistsakiris.com/2009/05/06/virtualbox-how-to-change-the-uuid-of-virtual-disk-vdi/">namig</a>). </li> </ol> </li> <li> Primer VM VirtualBox-a po nastavitvi.<br> <img src="..\images\01.png" width="800"> </li> </ol> <h3>Nastavitev SNMPServer virtualke</h3> <ol> <li> Nasnemi snmpd and snmp orodja za pregledovanje podatkov, ki so no voljo preko SNMP. <ol type="disc"> <li> ukaz <i>apt-get install snmpd snmp snmp-mibs-downloader</i> </li> </ol> <li> PRIPOROCILO! Preden spreminjate vaso datoteko /etc/snmp/snmpd.conf, naredite kopijo originalne datoteke. <ol type="disc"> <li> ukaz <i>cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.orig</i> </li> </ol> </li> <li> Nastavi snmp streznik tako, da se bodo lahko nanj povezali drugi racunalniki (popravi datoteko snmpd.conf). <ol type="disc"> <li> ukaz <i>nano /etc/snmp/snmpd.conf</i> (lahko uporabis drug urejevalnik besedila) </li> <li> odkomentiraj sledece stiri vrstice:<br> <i># Listen for connections from the local system only<br> # agentAddress udp:127.0.0.1:161<br> # Listen for connections on all interfaces (both IPv4 *and* IPv6)<br> agentAddress udp:161,udp6:[::1]:161</i> </li> </ol> </li> <li> Dodaj skupino (community) racunalnikov, ki lahko dostopajo do vseh podatkov. To skupino bomo poimenovali students (spet potrebno spremeniti datoteko) snmpd.conf file. <ol type="disc"> <li> rocommunity students 0.0.0.0/0 </li> <li> napisi pravilni naslov omrezja = ukaz <i>ifconfig -a</i> </li> </ol> </li> <li> DODATNA (NEOBVEZNA) KONFIGURACIJA. Nizje v isti datoteki lahko nastavis lokacijo racunalnika, na katerem deluje snmp, ter ime administratorja. <ol type="disc"> <li> poisci pod # SYSTEM INFORMATION </li> </ol> </li> <li> Poskrbi, da bo SNMP streznik prek SNMP pod NET-SNMP-EXTEND-MIB::nsExtendOutpucd k t2Table sporocal, koliko casa je vklopljen v sekundah. <ol type="disc"> <li> ustvari skripto upseconds, v kateri je zapisano sledece:<br> <i>#!/bin/bash<br> uptime=$(</proc/uptime)<br> seconds=${uptime%%.*}<br> echo "Uptime in seconds:" $seconds<br> exit 0</i><br> skripto nato shrani kjerkoli hoces </li> <li> ne pozabi skripti dodelti pravic, da jo lahko zaganjamo:<br> ukaz <i>chmod +x /pot_do_skripte/upseconds</i> </li> <li> Nato uredi datoteko <i>snmpd.conf</i> in pod # EXTENDING THE AGENT zakomentiraj vse tri teste ter dodaj svojo skripto upseconds. Zgledati bi moralo nekako tako:<br> <i># extend test1 /bin/echo Hello, world!<br> # extend-sh test2 echo Hello, world! ; echo Hi there ; exit 35<br> # extend-sh test3 /bin/sh /tmp/shtest<br> extend-sh "ime_testa" "pot_to_skripte_upseconds" </i> </li> </ol> </li> <li> Potrebno je ponovno zagnati snmp storitev. <ol type="disc"> <li> ukaz <i>/etc/init.d/snmpd restart</i> </li> </ol> </li> <li> Lahko testiras svoje nastavitve preko localhost-a. <ol type="disc"> <li> ukaz <i>snmpwalk localhost -c public -v1</i> </li> </ol> </li> <li> Stestiraj tudi, ali SNMP vrne pravilni cas delovanja (uptime) v sekundah pod NET-SNMP-EXTEND-MIB::nsExtendOutput2Table. <ol type="disc"> <li> ukaz <i>snmpwalk -c students -v1 IPnaslovStreznika 1.3.6.1.4.1.8072.1.3.2.4.1.2</i> </li> <li> moral bi vrniti taksen string: "Uptime in seconds: xyz" </li> </ol> </li> </ol> <h3>Nastavitev SNMPClient virtualke</h3> <ol> <li> Nasnemi snmpd and snmp paketa. <ol type="disc"> <li> ukaz <i>apt-get install snmpd snmp</i> </li> </ol> <li> PRIPOROCILO! Preden spreminjate vaso datoteko /etc/snmp/snmpd.conf, naredite kopijo originalne datoteke. <ol type="disc"> <li> ukaz <i>cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.orig</i> </li> </ol> </li> <li> Nastavi snmp streznik tako, da se bodo lahko nanj povezali drugi racunalniki (popravi datoteko snmpd.conf). <ol type="disc"> <li> ukaz <i>nano /etc/snmp/snmpd.conf</i> (lahko uporabis drug urejevalnik besedila) </li> <li> odkomentiraj sledece stiri vrstice:<br> <i># Listen for connections from the local system only<br> # agentAddress udp:127.0.0.1:161<br> # Listen for connections on all interfaces (both IPv4 *and* IPv6)<br> agentAddress udp:161,udp6:[::1]:161</i> </li> </ol> </li> <li> Dodaj skupino (community) racunalnikov, ki lahko dostopajo do vseh podatkov. To skupino bomo poimenovali students (spet potrebno spremeniti datoteko) snmpd.conf file. <ol type="disc"> <li> rocommunity students 0.0.0.0/0 </li> <li> napisi pravilni naslov omrezja = ukaz <i>ifconfig -a</i> </li> </ol> </li> <li> DODATNA (NEOBVEZNA) KONFIGURACIJA. Nizje v isti datoteki lahko nastavis lokacijo racunalnika, na katerem deluje snmp, ter ime administratorja. <ol type="disc"> <li> poisci pod # SYSTEM INFORMATION </li> </ol> </li> <li> Potrebno je ponovno zagnati snmp storitev. <ol type="disc"> <li> ukaz <i>/etc/init.d/snmpd restart</i> </li> </ol> </li> <li> Lahko testiras svoje nastavitve preko localhost-a. <ol type="disc"> <li> ukaz <i>snmpwalk localhost -c public -v1</i> </li> </ol> </li> <li>Ustvari uporabnika <i>test</i> z geslom <i>test</i> <ol type="disc"> <li> ukaz <i>adduser test</i> </li> </ol> </li> <li>Prijavi se kot uporabnik <i>test</i> ter naredi skripto <i>upminutes</i> v domacem direktoriju. Ta skripta naj izpisuje cas delovanja racunalnika (uptime) v minutah. <ol type="disc"> <li> ukaz <i>nano upminutes</i> (lahko uporabis drug urejevalnik besedila) </li> <li> dodaj sledeco kodo:<br> <i>#!/bin/bash<br> uptime=$(</proc/uptime)<br> uptime=${uptime%%.*}<br> minutes=$(( uptime / 60 ))<br> echo $minutes<br> exit 0</i> </li> <li> ne pozabi skripti dodelti pravic, da jo lahko zaganjamo:<br> ukaz <i>chmod +x /pot_do_skripte/upminutes</i> </li> <li> stestiraj skripto (izpisovati bi morala cas delovanja racunalnika (uptime) v minutah)<br> ukaz <i>/home/test/upminutes</i> </li> </ol> </li> <li>Kot uporabnik <i>test</i> naredi se eno skripto <i>beri.sh</i>m ki bere vrednosti od OID 1.3.6.1.4.1.8072.1.3.2.4.1.2. na SNMPServer. Shrani jo na SNMPClient v domac direktorij uporabnika test. <ol type="disc"> <li> ukaz <i>nano beri.sh</i> (lahko uporabis drug urejevalnik besedila) </li> <li> dodaj kodo:<br> <i>#!/bin/bash<br> snmpwalk -c students -v1 IPnaslovStreznika 1.3.6.1.4.1.8072.1.3.2.4.1.2<br> exit 0</i> </li> <li> ne pozabi skripti dodelti pravic, da jo lahko zaganjamo:<br> ukaz <i>chmod +x /pot_do_skripte/upminutes</i> </li> </ol> </li> </ol> </body> </html>