当前,SNMP有3个版本:v1, v2c and v3。SNMP
v1和v2c,可方便地进行配置,这在以前的文章中讨论过。SNMPv3增加了一些额外的功能,包括身份验证和加密方案(例如,MD5,SHA,AES和
DES)。这使得我们在Internet上运行SNMP查询时,SNMPv3的更安全,更可取的。
同SNMP v1或v2c 相比,SNMPv3的配置有一点不同。下面详细解释了配置是如何进行的。
在Ubuntu和Debian配置SNMPv3
使用net-snmp-config tool工具进行配置。下面的例子中创建了一个只读权限的SNMPv3账户,用户名为“snmpv3user”密码为“snmpv3pass”。 默认身份验证方法是MD5加密,默认DES使用。这些设定也可根据需要改变。
root@server:~# apt-get install snmp snmpd
root@server:~# service snmpd stop
root@server:~# net-snmp-config --create-snmpv3-user -ro -A snmpv3pass snmpv3user
## OUTPUT ##
adding the following line to /var/lib/snmp/snmpd.conf:
createUser snmpv3user MD5 "snmpv3pass" DES
adding the following line to /usr/share/snmp/snmpd.conf:
rouser snmpv3user
root@server:~# service snmpd start
SNMPv3测试
使用snmpwalk测试SNMP的配置。成功的测试结果应掘兆当有大量的输出数据。下面的例子使用上文建立的V3账户演示了snmpwalk 的使用。Ubuntu和Debian的本地服务器IP地址192.168.1.1。判薯租
### SAMPLE OUTPUT ###
iso.3.6.1.2.1.1.1.0 = STRING: "Linux server 3.5.0-23-generic #35~precise1-Ubuntu SMP Fri Jan 25 17:13:26 UTC 2013 x86_64"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.8072.3.2.10
iso.3.6.1.2.1.1.3.0 = Timeticks: (68028) 0:11:20.28
iso.3.6.1.2.1.1.7.0 = INTEGER: 72
iso.3.6.1.2.1.1.8.0 = Timeticks: (0) 0:00:00.00
iso.3.6.1.2.1.1.9.1.2.1 = OID: iso.3.6.1.6.3.10.3.1.1
iso.3.6.1.2.1.1.9.1.2.2 = OID: iso.3.6.1.6.3.11.3.1.1
iso.3.6.1.2.1.1.9.1.2.3 = OID: iso.3.6.1.6.3.15.2.1.1
iso.3.6.1.2.1.1.9.1.2.4 = OID: iso.3.6.1.6.3.1
iso.3.6.1.2.1.1.9.1.2.5 = OID: iso.3.6.1.2.1.49
iso.3.6.1.2.1.1.9.1.2.6 = OID: iso.3.6.1.2.1.4
iso.3.6.1.2.1.1.9.1.2.7 = OID: iso.3.6.1.2.1.50
iso.3.6.1.2.1.1.9.1.2.8 = OID: iso.3.6.1.6.3.16.2.2.1
iso.3.6.1.2.1.1.9.1.3.1 = STRING: "The SNMP Management Architecture MIB."
iso.3.6.1.2.1.1.9.1.3.2 = STRING: "The MIB for Message Processing and Dispatching."
iso.3.6.1.2.1.1.9.1.3.3 = STRING: "The management information definitions for the SNMP User-based Security Model."
iso.3.6.1.2.1.1.9.1.3.4 = STRING: "The MIB module for SNMPv2 entities"
iso.3.6.1.2.1.1.9.1.3.5 = STRING: "The MIB module for managing TCP implementations"
iso.3.6.1.2.1.1.9.1.3.6 = STRING: "The MIB module for managing IP and ICMP implementations"
iso.3.6.1.2.1.1.9.1.3.7 = STRING: "The MIB module for managing UDP implementations"
iso.3.6.1.2.1.1.9.1.3.8 = STRING: "View-based Access Control Model for SNMP."
iso.3.6.1.2.1.1.9.1.4.1 = Timeticks: (0) 0:00:00.00
iso.3.6.1.2.1.1.9.1.4.2 = Timeticks: (0) 0:00:00.00
iso.3.6.1.2.1.1.9.1.4.3 = Timeticks: (0) 0:00:00.00
iso.3.6.1.2.1.1.9.1.4.4 = Timeticks: (0) 0:00:00.00
iso.3.6.1.2.1.1.9.1.4.5 = Timeticks: (0) 0:00:00.00
### And the walk goes on and on ###
删除SNMPv3账户
当net-snmp-config tool 运行过程中,该账户的有关信息会存储在var/lib/snmp/snmpd.conf 和/usr/share/snmp/snmpd.conf.两个文件之中。删除账户即删除这个文件中的信息即可。
root@server:~# service snmpd stop
root@server:~# vim /var/lib/snmp/snmpd.conf
## there should be a similar encrypted line that contains information on the user ##
## this line is removed ##
usmUser 1 3 0x80001f8880056e06573a1e895100000000 0x736e6d7076337573657200 0x736e6d7076337573657200 NULL .1.3.6.1.6.3.10.1.1.2 0x945ed3c9708ea5493f53f953b45a4513 .1.3.6.1.6.3.10.1.2.2 0x945ed3c9708ea5493f53f953b45a4513 ""
root@server:~# vim /usr/share/snmp/snmpd.conf
## The following line is removed ##
rouser snmpv3user
之后不要忘记重启snmpd
root@server:~# service snmpd start
在CentOS或者RHEL中配置SNMPv3
相比Ubuntu,在 CentOS 和 RHEL中配置SNMP v3用户的过程有点不同,但基本是相同的。
首先,使用yum安装必要的软件
[root@server ~]# yum install net-snmp-utils net-snmp-devel
安装完成之后, 先停止snmpd,再创建具有只读属性的SNMP 账户。 .
[root@server ~]# service snmpd stop
[root@server ~]# net-snmp-create-v3-user -ro -A snmpv3pass -a MD5 -x DES snmpv3user
## OUTPUT ##
adding the following line to /var/lib/net-snmp/snmpd.conf:
createUser snmpv3user MD5 "snmpv3pass" DES
adding the following line to /etc/snmp/snmpd.conf:
rouser snmpv3user
[root@server ~]# service snmpd start
SNMPv3测试
snmpwalk 是测试SNMP配置和输出出色的工具。成功的测试结果应当有大量的输出数据。
[root@server ~]# snmpwalk -u snmpv3user -A snmpv3pass -a MD5 -l authnoPriv 192.168.1.2 -v3
### OUTPUT ###
SNMPv2-MIB::sysDescr.0 = STRING: Linux server.example.tst 2.6.32-71.el6.i686 #1 SMP Fri Nov 12 04:17:17 GMT 2010 i686
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (28963) 0:04:49.63
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (1) 0:00:00.01
SNMPv2-MIB::sysORID.1 = OID: SNMP-MPD-MIB::snmpMPDMIBObjects.3.1.1
SNMPv2-MIB::sysORID.2 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance
SNMPv2-MIB::sysORID.3 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
SNMPv2-MIB::sysORID.4 = OID: SNMPv2-MIB::snmpMIB
SNMPv2-MIB::sysORID.5 = OID: TCP-MIB::tcpMIB
SNMPv2-MIB::sysORID.6 = OID: IP-MIB::ip
SNMPv2-MIB::sysORID.7 = OID: UDP-MIB::udpMIB
SNMPv2-MIB::sysORID.8 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup
SNMPv2-MIB::sysORDescr.1 = STRING: The MIB for Message Processing and Dispatching.
SNMPv2-MIB::sysORDescr.2 = STRING: The MIB for Message Processing and Dispatching.
SNMPv2-MIB::sysORDescr.3 = STRING: The SNMP Management Architecture MIB.
SNMPv2-MIB::sysORDescr.4 = STRING: The MIB module for SNMPv2 entities
SNMPv2-MIB::sysORDescr.5 = STRING: The MIB module for managing TCP implementation
## and the output continues ##
删除SNMPv3账户
SNMPv3 账户信息被包含在两个文件之中。删除账户即删除这个文件中的信息即可。
root@server:~# service snmpd stop
root@server:~# vim /var/lib/net-snmp/snmpd.conf
## there should be a similar encrypted line that contains information on the user ##
## this line is removed ##
usmUser 1 3 0x80001f8880056e06573a1e895100000000
0x736e6d7076337573657200 0x736e6d7076337573657200 NULL
.1.3.6.1.6.3.10.1.1.2 0x945ed3c9708ea5493f53f953b45a4513
.1.3.6.1.6.3.10.1.2.2 0x945ed3c9708ea5493f53f953b45a4513 ""
root@server:~# vim /etc/snmp/snmpd.conf
## The following line is removed ##
rouser snmpv3user
root@server:~# service snmpd start
防火墙调节(可选)
下面的例子中的防火墙规则可以被用于限制被允许进行SNMP查询的源IP地址。两个IP地址(例如,192.168.1.100/101)被置于白名单中。
root@server:~# iptables -A INPUT -s 192.168.1.100/32 -p udp –dport 161 -j ACCEPT
root@server:~# iptables -A INPUT -s 192.168.1.101/32 -p udp –dport 161 -j ACCEPT
root@server:~# iptables -A INPUT -p udp –dport 161 -j DROP
思科交换机和路由器配置SNMPv3
思科交换机和路由器同样支持SNMPv3。下面的例子将创建一个访问控制列表(ACL)限制允许做SNMP查询的源IP地址。但是,这步被跳过了。
设置访问控制列表(ACL)(可选)
## global config mode ##
ip access-list standard SNMP_ACL
permit 192.168.1.100
permit 192.168.1.100
SNMPv3 配置
下面的配置创建一个名为v3Group与认证AuthNoPriv安全级别v3的组。前面定义的可选访问列表也支持设定。
## global config mode ##
## With ACL ##
snmp-server group v3Group v3 auth access SNMP_ACL
## Without ACL ##
snmp-server group v3Group v3 auth
用户v3user被创建并添加在v3Group下。 MD5的密码和AES加密密钥也被定义。
snmp-server user v3user v3Group v3 auth md5 snmpv3pass priv aes 128 snmpv3pass
SNMPv3测试
SNMP用户和相关组可以在Cisco设备中查看。
### privileged EXEC mode ##
show snmp user
User name: v3user
Engine ID: ************************
storage-type: nonvolatileactive
Authentication Protocol: MD5
Privacy Protocol: AES128
Group-name: v3Group
任何Linux设备中的snmpwalk的都可以用来验证配置和检查输出。
snmpwalk -u snmpv3user -A snmpv3pass -a MD5 -l authnoPriv 192.168.1.3 -v3
iso.3.6.1.2.1.1.1.0 = STRING: "Cisco IOS Software”
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2012 by Cisco Systems, Inc.
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.9.1.1166
iso.3.6.1.2.1.1.7.0 = INTEGER: 78
iso.3.6.1.2.1.1.8.0 = Timeticks: (0) 0:00:00.00
iso.3.6.1.2.1.2.1.0 = INTEGER: 54
iso.3.6.1.2.1.2.2.1.1.1 = INTEGER: 1
iso.3.6.1.2.1.2.2.1.1.2 = INTEGER: 2
iso.3.6.1.2.1.2.2.1.1.3 = INTEGER: 3
## output truncated ##
简单网络管理协议(SNMP)是一种“互联网标准协议,可用于管理IP网络上的设备”。通常支持SNMP的设备包括路由器、交换机、服务器、工作站、打印机、调制解调器及更多设备。它最常用于网络管理系统中,监控连接至网络的设备,注意有无理应需要管理员注意的情况。SNMP是互联网工程任务特别
组(IETF)定义的互联网协议集(Internet Protocol
Suite)的一部分。它包括一套网络管理标准,包括应用层协议、数据库模式和一组数据对象。
SNMP以变量这种方式暴露了受管理系统上的管理数据,变量描述了系统配置。然后,这些变更可以由管理应用程序来查询(有时还由管理应用程序设定)。
为何你应该使用SNMPv3?
虽然除了添加加密安全外,SNMPv3对SNMP协议没有作任何变动,但是它看起来大不一样,那是由于新的文本约定陪芹粗、概述芦镇和术语。
SNMPv3主要为SNMP增添了安全和远程配置方面的改进。
自一开始,安全就一向是SNMP的最大软胁。SNMP版本1和版本2中的验证只不过是在管理器和代理之间以明文格式发送的密码(共用字符串)而已。每个SNMPv3消息含有安全参数,它们被编码成了八进制字符串。这些安全参数的含义取决于所使用的安全模型。
SNMPv3提供了几项重要的安全功能:
机密性――加密数据包,防止未授权人员窥视。
完整性――消息完整性,确保数据包在传输过程中没有被篡改,包括一种可选的数据包重放保护机制。
验证――证实消息是从正当来源发送的。
将SNMP服务器和客户机软件安装在ubuntu中
打开终端,运行下面这个命令:
sudo apt-get install snmpd snmp
安装完毕后,你需要进行下列变动。
配置Ubuntu中的SNMPv3
从外面访问守护程序。
默认安装只提供了对localhost守护首袜程序的访问。为了从外面获得访问权,在你常用的编辑工具中打开文件/etc/default/snmpd。
sudo vi /etc/default/snmpd
将下面这行由
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux,mteTrigger,mteTriggerConf -p /var/run/snmpd.pid'
换成
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid -c /etc/snmp/snmpd.conf'
然后重启snmpd:
sudo /etc/init.d/snmpd restart
定义SNMPv3用户、验证和加密参数
SNMPv3可以用好多种方式来使用,这取决于“securityLevel”(安全级别)配置参数:
noAuthNoPriv――没有授权,也没有加密,基本上毫无安全可言!
authNoPriv――需要授权,但是通过网络发送的所收集数据没有经过加密。
authPriv――这是安全性最高的一种。需要授权,通过网络发送的一切数据都经过加密。
snmpd配置方面的设置都保存在一个名为/etc/snmp/snmpd.conf的文件中。用你常用的编辑工具打开该文件:
sudo vi /etc/snmp/snmpd.conf
将下面几行添加到该文件末尾:
#
createUser user1
createUser user2 MD5 user2password
createUser user3 MD5 user3password DES user3encryption
#
rouser user1 noauth 1.3.6.1.2.1.1
rouser user2 auth 1.3.6.1.2.1
rwuser user3 priv 1.3.6.1.2.1
注意:如果你想使用自己的用户名/密码组合,就需要注明:密码和加密短语的长度应该至少是8个字符长。
另外你需要进行下列变动,那样snmp才能在所有接口上侦听连接:
由
#agentAddress udp:161,udp6:[::1]:161
变成
agentAddress udp:161,udp6:[::1]:161
保存修改后的snmpd.conf文件,以下面这个命令重启守护程序:
sudo /etc/init.d/snmpd restart
原文地址:How to configure SNMPv3 on ubuntu 15.04 server
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)