简单网络管理协议(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