snmp_agent_uptime

Purpose of the assignment

???

Quick instructions

Set up three virtual computers, SimpleArbiter with the disk image simpleArbiterDhcp, SNMPServer and SNMPClient. Write a program called upminutes. This program should output the uptime of the computer in minutes. Set it up on SNMPClient in the home directory of the user test with the password test.

Make sure that the SNMP server reports it's uptime in seconds over SNMP under NET-SNMP-EXTEND-MIB::nsExtendOutput2Table.

Write a script called beri.sh that reads the value from the OID 1.3.6.1.4.1.8072.1.3.2.4.1.4 on SNMPServer. Set it up on SNMPClient in the home directory of the user test.

Instructions

Set up of VM VirtualBox

  1. Download the following virtual images (*.vid) from the directory with images of virtual computers:
    1. simpleArbiterDhcp.vdi
    2. some-bash-console.vdi – twice, one for SNMPServer and second for SNMPClient
  2. VM VirtualBox WARNING! If you want to use one same virtual image (some-bash-console.vdi) for two virtual computers (SNMPServer and SNMPClient), you must change UUID of one image.
    1. Use this command vboxmanage internalcommands sethduuid name-of-disk.vdi to change UUID (hint).
  3. Final view of sets VM VirtualBox machines.

Set up of SNMPServer machine

  1. Install snmpd and snmp packages and tools for inspecting the data available over SNMP.
    1. command apt-get install snmpd snmp snmp-mibs-downloader
  2. RECOMMENDATION! Before doing any changes to your /etc/snmp/snmpd.conf file take a copy of original file.
    1. command cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.orig
  3. Set up the snmp server to allow all other computers to access it = edit snmpd.conf file.
    1. command nano /etc/snmp/snmpd.conf (you can use different editor)
    2. (un)comment these four lines as below:
      # Listen for connections from the local system only
      # agentAddress udp:127.0.0.1:161
      # Listen for connections on all interfaces (both IPv4 *and* IPv6)
      agentAddress udp:161,udp6:[::1]:161
  4. Add a group (community) of computers we deem to be worthy of accessing all data. This group will be called students = again edit snmpd.conf file.
    1. rocommunity students 0.0.0.0/0
    2. write correct network address = command ifconfig -a
  5. OPTIONAL CONFIGURATION. Lower in the same file you can set the location of the computer snmpd is running on and the name of the administrator.
    1. find under # SYSTEM INFORMATION
  6. You need to restart the snmp services.
    1. command /etc/init.d/snmpd restart
  7. You can test your configuration through localhost.
    1. command snmpwalk localhost -c public -v1

Set up of SNMPClient machine

  1. Install snmpd and snmp packages.
    1. command apt-get install snmpd snmp
  2. RECOMMENDATION! Before doing any changes to your /etc/snmp/snmpd.conf file take a copy of original file.
    1. command cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.orig
  3. Set up the snmp client to allow all other computers to access it = edit snmpd.conf file.
    1. command nano /etc/snmp/snmpd.conf (you can use different editor)
    2. (un)comment these four lines as below:
      # Listen for connections from the local system only
      # agentAddress udp:127.0.0.1:161
      # Listen for connections on all interfaces (both IPv4 *and* IPv6)
      agentAddress udp:161,udp6:[::1]:161
  4. Add a group (community) of computers we deem to be worthy of accessing all data. This group will be called students = again edit snmpd.conf file.
    1. rocommunity students 0.0.0.0/0
    2. write correct network address = command ifconfig -a
  5. OPTIONAL CONFIGURATION. Lower in the same file you can set the location of the computer snmpd is running on and the name of the administrator.
    1. find under # SYSTEM INFORMATION
  6. Under # EXTENDING THE AGENT comment all three tests and add your script (you'll create it later) called upminutes.
    1. it will look like this:
      # extend test1 /bin/echo Hello, world!
      # extend-sh test2 echo Hello, world! ; echo Hi there ; exit 35
      # extend-sh test3 /bin/sh /tmp/shtest
      extend-sh "your_name" /home/test/upminutes
  7. You need to restart the snmp services.
    1. command /etc/init.d/snmpd restart
  8. You can test your configuration through localhost.
    1. command snmpwalk localhost -c public -v1
  9. Create the user test with password test
    1. command adduser test
  10. Login as user test and create program upminutes in the home directory. This program should output the uptime of the computer in minutes.
    1. command nano upminutes (you can use different editor)
    2. add the source code:
      #!/bin/bash
      echo $(awk '{print $1}' /proc/uptime) / 60 | bc
      exit 0
    3. don't forget to make the program runnable:
      command chmod +x /home/test/upminutes
    4. test the program (it should output the uptime of the computer in minutes)
      command /home/test/upminutes
  11. As user test and create next script called beri.sh that reads the value from the OID 1.3.6.1.4.1.8072.1.3.2.4.1.2. on SNMPServer. Set it up on SNMPClient in the home directory of the user test.
    1. command nano beri.sh (you can use different editor)
    2. add the source code:
      #!/bin/bash
      snmpwalk -c students -v1 IPaddressOfServer 1.3.6.1.4.1.8072.1.3.2.4.1.2
      exit 0
    3. don't forget to make the program runnable:
      command chmod +x /home/test/upminutes

Testing of upminutes script

  1. Make sure that the SNMP server reports it's uptime in seconds over SNMP under NET-SNMP-EXTEND-MIB::nsExtendOutput2Table = write on server side:
    1. command snmpwalk -c students -v1 IPaddressOfClient 1.3.6.1.4.1.8072.1.3.2.4.1.2