<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=$(&lt;/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=$(&lt;/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>