SNMP over the internet
Basically, I have a small network where my OpenNMS installation is located on a CentOS 6.4 machine.
Now I have a server(CentOS also) that I want to monitor but is on the internet, with a public address.
I have installed net-snmp on my target server and configured /etc/snmp/snmpd.conf
When I try to do
snmpwalk -v 2c -c public localhost
on my target system, it returns the expected output.
But running
snmpwalk -v 2c -c public c******2.com
on my OpenNMS server querying against my target server returns a
Timeout: No Response from c******2.com
I tried turning debug on (snmpwalk -v 2c -c public c******2.com -d) and I got this output:
Sending 42 bytes to UDP: [*.*.*.*]:161->[0.0.0.0]
I wonder what could be the problem?
Update:
This is my config inside snmpd.conf
##sec.name source community
com2sec local localhost private
com2sec national x.x.x.x/23 public
##group.name sec.model sec.name
group MyRWGroup v2c local
group MyROGroup v2c national
##incl/excl subtree mask
view all included .1 80
## -or just the mib2 tree-
view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc
## context sec.model sec.level prefix read write notif
access MyROGroup "" any noauth prefix all none none
access MyRWGroup "" any noauth prefix all all all
disk PATH [MIN=100000]
disk / 10000
load 12 14 14
Here is a problem: You haven't actually allowed snmpd to respond to your connections.
com2sec national x.x.x.x/23 public
You said that this IP address is the IP of the same server running snmpd, which means that only machines within that /23 will be allowed. This is almost certainly not what you want.
To resolve the issue, use the IP address of the machine(s) which will be sending the SNMP requests. If you have multiple IP addresses you will need multiple com2sec
lines here. Or you can just use default
and then use the firewall to control access.
Just a suggestion for OpenNMS monitoring.
For my remote OpenNMS systems in locations where I don't have a private line or can't use a LAN-to-LAN VPN tunnel, I take a different approach. I use n2n from ntop to create a peer-to-peer tunnel between systems. This is handy in cases where I don't control the firewall(s) at one side or the other or have complex NATing to work against.
I wouldn't advise sending unencrypted SNMP over the internet, though.