一、编译安装net-snmp
tar -xzvf net-snmp-5.4.1.tar.gz//解压 cd /net-snmp-5.4.4 ./configure --prefix=/usr/local/net-snmp --with-default-snmp-version="2" --with-sys-contact="[email protected]" --with-sys-location="china" --with-logfile="/var/log/snmpd.log" --with-persistent-directory="/var/net-snmp" #prefix:net-snmp将要安装的路径#enable-mfd-rewrites:允许用新的MFD重写可用的mid模块#with-default-snmp-version:默认的SNMP版本#with-sys-contact:可以配置该设备的联系人#with-sys-location:该设备的位置#with-logfile:日志文件路径#with-persistent-directory:不变数据存储目录 make && make install
二、snmpd.conf配置文件说明
参考官方说明http://www.net-snmp.org/docs/man/snmpd.conf.html
snmpd.conf用来配置代理和管理端通信时的参数
该文件中用到了4条指令:com2sec, group, view, access
1. com2sec
命令格式一:com2sec [-Cn context] sec.name source community
功能: map an SNMPv1 or SNMPv2c community string to a security name,即将实体(community)字符串映射为安全的
名字,v1 和v2版本都是明文密码,也就无所谓安全性了。v3中增加了安全性。
参数说明:-Cn context:可选的,在v3版本中使用
sec.name: 内部映射的名字,字符串,后面用到
community:实体字符串,外部使用的名字
source:可以访问的ip地址范围,默认值"default”,即任何ip都可以访问。
也可以限制ip范围,有两种方式:IP/MASK和IP/BITS
IP/MASK:10.10.10.0/255.255.255.0
IP/BITS :10.10.10.0/24:只有ip地址在10.10.10.0
mask为24个1,即255.255.255.0
命令格式二:com2sec6 [-Cn context] sec.name source community
针对ipv6,其他和com2sec相同
命令格式三:com2secunix [-Cn context] sec.name sockpath community
只限本地socket可以访问
2. group
命令格式:group groupName securityModel sec.name
功能:将sec.name映射到一个group中,组中具有相同的存取权限。组中至少有两个
sec.name,如果只有一个sec.name,也会被解释为两个。即有两个相同的
参数说明:groupName:组名
securityModel:v1、v2c、usm、tsm、ksm其一
3. view
命令格式:view viewName type oid[mask]
功能:定义一个view,表示整个OID树的子树,同一个子树可以定义多个view
参数说明:viewName:view名字
type:有两个值:include 和 exclude
oid:可以访问的oid
[mask]:对oid的mask
例如:view all include 1.3.6.1.2.1.4 0xf0
0xf0:1111 0000,即访问的oid的前4位必须是1.3.6.1,否则不能访问,即
可以访问1.3.6.1下所有的子oid
4. access
命令格式:access groupName context model level prefx read write notify
功能:设置访问某一个view的存取权限
参数说明:groupName:控制存取权限的组名
context:v1和v2c版本,context必须设置为""
model:v1、v2c、usm、tsm、ksm
最后3中是v3版本的授权模式,usm(User-Based Security
Model)是默认授权模式,tsm用于SSH or DTLS,ksm用于支持
Kerberos
level:可以去3种值:noauth、auth、priv
noauth:允许无权限访问(v1,v2c使用)
auth:必须有权限才能访问
priv:强制加密访问
prefx:exact or prefix
read、write、notify:指明某一个view的权限是否可以GET*, SET*、
TRAP/INFORM,如果该view不能read,则置none