设为首页收藏本站language 语言切换
查看: 3491|回复: 5
收起左侧

[分享] 实施网络监控Syslog

[复制链接]
 成长值: 63715
发表于 2017-11-6 14:03:36 | 显示全部楼层 |阅读模式
思科知识点汇总贴
http://bbs.hh010.com/thread-529979-1-1.html
(出处: 鸿鹄论坛)

实施网络监控
1.Syslog概述
①使得设备向本地或远程日志服务器报告、存储重要的系统日志信息
②Syslog消息承载于UDP 514端口之上
③以明文的方式提供综合的报告机制
④日志消息可以输出到Consol、终端会话(例如通过VTY连接的终端会话)、缓冲区(Buffer)和Syslog服务器
2.Cisco Syslog消息格式
    ①       ②   ③                             ④
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to down
①Facility 它指出错误消息涉及的设备名。该值可以是协议、硬件设备或者系统软件模块。Subfacility 它仅与通道接口处理器(CIP)卡有关。详细的信息可以参见Cisco文档的相关章节。
②Severity 它是一个范围在0到7之间的数字。数字的值越小,严重程度越高。
③Mnemonic 唯一标识错误消息的单值代码。该代码通常可以暗示错误的类型。
④Message Text 它是错误消息的简短描述,其中包括涉及的路由器硬件和软件信息。
3.Cisco Syslog消息的等级
Level 0——Emergency
Level 1——Alert
Level 2——Critical
Level 3——Error
Level 4——Warning
Level 5——Notification
Level 6——Informational
Level 7——Debugging
4.配置Cisco Syslog的输出
①启动log服务
router(config)#logging on     #使日志消息输出到所有开启的目的地(指Consol、终端会话、缓冲区(Buffer)和Syslog服务器)。需要注意的是默认开启的级别是Level 3(error)。
router#show logging     #检查log设置
②输出日志到Consol
router(config)#logging console [severity/level (0-7)]     #输出日志到Consol[设置输出日志等级]
router(config)#no logging console     #停止输出日志到Consol
③输出日志到Consol
router(config)#logging monitor [severity/level (0-7)]     #输出日志信息到当前终端[设置输出日志等级]
router(config)#no logging monitor     #停止输出日志到当前终端
router(config)#terminal monitor     #在当前终端上调用日志信息。此方式不允许设置日志的不同级别。
router(config)# terminal no monitor     #停止当前终端的日志信息调用
④发送syslog信息到缓存
router(config)#logging buffered [buffered_size] [severity/level (0-7)]        #输出日志到缓存区[设置缓存区大小、输出日志等级]
router(config)#no logging buffered     #停止输出日志到缓存区
router#clear logging     #清除缓存中的信息以便接收查看新的syslog信息
⑤发送syslog 信息到日志服务器(安装第三方软件:如Kiwi Syslog Daemon)
router(config)#logging hostname/A.B.C.D          #指定日志服务器的地址。通过反复使用这一命令,可以建立一个服务器的列表。在管理大型网络时,通常需要设置冗余的日志服务器。
router(config)#logging trap [severity/level (0-7)]     #输出日志信息到日志服务器[设置输出日志等级]
router(config)#logging origin-id hostname/ip/string_word     #配置输出的日志信息中包含设备ID
5.简单网络管理协议(Simple Network Management Protocol,SNMP)
①SNMP概述
SNMP(Simple Network Management Protocol,简单网络管理协议)的前身是简单网关监控协议(SGMP),用来对通信线路进行管理。随后,人们对SGMP进行了很大的修改,特别是加入了符合Internet定义的SMI和MIB:体系结构,改进后的协议就是著名的SNMP。SNMP的目标是管理互联网Internet上众多厂家生产的软硬件平台,因此SNMP受Internet标准网络管理框架的影响也很大。现在SNMP已经出到第三个版本的协议,其功能较以前已经大大地加强和改进了。
MIB,Management Information Base:管理信息库,就是所有管理代理包含的、并且能够被管理基站进行查询和设置的信息的集合。SMI,Structure of Management Information:管理信息结构,它是一种语言,是为了确保网络管理数据的语法和语义明确和无二义性而定义的语言。它定义了数据类型、对象模型,以及写入和修改管理信息的规则。它是一个整数序列,以点(“.”)分隔。这些整数构成一个树型结构,类似于DNS或Unix的文件系统。所有的MIB变量都从1.3.6.1.2.1这个标识开始的。
a)使用SNMP进行网络管理需要下面几个重要部分:管理基站,管理代理,管理信息库和网络管理工具。管理基站通常是一个独立的设备,它用作网络管理者进行网络管理的用户接口。基站上必须装备有管理软件,管理员可以使用的用户接口和从MIB取得信息的数据库,同时为了进行网络管理它应该具备将管理命令发出基站的能力。
b)管理代理是一种网络设备,如主机,网桥,路由器和集线器等,这些设备都必须能够接收管理基站发来的信息,它们的状态也必须可以由管理基站监视。管理代理响应基站的请求进行相应的操作,也可以在没有请求的情况下向基站发送信息。
c)管理信息库,MIB是对象的集合,它代表网络中可以管理的资源和设备。每个对象基本上是一个数据变量,它代表被管理的对象的一方面的信息。
d)最后一个方面是管理协议,也就是SNMP,SNMP的基本功能是:取得,设置和接收代理发送的意外信息。取得指的是基站发送请求,代理根据这个请求回送相应的数据,设置是基站设置管理对象(也就是代理)的值,接收代理发送的意外信息是指代理可以在基站未请求的状态下向基站报告发生的意外情况。SNMP为应用层协议,是TCP/IP协议族的一部分。它通过用户数据报协议(UDP)来操作。在分立的管理站中,管理者进程对位于管理站中心的MIB的访问进行控制,并提供网络管理员接口。管理者进程通过SNMP完成网络管理。SNMP在UDP、IP及有关的特殊网络协议(如,Ethernet, FDDI, X.25)之上实现。
②SNMP的5种报文类型
get-request:从管理代理处提取一个或多个参数值。
get-next-request:从管理代理处提取一个或多个参数 的下一个参数值。
set-request:设置管理代理的一个或多个参数值。
get-response:返回一个或多个参数值。这个操作是由管理代理发出的,它是前面3个操作的响应操作。
trap:管理代理主动发出的报文,通知管理基站有某些事情发生。
注:前面3个操作是由管理基站向管理代理发出的,后面2个操作是由管理代理发给管理基站的。
③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比以前的版本提供了更多的安全特性,如果配置不当,其实际效果仍旧有限。
a)禁用SNMP
要避免SNMP服务带来的安全风险,最彻底的办法是禁用SNMP。如果你没有用SNMP来管理网络,那就没有必要运行它;如果你不清楚是否有必要运行SNMP,很可能实际上不需要。即使你打算以后使用SNMP,只要现在没有用,也应该先禁用SNMP,直到确实需要使用SNMP时才启用它。下面列出了如何在常见的平台上禁用SNMP服务。
–Windows XP和Windows 2000:在XP和Win2K中,右击“我的电脑”,选择“管理”。展开“服务和应用程序”、“服务”,从服务的清单中选择SNMP服务,停止该服务。然后打开服务的“属性”对话框,将启动类型该为“禁用”(按照微软的默认设置,Win2K/XP默认不安装SNMP服务,但许多软件会自动安装该服务)。
–Cisco Systems硬件:对于Cisco的网络硬件,执行router(config)#no snmp-server命令禁用SNMP服务。如果要检查SNMP是否关闭,可执行router#sh snmp命令。这些命令只适用于运行CiscoIOS的平台;对于非IOS的Cisco设备,请参考随机文档。
b)保障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通信:
router(config)#access-list 100 permit iphost A.B.C.D any
router(config)#access-list 100 deny udp any any eq snmp
router(config)#access-list 100 deny udp any any eq snmp trap
router(config)#access-list 100 permit ip any any     #定义一个可信任管理系统(A.B.C.D)
router(config)#interface serial0
router(config-if)#ip access-group 100 in     #将ACL应用到接口上
总之,SNMP的发明代表着网络管理的一大进步,现在它仍是高效管理大型网络的有力工具。然而,SNMP的早期版本天生缺乏安全性,即使最新的版本同样也存在问题。就象网络上运行的其他服务一样,SNMP服务的安全性也是不可忽视的。不要盲目地肯定网络上没有运行SNMP服务,也许它就躲藏在某个设备上。那些必不可少的网络服务已经有太多让人担忧的安全问题,所以最好关闭SNMP之类并非必需的服务——至少尽量设法保障其安全。
④SNMP配置手册(建议结合ACL控制SNMP流量;使用SNMPv3提供验证和加密功能)
router(config)#no snmp-server     #关闭设备支持的所有版本SNMP的代理服务。
router(config)#snmp-server chassis-id text          # text:系统序列号的文本,可以使数字或字符。SNMP系统序列号一般使用机器的序列号,以便对设备进行识别。系统序列号可以通过show snmp命令查看。
router(config)#snmp-server community string [view view-name] [[ro | rw] [host ipaddr] [ number ]                   #该命令为启用设备SNMP代理功能的第一个重要命令,指定了团体的属性、允许访问MIB的NMS范围等等。
string:团体字符串,相当于管理基站和管理代理之间的通信密码;view-name:指定视图的名称,用于基于视图的管理。
ro:指定管理基站对MIB的变量只能读,不能修改。
rw:管理基站对MIB的变量可读可写。
number:访问列表序列号(0-99),关联指定的访问列表,指定能访问MIB的管理基站地址范围。
ipaddr :关联管理基站的地址,指定访问MIB的管理基站地址。
router(config)#snmp-server enable traps [snmp ]          #启用SNMP主动给NMS发送Trap消息,用于报告一些紧急而重要的事件的发生
router(config)#snmp-server host {host-addr| ipv6 ipv6-addr} traps [vrf vrfname] [version {1 | 2c | 3 [auth | noauth | priv]] community-string [udp-port port-num][notification-type]
#指定发送陷阱消息的SNMP主机(NMS)。可以配置多个不同的SNMP主机用于接收陷阱消息,一个主机可以使用不同陷阱类型组合,不同的端口,不同的vrf转发表,对于相同主机[相同端口、相同vrf配置],最后的一次配置会和前面的配置合并,即如要给相同主机发送不同陷阱的消息,可以分别配置不同陷阱,最终这些配置会合并到一起。
host-addr:SNMP主机地址
ipv6-addr:SNMP主机地址(ipv6)
vrfname:设置vrf转发表名称
version:选择snmp版本,V1、V2C、V3
auth | noauth | priv:设置V3用户的安全级别
community-string:团体字符串或用户名(V3版本)
port-num:设置snmp主机端口
notification-type:主动发送的陷阱类型,例如snmp
注:以上两个命令必须配合使用。
router(config)#snmp-server system-shutdown    #启用SNMP系统重起通知功能,RGOS会在设备reload/reboot以前给NMS发送陷阱消息通知系统重起。
router(config)#snmp-server trap-source interface_number    #指定SNMP的源地址。缺省情况下,SNMP报文从哪个接口出去,就使用哪个接口的IP地址作为源地址,为了便于管理和识别,可以使用该命令固定使用一个本地IP地址作为SNMP的源地址。
⑤检查
router#show snmp [mib | user | view | group]     #查看SNMP的状态信息
6.服务等级协定(Service-Level Agreement,SLA)
思科 IOS SLA(以下简称IP SLA)基于思科SAA技术发展而来,并在其基础上进行了增强,该特性让用户可以监测两台思科路由器之间或思科路由器与一个远程的IP设备之间的网络性能。


发表于 2020-7-25 18:49:08 | 显示全部楼层
感谢小乔分享
6# 2020-7-25 18:49:08 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-2-23 13:41 , Processed in 0.075698 second(s), 22 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表