用MRTG在IIS上实现入侵检测功能

运维 系统运维
用MRTG在IIS上实现入侵检测功能:MRTG是利用SNMP协议去查询指定有SNMP协议的设备,定时统计其设备的流量或负载,再将统计结果绘成统计图,从统计图上能很容易、直观地就能查出流量或负载。本文讲述的是用MRTG在IIS上实现入侵检测功能。

  用MRTGIIS上实现入侵检测功能

  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,利用管理员无人职守时入侵,在周末或者节假日发起攻击。

#p#

  三,对于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 目录下。

#p#

  五,具体配置SNMP计数器

  我所配置的MRTG的以及所获得流量:

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

  1.   Set oWService=GetObject("winmgmts:\\localhost\root\cimv2")  
  2.  
  3.   Set colItems=oWService.ExecQuery("SELECT * FROM Win32_PerfFormattedData_PerfOS_System",,48)  
  4.  
  5.   For Each Item in colItems  
  6.  
  7.   Param1Param1=Param1 + Item.Processes  
  8.  
  9.   Param2Param2=Param2 + Item.Threads  
  10.  
  11.   Uptime=Item.SystemUptime  
  12.  
  13.   Next  
  14.  
  15.   WScript.Echo Param1  
  16.  
  17.   WScript.Echo Param2  
  18.  
  19.   WScript.Echo Uptime & " seconds"  
  20.  
  21.   WScript.Echo "LocalHost"  
  22.  
  23.   Another problem I had was getting detailed or custom web statistics through  
  24.  
  25.   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  
  26.  
  27.   month=%%j&& @set day=%%k  
  28.  
  29.   @set logfile=c:\windows\system32\LogFiles\%1\ex%YEAR:~2,2%%month%%day%.log  
  30.  
  31.   @If Exist %logfile% (  
  32.  
  33.   @logparser "SELECT COUNT(*) FROM %logfile% WHERE (sc-status>= 400AND sc-status<500)  
  34.  
  35.   AND TO_TIMESTAMP(date, time) > SUB(SYSTEM_TIMESTAMP(), TO_TIMESTAMP(’5’,’m’))" -q  
  36.  
  37.   @logparser "SELECT COUNT(*) FROM %logfile% WHERE (sc-status>= 500AND sc-status<600)  
  38.  
  39.   AND TO_TIMESTAMP(date, time) > SUB(SYSTEM_TIMESTAMP(), TO_TIMESTAMP(’5’,’m’))" -q  
  40.  
  41.   ) ELSE (  
  42.  
  43.   @Echo %logfile% @Echo 0  
  44.  
  45.   )  
  46.  
  47.   @Echo Unknown  
  48.  
  49.   @Echo %1  
  50.  

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

  六,最后

  在你自定义的完你的计数器完成之后,通过图行化的状况就可以轻易的找出入侵者。

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

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

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

【编辑推荐】

Linux下用mrtg监控网络设备端口流量

FreeBSD下安装MRTG监控流量

通过路由器利用MRTG进行网络监控

责任编辑:zhaolei 来源: 安全中国
相关推荐

2011-03-31 11:14:14

2011-04-01 15:00:35

2011-04-01 14:48:29

配置SNMPMRTG

2014-11-18 14:12:19

CentOS入侵检测系统

2011-03-30 15:05:19

RedHad安装MRTG

2009-04-21 13:54:20

2011-03-31 11:14:29

MRTG监测

2015-09-10 09:18:33

2010-09-08 13:49:36

2010-09-08 11:02:15

2010-08-25 13:46:28

入侵检测IDS

2011-02-14 10:46:37

ChromeIE 9固定网站

2016-10-24 09:40:53

CentOS高级入侵检测

2015-01-27 10:18:38

入侵检测系统AIDECentOS

2011-03-30 13:29:51

MRTG

2011-03-30 13:40:21

MRTG

2009-03-23 10:04:46

Java Web入侵检Java Web应用EasyJWeb

2009-07-16 08:55:08

Windows 7IIS日志记录

2010-08-26 09:12:01

2022-12-23 14:05:41

点赞
收藏

51CTO技术栈公众号