net-snmp配置文件详解

net-snmp的配置文件是有一定的层次结构的,配置起来也很方便。网上找了很多资料,大概把这个配置文件的各个信息搞懂了一点。其实在net-snmp的EXAMPLE.conf文件中对齐有详细的描述,不过是英文的。

开启子代理模式

开发net-snmp子代理后,如果想要使用它,必须开启子代理功能。如果不开启,子代理运行的时候将会报错 Warning: Failed to connect to the agentx master agent ([NIL])

设置snmpd监听的地址端口

snmpd默认是监听本地所有的IP地址的 UDP 161端口 等待snmp请求。如果不希望使用默认的监听设置,可以使用自定义的选项

#  Listen for connections from the local system only
# 只监听本地的连接
agentAddress udp:127.0.0.1: # Listen for connections on all interfaces (both IPv4 *and* IPv6)
# 监听所有接口的连接
#agentAddress udp:,udp6:[::]:

定义安全体名和共同体名称

共同体这个是SNMPv2中的,如果只是使用SNMPv3协议,可以不需要。

rocommunity    共同体名
rwcommunity 共同体名

使用 rocommunity 来定义一个只读权限的共同体,使用 rwcommunity 来定义一个读写权限的共同体。

定义完共同体之后就要定义一个安全体,并把共同体映射到一个安全体中去。安全体用于控制外部访问的来源的。

使用com2sec关键字来定义安全体。

#            sec.name        souce            community
com2sec read default public
com2sec write default public
com2sec test default public
# . 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/:只有ip地址在10.10.10.
# mask为24个1,即255.255.255.
# 命令格式二:com2sec6 [-Cn context] sec.name source community
# 针对ipv6,其他和com2sec相同
# 命令格式三:com2secunix [-Cn context] sec.name sockpath community
# 只限本地socket可以访问
#------------------------------------------------------------------------
#因为SNMPv3已经使用usm作为安全模型,使用,去掉共同体定义。
#com2sec 是net-snmp中定义安全体名字的关键字,表示这一行定义一个安全体名字。

定义安全组

定义完安全体之后,就要定义安全组了。安全体是用于控制访问的的来源的,安全组就是控制安全体中允许的来源的访问授权模式的。

#com2sec 是net-snmp中定义安全体名字的关键字,表示这一行定义一个安全体名字。
#第二步,定义安全组,将安全体名称加进一个安全组中
#
#groupName 安全组名称
#securityModel 安全模型,可选值:v1,v2c,usm
#securityName 安全体名称 # groupName securityModel securityName
group readgroup usm read
group writegroup usm write
group testgroup usm test #group是定义安全组的关键字
# . group
# 命令格式:group groupName securityModel sec.name
# 功能:将sec.name映射到一个group中,组中具有相同的存取权限。组中至少有两个
# sec.name,如果只有一个sec.name,也会被解释为两个。即有两个相同的
# 参数说明:groupName:组名
# securityModel:v1、v2c、usm、tsm、ksm其一

定义视图,供安全组使用

定义完安全组后,需要定义一个视图。视图就是这个安全体的可见范围。

对于每一个安全体,需要向其授权一些视图,视图确定了可以访问那些节点。

#第三步,定义视图,供安全组使用
#view.name 视图名
#incl/excl 对下面的MIB子树是包括还是排除(included/excluded)
#subtree 视图中所涉及的mib子树
#mask(optional) 掩码
# view.name incl/excl subtree [mask]
view all included .
view test included system
view test included system.sysLocation
#view if2 included .1.3.6.1.2.1.2.2.1.0. FFA0 # 此处定义的就是VACM中的视图子树和掩码,配置将出现在VACM相关表中。
# 此处对网络接口2定义了一个视图,将来作为一个独立的context,mask参见VACM。
# view 是定义视图的关键字 # . 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. 0xf0
# 0xf0: ,即访问的oid的前4位必须是1.3.6.,否则不能访问,即
# 可以访问1.3.6.1下所有的子oid

向安全组授权相应的视图

#第四步,向安全组授权相应的视图
# group 安全组名
# context 上下文v1,v2中始终为空
# sec.model 安全模型,可选值:v1,v2,usm
# sec.level 安全级别 可选值:auth,noauth,priv, v1,v2c中只能为noauth
# prefix 前缀。指定context如何与PDU中的context匹配,V3使用
# read 授权的读视图
# write 授权的写视图
# notif 授权的trap视图 # group context sec.model sec.level prefix read write notif
access readgroup "" any noauth exact all none none
access writegroup "" any noauth exact all none none
access testgroup "" any noauth exact all none none
#acess readgroup "interface2" usm priv exact if2 if2 if2
# 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

添加用户(仅限SNMPv3)

SNMPv3使用了用户加密鉴权的认证方式,所以需要创建相关的用户。这里也可以用net-snmp-config –create-snmpv3-user来实现。

创建用户使用createUser关键字来进行。后面的参数依次是用户名、验证方式、验证码、加密方式、加密码

创建的用户需要指明用户的权限,使用关键字rouser和rwuser来操作。

rouser用于指定用户的权限为只读,如果后面加上priv来指明需要加密。可以使用auth来指明需要认证。

rwuser用于指定用户的权限为读写,其他的与上面一致。

# 第五步,添加用户
# user 验证方式 验证码 加密方式 加密码
createUser fx MD5 "md5123456" DES "des123456"
createUser fxr MD5 "md5123456"
#用户的权限设置
rwuser    fx  priv  #读写用户,用户名fx,指明需要加密
rouser    fxr      #只读用户

#rouser [-s SECMODEL] USER [noauth|auth|priv [OID | -V VIEW [CONTEXT]]]

#rwuser [-s SECMODEL] USER [noauth|auth|priv [OID | -V VIEW [CONTEXT]]]

SNMP Trap发送目的地设置

以上都是对SNMP代理程序的外部请求的相关设置。SNMP代理还有一个重要的功能就是主动向网管端发送“通知”。

对此需要指定网关端的目的地址。

使用snmpsink来指定发送SNMPv1版本的Trap的目的地址和共同体名称

使用snmp2sink来指定发送SNMPv2版本的Trap的目的地址和共同体名称

使用informasink来指定发送INFORMs的目的地址和共同体名称

使用trappsess来指定发送SNMPv3版本的Trap的相关信息。其中引擎ID和用户名,验证方式,验证码等都必须和接收trap的网关软件端设置的一致。

#   发送 SNMPv1  traps
trapsink localhost public
# 发送 SNMPv2c traps
trap2sink localhost public
# 发送 SNMPv2c INFORMs
informsink localhost public
# 发送SNMPv3 traps
#trapsess -v 2 -u 用户名 -e 引擎ID -a 验证方式 -A 验证码 -l 鉴权方式 目的IP
trapsess -v 3 -u myuser -e 0x010203040506 -a MD5 -A 111111111 -l authNoPriv 192.168.1.108

net-snmp配置文件详解的更多相关文章

  1. zabbix配置文件详解

    Zabbix之配置文件详解   zabbix配置文件种类: zabbix_server配置文件zabbix_server.conf zabbix_proxy配置文件zabbix_proxy.conf ...

  2. zabbix_server.conf、zabbix_agentd.conf配置文件详解

    zabbix_server.conf配置文件详解 AlertScriptsPath 默认值:/usr/local/share/zabbix/alertscripts 说明:告警脚本目录 AllowRo ...

  3. quartz配置文件详解

    quartz配置文件详解(转载)     quartz学习总结: 一.关于job:    用Quartz的行话讲,作业是一个执行任务的简单Java类.任务可以是任何Java代码.只需你实现org.qu ...

  4. WebConfig配置文件详解

    今天看到博客园一位朋友整理的一个WebConfig配置文件详解,觉得不错,转载一下: <?xml version="1.0"?> <!--注意: 除了手动编辑此文 ...

  5. tomcat配置文件详解

    Tomcat系列之服务器的安装与配置以及各组件详解   tomcat 配置文件详解

  6. ubuntu nginx 安装以及配置文件详解

    1.到nginx官网下载源码包.最好下载稳定版本,nginx官网http://www.nginx.org/ 2.安装nginx依赖包运行命令: sudo apt-get install libssl- ...

  7. Spring配置文件详解 – applicationContext.xml文件路径

    Spring配置文件详解 – applicationContext.xml文件路径 Java编程                 spring的配置文件applicationContext.xml的默 ...

  8. spring配置文件详解--真的蛮详细

    spring配置文件详解--真的蛮详细   转自: http://book.51cto.com/art/201004/193743.htm 此处详细的为我们讲解了spring2.5的实现原理,感觉非常 ...

  9. Rsyslog配置文件详解

    Rsyslog配置文件详解https://my.oschina.net/0757/blog/198329 # Save boot messages also to boot.log 启动的相关信息lo ...

随机推荐

  1. Java同步synchronized与死锁

    多个线程要操作同一资源时就有可能出现资源的同步问题. 同步就是指多个操作在同一个时间段内只能有一个线程进行,其他线程要等待此线程完成之后才可以继续执行. 解决资源共享的同步操作,可以使用同步代码块和同 ...

  2. Java TCP编程

    Java编写TCP编程--回射信息实例 注:简单的tcp联系,还存在问题,readUTF()为阻塞型,如果之前的用户一直不输入,则一直阻塞,之后的用户再连接会出现问题. import java.io. ...

  3. Mac安装Brew

    安装命令如下:curl -LsSf http://github.com/mxcl/homebrew/tarball/master | sudo tar xvz -C/usr/local --strip ...

  4. servlet的九大内置对象

    隐式对象 说明 request 转译后对应HttpServletRequest/ServletRequest对象 response 转译后对应HttpServletRespons/ServletRes ...

  5. 深入理解Spring Redis的使用 (一)、Spring Redis基本使用

    关于spring redis框架的使用,网上的例子很多很多.但是在自己最近一段时间的使用中,发现这些教程都是入门教程,包括很多的使用方法,与spring redis丰富的api大相径庭,真是浪费了这么 ...

  6. mysql中获取一天、一周、一月时间数据的各种sql语句写法

    今天抽时间整理了一篇mysql中与天.周.月有关的时间数据的sql语句的各种写法,部分是收集资料,全部手工整理,自己学习的同时,分享给大家,并首先默认创建一个表.插入2条数据,便于部分数据的测试,其中 ...

  7. Method Swizzling (方法调配)

    Method Swizzling是改变一个selector的实际实现的技术.通过这一技术,我们可以在运行时通过修改类的分发表中selector对应的函数,来修改方法的实现. 例如,我们想跟踪在程序中每 ...

  8. 如何在linux环境下安装yaf

    我本机的环境配置 linuxMint17.1 php5.5 nginx1.4.6 下面开始安装 下载最新的yaf包 http://pecl.php.net/package/yaf 我下载的最新版本为2 ...

  9. scanf 格式化字符串详解

    scanf格式控制的完整格式: %     *     m     l或h     格式字符 ①格式字符与printf函数中的使用方式相同,以%d.%o.%x.%c.%s.%f.%e,无%u格式.%g ...

  10. highcharts图表中级入门之xAxis label:X(横)坐标刻度值过长截断多行(换行)显示问题说明

    在使用highcharts图表的过程中,总会碰到这样一个很是棘手的问题,横坐标刻度值太长,在不换行显示的情况下显得格外拥挤.虽然针对这一问题是可以对其刻度值进行旋转以此来避开显示拥挤问题[如何让hig ...