一台设备使用snmp proxy 获得其它snmp设备管理信息
我们在网络管理中常会用到snmp管理设备,但某些环境下只能访问该网络中的某一台设备,我们可以用这台设备做snmp的代理来管理其他设备。
例子:
杭州**系统网络安全改造后,通过防火墙映射只允许外部网络访问web服务器的snmp端口,内部数据库snmp端口不能从外部网络访问,安全起见防火墙又不便于再打开新的映射端口,这给在外部网络使用snmp进行监控的监控系统造成阻碍。
这里使用snmp的proxy通过web服务的snmp服务代理访问db服务器的snmp服务。
基本配置:
首先,确定web服务器的snmp服务正常
以下是个简单的snmp配置说明仅供参考
/etc/snmp/snmpd.conf 基本配置内容如下四个部分
# First, map the community name "public" into a "security name"
# sec.name source community
com2sec notConfigUser 192.168.11.10 wwwcc
这里设置允许被访问的设备的IP(如192.168.11.10),设备自身的组织名称(如wwwcc),notConfigUser是个用户见下文。
# Second, map the security name into a group name:
# groupName securityModel securityName
group notConfigGroup v1 notConfigUser
group notConfigGroup v2c notConfigUser
这部分是用户分组信息,默认不需要修改。
# Third, create a view for us to let the group have rights to:
# Make at least snmpwalk -v 1 localhost -c public system fast again.
# name incl/excl subtree mask(optional)
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1
view all included .1
这部分确定snmp可以获得管理信息,由匹配的OID确定获得信息量,使用.1可获得最大信息。
# Finally, grant the group read-only access to the systemview view.
# group context sec.model sec.level prefix read write notif
access notConfigGroup "" any noauth exact all none none
access notConfigGroup "" any noauth exact systemview none none
这部分配置管理权限,安全起见默认只获得只读管理信息的权限。
----------------------------------------------------------------------------------------------------------------------
接下来,给新web服务器添加以下内容(即新添加一个组织机构代理):
[root@web snmp]#vi /etc/snmp/snmpd.conf
com2sec -Cn ctx_remotehost1 notConfigUser default cmty_remotehost1
view systemview included .1.3
access notConfigGroup ctx_remotehost any noauth prefix systemview none none
proxy -Cn ctx_remotehost1 -v 2c -c wwwcc 192.168.10.11 .1.3
cmty_remotehost1为设置被代理的设备的代理组织名称(snmp代理访问要使用到的,根据自己需要设置具体名称)
wwwcc 为被代理设备自身的组织名称(被代理的设备(db服务器)自身snmp设置的组织名称)
192.168.10.11 被代理的设备IP(即db服务器)
1.3 表示匹配的OID,可获得管理的管理信息范围
重启snmp服务
[root@web snmp]# service snmpd restart
检查端口是否打开
[root@web ~]# netstat -anp |grep snmp
tcp 0 0 0.0.0.0:199 0.0.0.0:* LISTEN 30803/snmpd
udp 0 0 0.0.0.0:161 0.0.0.0:* 30803/snmpd
ok启动成功
----------------------------------------------------------------------------------------------------------------------
然后,给db服务器的snmp文件添加访问权限,允许web服务器可以访问db服务器的snmp服务
[root@db snmp]#vi /etc/snmp/snmpd.conf
com2sec notConfigUser 192.168.11.10 wwwcc
192.168.11.10 为web服务器地址(代理服务器地址)
wwwcc 为web服务器的组织名称(被代理服务器的组织名称)
[root@db snmp]# service snmpd restart
检查端口是否打开
[root@db ~]# netstat -anp |grep snmp
tcp 0 0 0.0.0.0:199 0.0.0.0:* LISTEN 30803/snmpd
udp 0 0 0.0.0.0:161 0.0.0.0:* 30803/snmpd
ok启动成功
----------------------------------------------------------------------------------------------------------------------
最后,测试
在一台监控服务器上,执行以下命令
[root@cacti ~]# snmpget -v2c -c wwwcc 20.20.20.20 sysContact.0
SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
20.20.20.20 是web服务器(代理服务器)的IP地址
wwwcc 是web服务器(代理服务器)的组织名称
第一次测试web服务器(代理服务器)正确返回信息
在一台监控服务器上,执行以下命令
[root@cacti ~]# snmpget -v2c -c cmty_remotehost1 20.20.20.20 sysContact.0
SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
20.20.20.20 是web服务器(代理服务器)的IP地址,以为使用的是snmp的proxy那么就要使用代理服务器的地址
cmty_remotehost1即当前被代理服务器(db服务器)的组织名称
第二次测试db服务器(被代理服务器)返回正常信息,表示代理设置成功。
----------------------------------------------------------------------------------------------------------------------
小结:
如果还有其它设备需要snmp访问就按照前面步骤新增一个组织机构代理,使用代理服务器的IP,使用被代理服务器的组织机构名称(代理名称)。
参考资料:http://www.net-snmp.org/wiki/index.php/Snmpd_proxy#Simply_proxy_access
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/20575781/viewspace-708553/ ,如需转载,请注明出处,否则将追究法律责任。