Installing and Configuring Net-SNMP for Linux


Net-SNMP is an open-source software suite that implements Simple Network Management Protocol (SNMP) for managing network devices. It provides a wide range of tools that enable network administrators to monitor and manage their systems more effectively. In this article, we will explore how to install and configure Net-SNMP on a Linux system.

Prerequisites

Before we begin, ensure that you have access to a Linux system with root privileges. Additionally, make sure that system has an active internet connection to download necessary software packages.

Installing Net-SNMP

To install Net-SNMP on a Linux system, you can use package manager of your distribution. For instance, if you are using Ubuntu, you can use following command to install Net-SNMP −

sudo apt-get update
sudo apt-get install snmpd snmp-mibs-downloader

The above command will install SNMP daemon (snmpd) and SNMP MIB downloader (snmp-mibs-downloader) packages. daemon is responsible for listening to SNMP requests and providing necessary information. MIB downloader downloads Management Information Base (MIB) files required for SNMP agent to work correctly.

Configuring Net-SNMP

After installing Net-SNMP, you need to configure it to suit your requirements. configuration file for SNMP daemon is located at /etc/snmp/snmpd.conf.

Open configuration file using your preferred text editor. Here is an example configuration file that you can use as a starting point −

com2sec readonly default public
group MyROGroup v1 readonly
group MyROGroup v2c readonly
group MyROGroup usm readonly
view all included .1
access MyROGroup "" any noauth exact all none none
sysLocation Unknown (edit /etc/snmp/snmpd.conf)
sysContact Root <root@localhost> (configure /etc/snmp/snmp.local.conf)

The above configuration file has several directives that define SNMP settings. Let's go through each one of them −

  • com2sec − This directive defines community string used by SNMP requests. In example above, community string is set to 'public.' You can change it to a more secure value to prevent unauthorized access to your system.

  • group − This directive defines access rights for different SNMP groups. In example above, we have defined a group called MyROGroup with read-only access.

  • view − This directive specifies objects that can be viewed by SNMP agent. In example above, we have allowed access to all objects (.1).

  • access − This directive specifies access control for different SNMP groups. In example above, we have allowed read-only access to MyROGroup group.

Save changes to configuration file and restart SNMP daemon using following command −

sudo systemctl restart snmpd

Testing Net-SNMP

To test Net-SNMP installation, you can use SNMP command-line tools. SNMP tools are installed with Net-SNMP package.

The most commonly used tool is snmpwalk command, which can be used to retrieve values of SNMP objects. Here is an example command that retrieves system description −

snmpwalk -v2c -c public localhost system

The above command will retrieve system description for local system using SNMP version 2c and 'public' community string.

You can also use snmpget command to retrieve value of a specific SNMP object. Here is an example command that retrieves uptime of system −

snmpget -v2c -c public

Here is complete command for retrieving system uptime −

snmpget -v2c -c public localhost 1.3.6.1.2.1.1.3.0

The above command will retrieve value of system uptime object (1.3.6.1.2.1.1.3.0) for local system using SNMP version 2c and 'public' community string.

Troubleshooting Net-SNMP

If you encounter any issues with Net-SNMP, you can use following tools to troubleshoot problem −

  • snmpd − This is SNMP daemon and can be used to check if daemon is running correctly. You can use following command to check status of daemon −

sudo systemctl status snmpd

If daemon is not running, you can start it using following command −

sudo systemctl start snmpd
  • snmpwalk − This command can be used to check if SNMP agent is responding to requests. You can use following command to retrieve system description −

snmpwalk -v2c -c public localhost system

If you do not receive any output, SNMP agent may not be running correctly.

  • tcpdump − This command can be used to capture SNMP traffic and analyze it for any issues. You can use following command to capture SNMP traffic on port 161 −

sudo tcpdump -i eth0 -s 0 -w snmp.pcap udp port 161

The above command will capture all SNMP traffic on eth0 interface and save it to a file called snmp.pcap. You can then use a tool like Wireshark to analyze captured traffic.

Configuring SNMP Community Strings

Community strings are used to authenticate SNMP requests and responses. default community string for Net-SNMP is 'public', which is a well-known community string and should be changed to ensure security of your SNMP configuration.

To configure SNMP community strings, open SNMP daemon configuration file located at /etc/snmp/snmpd.conf and add following lines −

rocommunity <community_string> <IP_address>

Replace <community_string> with new community string you wish to use, and <IP_address> with IP address of host you want to grant read-only access to. You can add multiple lines with different community strings and IP addresses to provide access to multiple hosts.

For example, to set community string to 'mycommunity' and allow access to host with IP address 192.168.1.10, add following line to configuration file −

rocommunity mycommunity 192.168.1.10

Once you have updated configuration file, restart SNMP daemon for changes to take effect −

sudo systemctl restart snmpd

Configuring SNMP Traps

SNMP traps are used to notify SNMP manager of important events or conditions that occur on network devices. For example, a trap can be sent when a disk on a network device is almost full or when a hardware component fails.

To configure SNMP traps, open SNMP daemon configuration file and add following lines −

trap2sink <IP_address> <community_string>

Replace <IP_address> with IP address of SNMP manager that will receive traps, and <community_string> with community string for SNMP manager.

For example, to send traps to SNMP manager with IP address 192.168.1.100 using community string 'mycommunity', add following line to configuration file −

trap2sink 192.168.1.100 mycommunity

You can add multiple lines with different IP addresses and community strings to send traps to multiple SNMP managers.

Once you have updated configuration file, restart SNMP daemon for changes to take effect −

sudo systemctl restart snmpd

Using SNMP with Nagios

Nagios is a popular open-source monitoring tool that can be used to monitor network devices, servers, and applications. Nagios can use SNMP to monitor and manage devices that support SNMP.

To use SNMP with Nagios, you will need to install Nagios SNMP plugins. You can install plugins using following command −

sudo apt-get install nagios-plugins-contrib

Once plugins are installed, you can use check_snmp plugin to monitor SNMP objects on network devices. For example, to monitor system uptime of a device with IP address 192.168.1.1 using community string 'mycommunity', you can use following command −

/usr/lib/nagios/plugins/check_snmp -H 192.168.1.1 -C mycommunity -o sysUpTime.0

The above command will retrieve system uptime object (1.3.6.1.2.1.1.3.0) for device with IP address 192.168.1.1 using SNMP and community string 'mycommunity'.

You can use check_snmp plugin to monitor any SNMP object on network devices. Simply replace object identifier (OID) in command with OID of object you wish to monitor.

Conclusion

In conclusion, Net-SNMP is a powerful and flexible SNMP management tool that can be installed and configured on a Linux system in just a few steps. By following steps outlined in this article, you can get started with Net-SNMP and start monitoring and managing your network devices more effectively. Remember to always secure your SNMP configuration and use strong community strings to prevent unauthorized access to your systems.

Updated on: 03-Mar-2023

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements