《日志管理与分析权威指南》一3.2.2 SNMP

简介:

本节书摘来华章计算机《日志管理与分析权威指南》一书中的第3章 ,第3.2.2节,(美) Anton A. Chuvakin Kevin J. Schmidt Christopher Phillips 著 姚 军 简于涵 刘 晖 等译更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.2.2 SNMP

SNMP设计用于满足网络管理员不断增长的需求。从20世纪90年代初起,SNMP已经集成到几乎所有你能想到的网络系统中,包括许多网络安全系统。SNMP是查询和配置设备的一种协议。SNMP陷阱和通知是设备在特定事件发生时生成的特殊SNMP消息。虽然SNMP协议整体来说不是一个日志记录系统,但是SNMP陷阱和通知可以看作日志消息的类型。虽然许多网络设备能够通过syslog发送事件信息,但是有些设备不能,特别是旧设备,因此SNMP陷阱和通知是从设备获得其他途径不能收集的事件信息的一种方法。在某些情况下,通过SNMP发送的信息类型与通过syslog发送的不同。
SNMP有多个版本,通常称作SNMPv1、SNMPv2和SNMPv3。详细介绍SNMP超出了本书的范围,所以我们只关注陷阱/通知、获取和设置。下面的小节介绍这些主题,但是首先我们必须讨论管理器和代理的概念。
1. 管理器和代理
SNMP管理的设备通常由网络管理站(NMS)控制。NMS定期轮询设备,查询状态信息,在必要时发送配置更改。NMS还监听陷阱或者通知。利用这种方式,NMS的功能类似于集中日志收集器。支持SNMP的主要理由是日志事件可以导出到传统的NMS,如HP的OpenView。但是它们也可以导出到日志收集系统。
配置SNMP陷阱的具体方法对于每种设备各不相同。在如下链接的文档更详细地描述了如何在IOS12上配置SNMP的所有特征:http://www.cisco.com/en/US/docs/ios/12_2/configfun/configuration/guide/fcf014.html
这个文档很好地结合了SNMP的一般介绍和配置SNMP的实用指南,虽然针对的是IOS,但是十分通用,可以用作其他系统的指南。
和syslog一样,必须有某个设备监听SNMP陷阱。接收者可以是NMS,你也可以在喜欢的Unix版本上运行某些SNMP守护进程。Net-SNMP是最流行的开源SNMP工具箱。它由使用的命令行工具和一个SNMP陷阱守护进程(snmpd)组成,可以运行于大部分Unix和Windows上。Net-SNMP的官方网站是http://www.net-snmp.org/
2.SNMP陷阱和通知
SNMP陷阱是SNMPv1协议的一部分。SNMP通知是SNMPv2和SNMPv3协议的一部分。陷阱和通知之间的关键区别是通知包含了接收者向发送者发回确认的功能。设备必须经过配置才能产生消息,包括什么事件生成消息,向哪里发送消息。
和syslog一样,SNMP通过UDP实现,因此和syslog有同样的可靠性问题。2002年,CERT发现SNMP的许多商业实现有漏洞。今天,这个问题大体上已经被人遗忘,供应商试图进一步解决这些安全问题。但是,对这些问题的存在必须引起注意。SNMPv2通知允许从接收者发回确认,至少提供了比单向UDP消息更可靠的消息传递。
SNMPv1陷阱使用明文传送,且没有身份认证,这也和syslog一样。因此,它们也容易遭到相同类型的欺骗攻击。SNMPv2通知也以明文发送。SNMPv3有可选择的消息认证,可以抵御欺骗攻击,代价是占用了发送者和接收者上的一些CPU周期。
3.SNMP get
SNMP协议允许“get”(获取)操作,你可以用它从一个设备或者系统上读取信息。你能够得到什么?这很大程度上取决于设备的实现。例如,路由器将跟踪每个接口的发送和接收字节数等信息。操作系统通常允许你获得CPU使用、内存使用等信息。从设备或者系统中可以获得有助于日志分析的信息。但是在实践中,这既不实用、也不现实。在网络管理界有个概念叫做陷阱导向轮询(trap-directed polling)。这意味着,当你接收到某种SNMP陷阱,使用SNMP get轮询设备以读取附加信息,进一步关联或者验证刚刚收到的陷阱。但是一般来说,发送陷阱的安全设备所作的只是:发送陷阱,但是并不跟踪任何可以“获取”的信息。
4.SNMP set
为了完整性,我们将简短地讨论SNMP set(设置)。顾名思义,SNMP set允许你更改远程系统上的某个数值。例如,网桥实现某种规范,允许你使用SNMP set开关交换机端口。为此,你必须知道连接到特定端口的主机的MAC地址。
5.SNMP作为日志数据替代方案的问题
如前所述,syslog消息的一个大问题是没有标准的格式。这意味着,供应商ABC的日志消息很可能与供应商XYZ的不同。然而,对于SNMP,情况也只是略好一些。SNMP使用了所谓的MIB(Management Information Base,管理信息库)。概略地说,这是特定系统所支持的陷阱和通知的定义。下面是来自Snort MIB的一条通知:
image

查看这一通知的结构细节和含义并不重要。我们只想对SNMP有一个总体的概念。需要指出的一点是定义中的OBJECTS部分。这是将在通知中发送的单独事件细节。例如,sida-SensorVersion在同一个MIB中的定义如下:
image

这是我们了解了特定细节的样子,在这个例子中,它是一个字符串,表示报告该通知的Snort版本。
遗憾的是,尽管MIB为良好格式、容易理解的消息提供了一个强大的框架,但是供应商很少提供这样的MIB。供应商用各种办法歪曲它。例如,MIB可能与设备或者系统实际发送的陷阱或者通知不符。或者,对底层SNMP实现进行了更改,但是MIB没有更新,很快就变得不同步。然后,当我们这些最终用户使用MIB来理解陷阱时,即使没有完全被误导,也至少会被弄糊涂。
最终,供应商没有花时间创建和上面的Snort示例类似的MIB,而是创建一个发送单变量的陷阱,这个变量就是一个自由格式的文本字符串。结果是,SNMP陷阱和syslog消息一样难以解析。实际上,许多供应商使用的是和syslog消息相同的消息,并将其包装在SNMP陷阱中。
所以,SNMP可能不是收集日志信息的最佳方式,但是它可能是从某些设备获取信息的唯一手段。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
3月前
|
监控 Android开发 C语言
深度解读Android崩溃日志案例分析2:tombstone日志
深度解读Android崩溃日志案例分析2:tombstone日志
86 0
|
3月前
|
Go 数据处理 Docker
elk stack部署自动化日志收集分析平台
elk stack部署自动化日志收集分析平台
80 0
|
3月前
|
缓存 固态存储 关系型数据库
MySQL性能优化指南:深入分析重做日志刷新到磁盘的机制
MySQL性能优化指南:深入分析重做日志刷新到磁盘的机制
|
4月前
|
Java
如何实现一个高效的二叉搜索树(BST)?请给出时间复杂度分析。 要求:设计一个二叉搜索树,支持插入、删除和查找操作。要求在平均情况下,这些操作的时间复杂度为O(log n)。同时,考虑树的平衡性,使得树的高度保持在对数级别。
如何实现一个高效的二叉搜索树(BST)?请给出时间复杂度分析。 要求:设计一个二叉搜索树,支持插入、删除和查找操作。要求在平均情况下,这些操作的时间复杂度为O(log n)。同时,考虑树的平衡性,使得树的高度保持在对数级别。
34 0
|
3天前
|
机器学习/深度学习 前端开发 数据挖掘
工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断(下)
工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断
74 11
|
4月前
|
存储 监控 安全
带你读《Apache Doris 案例集》——07查询平均提速700% ,奇安信基于 Apache Doris 升级日志安全分析系统(1)
带你读《Apache Doris 案例集》——07查询平均提速700% ,奇安信基于 Apache Doris 升级日志安全分析系统(1)
|
4月前
|
SQL 存储 安全
带你读《Apache Doris 案例集》——07查询平均提速700% ,奇安信基于 Apache Doris 升级日志安全分析系统(2)
带你读《Apache Doris 案例集》——07查询平均提速700% ,奇安信基于 Apache Doris 升级日志安全分析系统(2)
110 0
|
8天前
工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断2
工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断
15 0
|
4月前
|
运维 监控 数据可视化
日志管理:收集和分析Docker容器日志
容器化技术的普及使得应用的部署和管理更加便捷,但随之而来的挑战之一是有效地管理和分析容器产生的大量日志。本文将深入探讨Docker容器日志管理的重要性,介绍常用的日志收集工具,以及如何分析和利用这些日志数据,提供更为丰富和实际的示例代码,帮助大家更好地理解和应用日志管理的关键技术。
|
9天前
|
机器学习/深度学习 前端开发 数据挖掘
R语言计量经济学:工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断
R语言计量经济学:工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断
39 0