博威---云架构决胜云计算

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2171|回复: 4

mrtg流量监控

[复制链接]
发表于 2007-11-19 21:06:49 | 显示全部楼层 |阅读模式
首先要准备几个软件:
1、MRTG   //从官网上下载个最新的:),当然是免费的。。。
2、Active Perl    //google上搜索下,一大堆。。。
3、Service.exe    //内含instsrv.exe和srvany.exe两个文件,主要用来把每次需手工敲上的命令变成windows的服务,省得每次重启监控主机还得重新输入命令了。


第二步,下载来的MRTG直接解压缩就OK,会看到许多文件,先不要管它了。

第三步,把Active Perl安装一下,连点下一步,10秒钟也搞定。

第四步:在被监控的路由器或交换机上要做几条简单的配置:
snmp-server community xxx RO
snmp-server contact xxx@sina.com
snmp-server trap-source f0/1
snmp-server host 10.1.1.100 xxx   //这是监控主机的IP
snmp-server enable traps



第五步,到你的监控主机桌面上了该,进入DOS模式,找到被你解压后的mrtg目录,我的是放到了c:\program files\mrtg中了。然后进入bin目录,执行以下命令:

perl cfgmaker xxx@10.1.1.254 --global "WorkDir: d:\www\mrtg" --output 7204.cfg                    //其中xxx是community名,10.1.1.254是被监控路由器或交换机的IP,WorkDir: d:\www\mrtg"是监控主机上IIS服务设定的目录,最后的7204.cfg是被监控路由器或交换机的名称,这个由你任意命令,爱起个YYY也可以:)



第六步,到这儿,最好要做个设置了,切回桌面,找到mrtg\bin目录,打开刚才第五步命令生成的文件,7204.cfg。用记事本打开,加入以下几句:

runasdaemon:yes
interval:5
language:chinese
Options[10.1.1.254_1]: bits
Options[10.1.1.254_2]: bits
Options[10.1.1.254_3]: bits
Options[10.1.1.254_4]: bits

上面option后面的10.1.1.254是被监控路由器的IP,后面的_1、_2 _3 _4 是接口名称
意思是把默认的带宽显示值由byte改为bit,符合习惯,这样跟电信或网通给你提供的100M带宽或10M带宽就一致了,省得你再自己进行换算。为了做得干净,再把7204.cfg里涉及到输出显示的12.5MBytes/s改成100 Mbit/s。下面给出个例子:

### Interface 1 >> Descr: 'FastEthernet0/0' | Name: 'Fa0/0' | Ip: '10.1.1.254' | Eth: '00-10-c0-28-b9-28' ###
Target[10.1.1.254_1]: 1:xxx@10.1.1.254:
SetEnv[10.1.1.254_1]: MRTG_INT_IP="10.1.1.254" MRTG_INT_DESCR="FastEthernet0/0"
MaxBytes[10.1.1.254_1]: 12500000    //注意这个不要改,改下面的
Title[10.1.1.254_1]: Traffic Analysis for 1 (接往内网口)-- Router7204
PageTop[10.1.1.254_1]: <h1>Traffic Analysis for 1 (接往内网口)-- Router7204</h1>
  <div id="sysdetails">
   <table>
    <tr>
     <td>System:</td>
     <td>Router7204 in </td>
    </tr>
    <tr>
     <td>Maintainer:</td>
     <td>xxx@sina.com</td>
    </tr>
    <tr>
     <td>Description:</td>
     <td>FastEthernet0/0 connect to PIX525 </td>
    </tr>
    <tr>
     <td>ifType:</td>
     <td>ethernetCsmacd (6)</td>
    </tr>
    <tr>
     <td>ifName:</td>
     <td>Fa0/0</td>
    </tr>
    <tr>
     <td>Max Speed:</td>
     <td>100 Mbit/s</td>
    </tr>
    <tr>
     <td>Ip:</td>
     <td>10.1.1.254 ()</td>
    </tr>
   </table>
  </div>


好了,保存退出吧,该下一步了



第七步,perl indexmaker 7204.cfg>d:\www\mrtg\index.htm
生成index.htm文件


第八步,perl mrtg -logging=7204.log 7204.cfg  
启动mrtg监控,从7204.cfg中读取配置并启动mrtg程序,同时记录到日志7204.log中


第九步,完成。你可以在IE里输入http://10.1.1.100看看效果了,注意虚拟目录设置好了才可以正确显示噢。




庆祝一下。。。


对了,忘了一点儿,如果每次这样手动敲这些命令很麻烦啊,想把监控做成服务也不难
刚才下载的第三个文件有用了。。。

1、把service.exe解压缩,找到instsrv.exe和srvany.exe,把它们拷贝到mrtg\bin目录中。还是切换到DOS状态下,进入mrtg\bin目录,输入:


2、instsrv mrtg c:\program files\mrtg\bin\srvany.exe
使MRTG成为系统服务


3、配置srvany,在注册表hkey_local_machine\system\currentcontrolset\services\mrtg中添加一个parameters项,并在parameters子键中添加以下字符串

application 内容为: c:\perl\bin\perl.exe

appdirectory 内容为:  c:\program files\mrtg\bin

appparameters 内容为:  mrtg -logging=7204.log 7204.cfg


4、进入“服务”窗口,找到mrtg服务,将它设置为自动启动后,MRTG即可全天监视网络流量,即使重新启动后程序也将以服务的形式进行加载。
 楼主| 发表于 2007-11-19 21:09:30 | 显示全部楼层
使用路由器作流量检测的几个手段
一、ip accounting

1、配置方法

router(config)#int s 0/0

router(config-if)#ip accounting output-packets

router#sh ip accounting output-packets

Source Destination Packets Bytes

192.1.1.110 192.1.1.97 5 500

172.17.246. 128 192.1.1.110 8 704

Accounting data age is 2d23h

或者

router(config)#int s 0/0

router(config-if)#ip accounting access-violations

router#sh ip accounting [checkpoint] access-violations

Source Destination Packets Bytes ACL

192.1.1.110 224.0.0.5 46 3128 19

Accounting data age is 7



2、说明

●此方法如果在路由器负载特大的时候请谨慎使用,因其会使系统性能下降
● 基于地址对的字节数量及数据包数量统计

● 通常只支持outbound的数据包,及被ACL拒绝的数据包(支持IN 和 OUT方向的ACL)

● 只统计穿越路由器的流量,源或目的是该路由器的数据包不做统计

● 支持所有的switching path,除了Autonomous Switching

● 可以通过SNMP来访问统计值,MIB是OLD-CISCO-IP-MIB, lipAccountingTable

● ip accounting还支持其他的监测方式,如基于tos,mac-address等

二、netflow

1、配置方法

router (config-if)#ip route-cache flow

router (config)#ip flow-export destination 172.17.246.225 9996

router (config)#ip flow-export version 5 <peer-as | origin-as>

Optional configuration

router (config)#ip flow-export source loopback 0

router (config)#ip flow-cache entries <1024-524288>

router (config)#ip flow-cache timeout

sh ip cache flow

IP packet size distribution (132429191 total packets):

1-32 64 96 128 160 192 224 256 288 320 352 384 416 448 480

.000 .191 .024 .009 .010 .006 .005 .008 .003 .005 .003 .003 .002 .001 .001



512 544 576 1024 1536 2048 2560 3072 3584 4096 4608

.001 .002 .107 .032 .578 .000 .000 .000 .000 .000 .000



IP Flow Switching Cache, 278544 bytes

33 active, 4063 inactive, 7975259 added

104834714 ager polls, 0 flow alloc failures

Active flows timeout in 30 minutes

Inactive flows timeout in 15 seconds

last clearing of statistics never

Protocol Total Flows Packets Bytes Packets Active(Sec) Idle(Sec)

-------- Flows /Sec /Flow /Pkt /Sec /Flow /Flow

TCP-Telnet 25378 0.0 12 652 0.0 22.9 15.2

TCP-FTP 432435 0.1 4 59 0.4 1.2 2.7

TCP-FTPD 28670 0.0 212 1397 1.4 8.2 1.6

TCP-WWW 4682530 1.0 15 927 16.4 2.4 4.6



2、说明

● 统计基于流(包括地址对、端口号、协议类型等)的数据量

● 只支持inbound的流量

● 只支持单播

● 只能在主端口配置

● 需要和cef或fast switching一起使用

● 对路由器性能有影响

10,000 active flows: < 4% of additional CPU utilization

45,000 active flows: <12% of additional CPU utilization

65,000 active flows: <16% of additional CPU utilization



三、NBAR

1、配置方法

router(config)# interface FastEthernet 0/1

router(config-if)# ip nbar protocol discovery

router# show ip nbar protocol -discovery interface FastEthernet 6/0

FastEthernet6/0

Input Output

Protocol Packet Count Packet Count

Byte Count Byte Count

5 minute bit rate (bps) 5 minute bit rate (bps)

------------------------ ------------------------ ------------------------

http 316773 0

26340105 0

3000 0

pop3 4437 7367

2301891 339213

3000 0

snmp 279538 14644

319106191 673624

0 0



Total 17203819 151684936

19161397327 50967034611

4179000 6620000



2、说明

● NBAR识别从4层到7层的协议信息

●可以基于端口统计input 和output 的bit rate (bps), packet counts, byte counts

● 只能在cef或dcef的基础上运行

● 不象netflow,没有流的概念。主要是统计目前网络中有那一些应用



四、access-list log

1、配置方法

router(config)# access-list 118 permit ip any any log

router(config)# interface FastEthernet 0/1

router(config-if)# ip access-group 118 out

router# show log

router>sh log

Syslog logging: enabled (0 messages dropped, 0 messages rate-limited, 0 flushes,

0 overruns)

Console logging: level debugging, 79 messages logged

Monitor logging: level debugging, 0 messages logged

Buffer logging: level debugging, 79 messages logged

Logging Exception size (4096 bytes)

Trap logging: level informational, 83 message lines logged



Log Buffer (4096 bytes):



*May 25 05:27:50: %SEC-6-IPACCESSLOGP: list 118 permitted tcp 10.1.64.71(0) -> 10.0.29.3(0), 1 packet

*May 25 05:28:59: %SEC-6-IPACCESSLOGP: list 118 permitted tcp 10.1.64.71(0) -> 10.0.28.128(0), 1 packet

*May 25 05:29:19: %SEC-6-IPACCESSLOGP: list 118 permitted tcp 10.1.64.71(0) -> 10.0.29.3(0), 56 packets





2、说明

● 可以使用于任何端口的input 或者output

● 可以看到目前端口上跑的应用

● 没有统计信息,只能看到有那一些地址,看不到应用统计
 楼主| 发表于 2007-11-19 21:13:40 | 显示全部楼层
  •    [url=]Cisco上实现mrtg流量监控[/url]





    1. 使用一台windows2000或windowsXP 操作系统作为管理主机并配置IIS服务。2. 安装Active Perl 程序 (不一定安装到c:/下),需重启主机。3. 将MRTG 程序解压到C:/ 根目录下。4. 在C盘下新建C:\ www\mrtg 文件夹。5. 进入路由器配置模式下,输入以下命令(按顺序输入)。Snmp-server community public ROSnmp-server trap-source F0/1\\ 以f0/1 为监控源。
    Snmp-server contact public @ 123.com
    \\ 设置管理者邮箱。
    Snmp-server host XX.XX.XX.XX public
    \\ 设置管理主机 IP 地址。
    Snmp-server enable traps
    \\ 启动监控
    6. 进入C:\mrtg-2.9.29(mrtg解压文件)\mrtg-2.9.29\bin. 打开mrtg.cfg 文件,在第一段的前面添加。
    RunAsDaemon: yes \\ 添加此句。
    # Created by
    # cfgmaker public@XX.XX.XX.XX --global 'workdir: c:\www\mrtg' --output mrtg.cfg
    7.在命令提示窗口下进入C:\mrtg-2.9.29(mrtg解压文件)\mrtg-2.9.29\bin.
    1.输入perl cfgmaker public@XX.XX.XX.XX --global "workdir: c:\www\mrtg" --output mrtg.cfg
    \\ XX.XX.XX.XX 是路由器的局域网口地址
    2. 输入 perl indexmaker mrtg.cfg>c:\www\mrtg\index.htm
    3. 输入 perl mrtg -logging=mrtg.log mrtg.cfg
    输入后,应显示
    Daemonizing MRTG …
    Do Not close this window . Or MRTG will die
    表示配置正确,如要开始监控,此命令窗口不要关闭。
    8.打开新建的C:/www/mrtg/index.htm 即为监控流量图。
    9. 如果重启后,只需在命令提示窗口下 的C:\mrtg-2.9.29(mrtg解压文件)\mrtg-2.9.29\bin. 输入perl mrtg -logging=mrtg.log mrtg.cfg 即可。



 楼主| 发表于 2007-11-19 21:14:27 | 显示全部楼层
用MRTG在IIS 6.0上实现入侵检测功能   
MRTG(Multi Router Traffic Grapher)是一个跨平台的监控网络链路流量负载的工具软件,目前它可以运行在大多数Unix系统和Windows NT之上。它通过snmp协议从设备得到设备的流量信息,并将流量负载以包含PNG格式的图形的HTML 文档方式显示给用户,以非常直观的形式显示流量负载。

      或许你还不知道,MRTG还是一个有效的入侵检测工具。大家都知道,入侵者扫描与破坏后都能生成一些异常的网络流量,而人们在一般情况下是意识不到的。但是MRTG却能通过图形化的形式给管理员提供入侵的信息。并可以查出数周之前的入侵信息,以备管理员参考。


             一,攻击行为对服务器造成的信息

    1,攻击者使用CGI漏洞扫描器对潜在的CGI漏洞脚本进行扫描时,HTTP 404 Not Found errors的记录会增长。

    2,攻击者尝试暴力破解服务器上的帐户,HTTP 401 Authorization Required errors 的记录会增长。

    3,一种新的蠕虫出现,某一个特定的协议的流量会增长。

    4,蠕虫通过傀儡主机,攻击其他的服务器,出外的流量增加,并增大CPU的负荷。

    5,入侵者尝试SQL injection攻击,HTTP 500 Server Errors记录会增长。

    6,垃圾邮件发送者在网络上寻找中继SMTP服务器来发送垃圾邮件,会造成SMTP的和DNS lookups流量大增,同时造成CPU负荷增大。

    7,攻击者进行DDOS攻击,会造成ICMP流量,TCP连接,虚假的IP,多播广播流量大增。造成浪费大量的带宽。


     看完上面的,我们可以总结出,攻击者要入侵必须会影响到服务器的这些资源:: CPU, RAM,磁盘空间,网络连接和带宽。入侵者还有可能对服务器建立进程后门,开放端口,他们还对他们的入侵行为进行伪装掩盖,避免遭到入侵检测系统的监视。

            二,攻击者使用以下的方法避免被检测到:

  1,探测扫描很长时间后,才进行真正的入侵进攻。

  2,从多个主机进行攻击,避免单一的主机记录。
  
  3,尽量避免入侵造成的CPU, RAM和驱动器的负荷。

  4,利用管理员无人职守时入侵,在周末或者节假日发起攻击。

            三,对于IIS 6,我们需要监视的是

   1,网络流量,包括带宽,数据包,连接的数量等。

   2,网络协议的异常错误。
   
   3,网站的内外流量,包括用户的权限设置,外部请求的错误流量等。

   4,线程和进程。

            四,在Windows 2003下安装MRTG

      在使用MRTG之前,你需要在你的服务器里安装SNMP 服务。具体步骤如下:从控制面板中选择添加/删除程序,点击添加和删除windows组件。管理和监视工具中的详细资料里就可以找到简单网络管理协议,即可安装。

      安装成功后,你需要立刻安全配置一下,我们大家都知道,SNMP在网络上决不是一个安全的协议,你可以通过http://support.microsoft.com/?kbid=324261这个连接来具体了解。但是我们只是在本地使用SNMP,但是还是建议你通过防火墙屏蔽SNMP的161与162端口和使用IPSec。并且要配置为obscure community string。在管理工具中,在服务中选择安全,设为只读访问。尽管community string安全问题不多,但是你还是要避免使用community string为只读访问。


      MRTG是一个用Perl编译的C程序。你还要安装ActivePerl来解决支持脚本的问题。下载最新的MRTG。可以到http://people.ee.ethz.ch/~oetiker/webtools/mrtg/pub/下载,
注意要选择.zip的文件下载。这篇文章所使用的版本请到http://securityfocus.com/microsoft/images/burnett_MRTG_files.zip下载。
把MRTG解压到C:\Program Files\MRTG目录下。

      在你的Inetpub目录下为MRTG建立一个子目录。为了安全,不要建立在wwwroot目录下。然后,使用IIS建立一个MRTG的新站点。如果可能的话,最好能为MRTG站点配置一个主机头和一个独立的IP。也可以在一个已存在的目录下为MRTG站点建立一个合法的虚拟目录,也能达到同样的目的。
  
      注意,在新建立的MRTG站点不要运行可执行的脚本,只提供只读访问。在NTFS下,要注意对用户的权限的设置。如果可能的话,最好对指定MRTG站点的IP来选择特定的主机。

      现在,就可以把配置文件放到C:\Program Files\MRTG\Bin下了,并把index.html 文件拷贝到你的\Inetpub\MRTG 目录下。

      下面,我们来测试一下,在命令提示符下输入:

   C:\ProgramFiles\MRTG>perl mrtg mrtg.cfg

      如果一些正常的话,就会在在你的MRTG站点就有了一些配置文件。如果安装失败,你可以回顾一下你安装的步骤,是否有错误,并参考MRTG 的参考手册。
   
             五,具体配置SNMP计数器

      图1为我所配置的MRTG的以及所获得流量的截图:

      尽管微软提供了SNMP的计数器,但是我发现它对一些应用程序支持有些问题,然而,MRTG却能从很多的应用程序中得到消息。但是我们通过Windows Management Instrumentation (WMI) 也能得到包括所有的计数器的性能信息。同SNMP不同的是,微软在WMI下了很大的时间和金钱。比如:我想得到关于线程和进程的信息,我可以使用以下的脚本轻易实现:

Set oWService=GetObject("winmgmts:\\localhost\root\cimv2")
Set colItems=oWService.ExecQuery("SELECT * FROM Win32_PerfFormattedData_PerfOS_System",,48)

For Each Item in colItems
    Param1=Param1 + Item.Processes
    Param2=Param2 + Item.Threads
    Uptime=Item.SystemUptime
Next

WScript.Echo Param1
WScript.Echo Param2
WScript.Echo Uptime & " seconds"
WScript.Echo "LocalHost"

Another problem I had was getting detailed or custom web statistics through either SNMP or WMI. To solve that, I used Microsoft's LogParser tool to run custom queries from a simple batch file:

@for /f "tokens=1,2,3,4* delims=/ " %%i in ('date /t') do @set year=%%l&& @set month=%%j&& @set day=%%k
@set logfile=c:\windows\system32\LogFiles\%1\ex%YEAR:~2,2%%month%%day%.log
@If Exist %logfile% (
     @logparser "SELECT COUNT(*) FROM %logfile% WHERE (sc-status>= 400AND sc-status<500)
     AND TO_TIMESTAMP(date, time) > SUB(SYSTEM_TIMESTAMP(), TO_TIMESTAMP('5','m'))" -q
     @logparser "SELECT COUNT(*) FROM %logfile% WHERE (sc-status>= 500AND sc-status<600)
     AND TO_TIMESTAMP(date, time) > SUB(SYSTEM_TIMESTAMP(), TO_TIMESTAMP('5','m'))" -q
) ELSE (
     @Echo %logfile%
     @Echo 0
)
@Echo Unknown
@Echo %1

     因为微软的日志记录工具也非常强大,和MRTG的计数器配合使用,在加上免费的入侵检测系统Snort,效果会更好。
         
              六,最后

     在你自定义的完你的计数器完成之后,通过图行化的状况就可以轻易的找出入侵者。可以在网站http://snmpboy.msft.net看到在Windows 2003 server中的snmp更多的信息。
 楼主| 发表于 2007-11-20 15:12:07 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|boway Inc. ( 冀ICP备10011147号 )

GMT+8, 2024-5-17 15:06 , Processed in 0.122639 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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