snmp在企业网中的应用
一.snmp简介
snmp概念
SNMP(Simple Network Management Protocol,简单网络管理协议)的前身是简单网关监控协议(SGMP),用来对通信线路进行管理。随后,人们对SGMP进行了很大的修改,特别是加入了符合Internet定义的SMI和MIB:体系结构,改进后的协议就是著名的SNMP。SNMP的目标是管理互联网Internet上众多厂家生产的软硬件平台,因此SNMP受Internet标准网络管理框架的影响也很大。现在SNMP已经出到第三个版本的协议,其功能较以前已经大大地加强和改进了。
SNMP工作过程
在典型的SNMP用法中,有许多系统被管理,而且是有一或多个系统在管理它们。每一个被管理的系统上又运行一个叫做代理者(agent)的软件元件,且透过SNMP对管理系统报告资讯。
基本上,SNMP代理者以变量呈现管理资料。管理系统透过GET,GETNEXT和GETBULK协定指令取回资讯,或是代理者在没有被询问的情况下,使用TRAP或INFORM传送资料。管理系统也可以传送配置更新或控制的请求,透过SET协定指令达到主动管理系统的目的。配置和控制指令只有当网络基本结构需要改变的时候使用,而监控指令则通常是常态性的工作。
可透过SNMP存取的变量以阶层的方式结合。这些分层和其他元数据(例如变量的类型和描述)以管理信息库(MIBs)的方式描述。
SNMP风险
接入Internet的网络面临许多风险,Web服务器可能面临***,邮件服务器的安全也令人担忧。但除此之外,网络上可能还存在一些隐性的漏洞。大多数网络总有一些设备运行着SNMP服务,许多时候这些SNMP服务是不必要的,但却没有引起网络管理员的重视。
根据SANS协会的报告,对于接入Internet的主机,SNMP是威胁安全的十大首要因素之一;同时,SNMP还是Internet主机上最常见的服务之一。特别地,SNMP服务通常在位于网络边缘的设备(防火墙保护圈之外的设备)上运行,进一步加剧了SNMP带来的风险。这一切听起来出人意料,但其实事情不应该是这样的。
背景知识
SNMP开发于九十年代早期,其目的是简化大型网络中设备的管理和数据的获取。许多与网络有关的软件包,如HP的Open View和Nortel Networks的Optivity Network Management System,还有Multi Router Traffic Grapher(MRTG)之类的免费软件,都用SNMP服务来简化网络的管理和维护。
由于SNMP的效果实在太好了,所以网络硬件厂商开始把SNMP加入到它们制造的每一台设备。今天,各种网络设备上都可以看到默认启用的SNMP服务,从交换机到路由器,从防火墙到网络打印机,无一例外。
仅仅是分布广泛还不足以造成威胁,问题是许多厂商安装的SNMP都采用了默认的通信字符串(例如密码),这些通信字符串是程序获取设备信息和修改配置必不可少的。采用默认通信字符串的好处是网络上的软件可以直接访问设备,无需经过复杂的配置。
通信字符串主要包含两类命令:GET命令,SET命令。GET命令从设备读取数据,这些数据通常是操作参数,例如连接状态、接口名称等。SET命令允许设置设备的某些参数,这类功能一般有限制,例如关闭某个网络接口、修改路由器参数等功能。但很显然,GET、SET命令都可能被用于拒绝服务***(DoS)和恶意修改网络参数。
最常见的默认通信字符串是public(读/写)和private(只读),除此之外还有许多厂商私有的默认通信字符串。几乎所有运行SNMP的网络设备上,都可以找到某种形式的默认通信字符串。
SNMP2.0和SNMP1.0的安全机制比较脆弱,通信不加密,所有通信字符串和数据都以明文形式发送。***者一旦捕获了网络通信,就可以利用各种嗅探工具直接获取通信字符串,即使用户改变了通信字符串的默认值也无济于事。
近几年才出现的SNMP3.0解决了一部分问题。为保护通信字符串,SNMP3.0使用DES(DataEncryptionStandard)算法加密数据通信;另外,SNMP3.0还能够用MD5和SHA(SecureHashAlgorithm)技术验证节点的标识符,从而防止***者冒充管理节点的身份操作网络。
虽然SNMP3.0出现已经有一段时间了,但目前还没有广泛应用。如果设备是2、3年前的产品,很可能根本不支持SNMP3.0;甚至有些较新的设备也只有SNMP2.0或SNMP1.0。
即使设备已经支持SNMP3.0,许多厂商使用的还是标准的通信字符串,这些字符串对***组织来说根本不是秘密。因此,虽然SNMP3.0比以前的版本提供了更多的安全特性,如果配置不当,其实际效果仍旧有限。
禁用SNMP
要避免SNMP服务带来的安全风险,最彻底的办法是禁用SNMP。如果你没有用SNMP来管理网络,那就没有必要运行它;如果你不清楚是否有必要运行SNMP,很可能实际上不需要。即使你打算以后使用SNMP,只要现在没有用,也应该先禁用SNMP,直到确实需要使用SNMP时才启用它。
下面列出了如何在常见的平台上禁用SNMP服务。
■Windows XP和Windows 2000
在XP和Win2K中,右击“我的电脑”,选择“管理”。展开“服务和应用程序”、“服务”,从服务的清单中选择SNMP服务,停止该服务。然后打开服务的“属性”对话框,将启动类型改为“禁用”(按照微软的默认设置,Win2K/XP默认不安装SNMP服务,但许多软件会自动安装该服务)。
■WindowsNT4.0
选择“开始”→“设置”,打开服务设置程序,在服务清单中选择SNMP服务,停止该服务,然后将它的启动类型改为禁用。
■Windows9x
打开控制面板的网络设置程序,在“配置”页中,从已安装的组件清单中选择“MicrosoftSNMP代理”,点击“删除”。检查HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices和HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run注册键,确认不存在snmp.exe。
■Cisco Systems硬件
对于Cisco的网络硬件,执行“noSNMP-server”命令禁用SNMP服务。如果要检查SNMP是否关闭,可执行“showSNMP”命令。这些命令只适用于运行CiscoIOS的平台;对于非IOS的Cisco设备,请参考随机文档。
■HP硬件
对于所有使用Jet Direct卡(绝大部分HP网络打印机都使用它)的HP网络设备,用telnet连接到Jet Direct卡的IP地址,然后执行下面的命令:
SNMP-config:0
quit
这些命令将关闭设备的SNMP服务。但必须注意的是,禁用SNMP服务会影响服务的发现操作以及利用SNMP获取设备状态的端口监视机制。
■RedHatLinux
对于RedHatLinux,可以用Linuxconf工具从自动启动的服务清单中删除SNMP,或者直接从/etc/services文件删除启动SNMP的行。对于其他Linux系统,操作方法应该也相似。
保障SNMP的安全
如果某些设备确实有必要运行SNMP,则必须保障这些设备的安全。首先要做的是确定哪些设备正在运行SNMP服务。除非定期对整个网络进行端口扫描,全面掌握各台机器、设备上运行的服务,否则的话,很有可能遗漏一、二个SNMP服务。特别需要注意的是,网络交换机、打印机之类的设备同样也会运行SNMP服务。确定SNMP服务的运行情况后,再采取下面的措施保障服务安全。
■加载SNMP服务的补丁
安装SNMP服务的补丁,将SNMP服务升级到2.0或更高的版本。联系设备的制造商,了解有关安全漏洞和升级补丁的情况。
■保护SNMP通信字符串
一个很重要的保护措施是修改所有默认的通信字符串。根据设备文档的说明,逐一检查、修改各个标准的、非标准的通信字符串,不要遗漏任何一项,必要时可以联系制造商获取详细的说明。
■过滤SNMP
另一个可以采用的保护措施是在网络边界上过滤SNMP通信和请求,即在防火墙或边界路由器上,阻塞SNMP请求使用的端口。标准的SNMP服务使用161和162端口,厂商私有的实现一般使用199、391、705和1993端口。禁用这些端口通信后,外部网络访问内部网络的能力就受到了限制;另外,在内部网络的路由器上,应该编写一个ACL,只允许某个特定的可信任的SNMP管理系统操作SNMP。例如,下面的ACL只允许来自(或者走向)SNMP管理系统的SNMP通信,限制网络上的所有其他SNMP通信:
access-list 100 permit iphost w.x.y any
access-list 100 deny udp any any eq snmp
access-list 100 deny udp any any eq snmp trap
access-list 100 permit ip any any
这个ACL的第一行定义了可信任管理系统(w.x.y)。利用下面的命令可以将上述ACL应用到所有网络接口:
interface serial 0
ip access-group 100 in
总之,SNMP的发明代表着网络管理的一大进步,现在它仍是高效管理大型网络的有力工具。然而,SNMP的早期版本天生缺乏安全性,即使最新的版本同样也存在问题。就象网络上运行的其他服务一样,SNMP服务的安全性也是不可忽视的。不要盲目地肯定网络上没有运行SNMP服务,也许它就躲藏在某个设备上。那些必不可少的网络服务已经有太多让人担忧的安全问题,所以最好关闭SNMP之类并非必需的服务——至少尽量设法保障其安全。
二.snmp的配置案例
1.实验目的
在网络设备上开启snmp管理协议。
2.实验环境及设备
网络设备:
路由器 两台 华为 serial quidway 2000
交换机 一台 华为 s2000 HI (在这里只作为中间设备未配置snmp)
3.实验拓扑图
注释:
PC 1 是一个linux虚拟机(两块网卡!搭建apache)
PC 2 是我的物理机(安装检测工具what’s up)
pc 3 是windows 2003 的虚拟机(搭建ftp服务器)
交换机 S3 起到了一个连接的作用。在试验中不进行配置。由于受限于主机个数的限制 ,故这样搭建的拓扑图。
4.实验配置
R4的配置:
①.配置接口ip及静态路由路由
interface Ethernet0
ip address 192.168.2.2 255.255.255.0
!
interface Ethernet1
ip address 192.168.3.1 255.255.255.0
ip route-static 192.168.1.0 255.255.255.0 192.168.2.1 preference 60
②.启用snmp及设置community
snmp-agent
snmp-agent local-engineid 800007DB0300E0FC2DFDA1
snmp-agent community read public
snmp-agent community write private
snmp-agent sys-info version all
③.开启 trap
snmp-agent trap enable
snmp-agent target-host trap address 192.168.3.100 securityname private
snmp-agent target-host trap address 192.168.3.100 securityname public
④.路由表:
[R4]dis ip rou
Routing Tables:
Destination/Mask Proto Pref Metric Nexthop Interface
127.0.0.0/8 Direct 0 0 127.0.0.1 LoopBack0
127.0.0.1/32 Direct 0 0 127.0.0.1 LoopBack0
192.168.1.0/24 Static 60 0 192.168.2.1 Ethernet0
192.168.2.0/24 Direct 0 0 192.168.2.2 Ethernet0
192.168.2.2/32 Direct 0 0 127.0.0.1 LoopBack0
192.168.3.0/24 Direct 0 0 192.168.3.1 Ethernet1
192.168.3.1/32 Direct 0 0 127.0.0.1 LoopBack0
R9的配置:
①.配置接口ip及静态路由路由
interface Ethernet0
ip address 192.168.2.1 255.255.255.0
!
interface Ethernet1
ip address 192.168.1.1 255.255.255.0
ip route-static 192.168.3.0 255.255.255.0 192.168.2.2 preference 60
②.启用snmp及设置community
snmp-agent community read public
snmp-agent community write private
snmp-agent sys-info version all
③.开启 trap
snmp-agent trap enable
snmp-agent target-host trap address 192.168.3.100 securityname private
snmp-agent target-host trap address 192.168.3.100 securityname public
④.路由表:
[R9]dis ip rou
Routing Tables:
Destination/Mask Proto Pref Metric Nexthop Interface
127.0.0.0/8 Direct 0 0 127.0.0.1 LoopBack0
127.0.0.1/32 Direct 0 0 127.0.0.1 LoopBack0
192.168.1.0/24 Direct 0 0 192.168.1.1 Ethernet1
192.168.1.1/32 Direct 0 0 127.0.0.1 LoopBack0
192.168.2.0/24 Direct 0 0 192.168.2.1 Ethernet0
192.168.2.1/32 Direct 0 0 127.0.0.1 LoopBack0
192.168.3.0/24 Static 60 0 192.168.2.2 Ethernet0
pc1(linux)上的配置:
①.安装简单的apache服务器
挂载光盘,进入光盘文件的Server目录
rpm –ivh httpd<tab><tab>
②.启动服务
service httpd start
③.安装snmp管理服务器
挂载光盘后使用yum安装
yum install snmp
④.修改snmp配置并启动服务
[root@localhost ~]# rpm -qc net-snmp //snmp服务的所有可修改的配置文件
/etc/logrotate.d/snmpd
/etc/rc.d/init.d/snmpd
/etc/rc.d/init.d/snmptrapd
/etc/snmp/snmpd.conf //snmpd 服务的主配置文件
/etc/sysconfig/snmpd.options
/etc/sysconfig/snmptrapd.options
修改/etc/snmp/snmp.conf ,修改如下
添加如下几行
15 rocommunity public
16 rwcommunity private
65 access notConfigGroup "" any noauth exact all none none
88 view all included .1 80
pc3(windows)上的配置:
①.安装snmp服务
②.在服务和应用程序-》服务寻找-》snmp和snmp trap 两个服务
点选“属性”配置如下:
设置代理的信息:
触发“团体”及“目标地址”
设置团体指定“NMS”
snmp trap 服务点选“属性”配置如下:
默认即可
pc2上(物理机)
安装what's up
下一步
默认
默认
默认
打开文件,新建
discover
使用 SNMP 寻找 网络
指定根端口
监控的服务类型
在pc2 上监控网络如下结果
可以进行网络的监控管理.
下面就是一些关于 what’s up 软件的使用了。可以再what‘s up 软件上以拓扑图的形式进行监控。服务器及网络正常,颜色显示是绿色。出现×××或红色即表示出现问题。可以选中图标,右键进入配置界面。相关内容在此不再赘述!!!
嗯,韩宇说的对!!!
转载于:https://blog.51cto.com/donghao123/986326
相关文章:

浅谈在ASP.NET中数据有效性校验的方法
作者:未知作为一名程序员,一定要对自己编写的程序的健壮性负责,因此数据的校验无论在商业逻辑还是系统实现都是必不可少的部分。我这里总结了一种自认为比较不错的asp.net(C#)的数据校验方法,如大家探讨。主…
关于Python 3.9,那些你不知道的事
作者 | Ayushi Rawat编译 | 高卫华题图 | 视觉中国Python一直在满足社区需求,并且将成为未来使用最多的语言。Python的下一个版本带来了更快速的进程释放,性能的提升,简便的新字符串函数,字典并集运算符以及更兼容稳定的内部API。…

memcache缓存失效
缓存过期 memcached在处理过期的缓存项时,采用懒惰模式处理方法。 缓存项过期,不会立即删除,直到对该缓存项执行了get操作,才会删除过期缓存。> set key 0 10 > test > stats //查看curr_items的值 > get key //超过过…

ASP.NET HTTP 运行时
ASP.NET HTTP 运行时一个请求从 URL 字符串到 HTML 代码的“漫长曲折”之路 Dino EspositoWintellect 2003年7月10日 摘要:本文详细介绍了 HTTP 运行时的组成部分,以及在处理对 ASP.NET 应用程序的各种请求时采用的逻辑。文章还以 Web Garden 模型和最新…

C++中的const关键字(zz)
【补充】mutable关键字有时我们希望类的数据成员即使在const成员函数中,依然是可以修改的,这时就可以把它们声明为mutable来实现。这样的应用,比如记录各种操作的调用次数,这时,即使在const中,依然要修改计…
Python让你成为AI 绘画大师,简直太惊艳了!(附代码))
作者 | 李秋键责编 | 李雪敬头图 | CSDN下载自视觉中国引言:基于前段时间我在CSDN上创作的文章“CylcleGAN人脸转卡通图”的不足,今天给大家分享一个更加完美的绘制卡通的项目“Learning to Cartoonize Using White-box Cartoon Representations”。首先…
Vue 2 | Part 4 v-bind绑定元素属性和样式
这期跟大家分享的,是v-bind指令。它可以往元素的属性中绑定数据,也可以动态地根据数据为元素绑定不同的样式。 绑定属性 最简单的例子,我们有一张图片,需要定义图片的src。我们可以直接在元素的属性里面定义: <div …

在 ASP.NET 中执行 URL 重写
在 ASP.NET 中执行 URL 重写 发布日期: 8/23/2004| 更新日期: 8/23/2004Scott Mitchell 4GuysFromRolla.com 适用范围: Microsoft ASP.NET 摘要:介绍如何使用 Microsoft ASP.NET 执行动态 URL 重写。URL 重写是截取传入 Web 请求并…

win8中使用BitLocker加密
一、加密驱动器二、管理三、TPM转载于:https://blog.51cto.com/jimshu/989359
清华硕士爆料:这些才是机器学习必备的数学基础
现如今,计算机科学、人工智能、数据科学已成为技术发展的主要推动力。无论是要翻阅这些领域的文章,还是要参与相关任务,你马上就会遇到一些拦路虎:想过滤垃圾邮件,不具备概率论中的贝叶斯思维恐怕不行;想试…

Oracle Golden Gate体系架构详解(原创) - CzmMiao的博客生活 - ITeye技术网站
Oracle Golden Gate体系架构详解(原创) - CzmMiao的博客生活 - ITeye技术网站

用C#对ADO.NET数据库完成简单操作
作者:李阳 http://oraasp.vicp.net/article/article.aspx?ID21 数据库访问是程序中应用最普遍的部分。随着C#和ADO.NET的引入,这种操作变得更简单。这篇文章将示范四种最基础的数据库操作。 ● 读取数据。其中包括多种数据类型:整型&#…

用createrepo配置Yum本地源
yum配置本地源, 在网速差的情况下,yum用在线源是一件头痛的事,所以以下为yum的本地源配置可以有好解决这个事。 1,安装createrepo包, 可以用yum安装(yum install createrepo -y); 也可以安装rpm或tar包 (网址:createre…
首次在手机端不牺牲准确率实现BERT实时推理,比TensorFlow-Lite快近8倍,每帧只需45ms...
作者 | 王言治 出品 | AI科技大本营(ID:rgznai100) 基于Transformer的预训练模型在许多自然语言处理(NLP)任务中取得了很高的准确度。但是这些预训练模型往往需要很大的计算量和内存。由于移动平台的存储空间以及计算能力的限制&a…

[svc]caffe安装笔记-显卡购买
caffe,这是是数据组需要做一些大数据模型的训练(深度学习), 要求 服务器显卡(运算卡), 刚开始老板让买的牌子是泰坦的(这是2年前的事情了). 后来买不到这个牌子的,(jd,tb)看过丽台的,看过gtx系列的哪个型号来着, 也不合适,后来买的特斯拉显卡 [查了下一些知名的显卡牌子](https…
AABO:自适应最优化Anchor设置,性能榨取的最后一步 | ECCV 2020
编译 | VincentLee来源 | 晓飞的算法工程笔记Introduction目前,主流的目标检测算法使用多种形状的anchor box作为初始预测,然后对anchor box进行回归调整,anchor box的配置是检测算法中十分重要的超参数。一般而言,anchor box的配…

Android列表控件选项中添加进度框ProgressBar实现
今天有时间就学习了下在ListView、GridView列表项中清加ProgressBar,小马用最简单的代码实现可以通用的功能,人人都能看懂,哈哈,直接说下,如果你的适配器getView方法返回的View是一个自定义控件的话,有点不好实现哦&am…

写一个通用数据访问组件
出处:http://www.csharp-corner.com willsound(翻译) 我收到过好多Email来问我如何用一个通用的数据提供者(data provider)在不失自然数据提供者(native data provider)稳定而强大功能的前提下来访问不同的数据源(data sources).一个小伙子…

InstallShield 2015 LimitedEdition VS2012 运行bat文件
转载:http://www.cnblogs.com/fengwenit/p/4271150.html 运行bat文件 网上很多介绍如何运行bat的方法,但我这个是limted 版本,不适用。 1. 打开 Define Setup Requirements and Actions –> Custom Actions 2. 右健 After Register Product –> Ne…

理解C#中的string类型
作者:未知目的 本文的目的在于揭示和DOTNET及C#相关的一些常见的和不常见的问题。在这些问题中我的第一篇文章和string数据类型有关,string数据类型是一种引用类型,但是当和其他引用类型比较的时候,很多开发人员可能并不能完全理解它的行为。 问题 对于常见的引用类…
最全总结!聊聊 Python 操作PDF的几种方法
作者 | 陈熹来源 | 早起Python前言本文主要涉及:os 模块综合应用glob 模块综合应用PyPDF2 模块操作基本操作PyPDF2 导入模块的代码常常是:from PyPDF2 import PdfFileReader, PdfFileWriter这里导入了两个方法:PdfFileReader 可以理解为读取器…

three.js(六) 地形法向量生成
2019独角兽企业重金招聘Python工程师标准>>> 上一节采用 分形算法生成地形的高度值, 接着我们需要生成每个顶点的法向量。 three.js 的PlaneGeometry 自带有法向量, 法向量分为两种 即 平面法向量 和 平面每个定点法向量。 因此一个n*n 块组成…

ASP.NET中使用多个runat=server form
作者:未知ASP.NET 在同一个页面不支持多个 runatserver forms,要解决这个问题,可以把每个 form 放在一个单独的 panel 控件中,这样用户就可以简单地通过单选按钮在不同 panel 间切换。代码如下:2FormExample.aspx<%…
激发企业大“智慧” | 深度赋能AI全场景 揭秘你不知道的移动云
2020年是人工智能技术发展的关键年。疫情之下,世界见证了人工智能在抗击疫情中发挥的积极作用;今年4月,国家发改委正式将人工智能确定为新基建的重要领域之一。在历史机遇下,AI已实现"质变和量变",正迈入与技…

ExtJS 4.x 得到资源树上任意的节点对象
上半年做ExtJS 4.x 的时候,遇到过对资源树操作的情况: Ext.tree.Panel 如下图:目的: 直接根据每个节点的{任意key : 对应value},就能找到匹配的节点对象 代码如下: refs : [ { selector : rtree, …

【转载】mysql常用函数汇总
转载地址:http://www.jb51.net/article/40179.htm 一、数学函数ABS(x) 返回x的绝对值BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制)CEILING(x) 返回大于x的最小整数值EXP(x) 返回值e(自然对数的底&…

有关java的一些话
2019独角兽企业重金招聘Python工程师标准>>> 跟着做完TankWar,java才算是入门了,真正学习java从看尚学堂马士兵老师的视频开始,至今三个月已过,感谢马老师的精彩讲解,您才是我真正的java入门老师࿰…

ADO.NET 2.0中的SqlCommand.ExecutePageReader
http://blog.joycode.com/liuhuimiao/在.NET 2.0 PDC或Beta1中,可以看到SqlCommand对象新增了个ExecutePageReader方法,该方法实现了分页读取数据的功能。对于分页读取数据,在ADO.NET1.1中(当然2.0也适合)一般常用动态…
组合游戏系列5: 井字棋、五子棋AlphaGo Zero 算法实战
来源 | MyEncyclopedia上一篇我们从原理层面解析了AlphaGo Zero如何改进MCTS算法,通过不断自我对弈,最终实现从零棋力开始训练直至能够打败任何高手。在本篇中,我们在已有的N子棋OpenAI Gym 环境中用Pytorch实现一个简化版的AlphaGo Zero算法…
2020职场人裸辞三大原因:不开心、工资低、没有盼头
近期,脉脉发布了《2020职场人裸辞现状调研报道》,报道显示2020最让职场人想裸辞的三大原因为:不开心、工资低、没有盼头。报告数据中还显示,工资不满预期是最让人想要裸辞的主要原因,但有超过6成职场人表示,…