当前位置:首页>>软件教程>>操作系统>>新闻内容
用MRTG在IIS上实现入侵检测功能
作者:佚名 发布时间:2004-9-22 10:55:43 文章来源:西部E网

  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计数器

  尽管微软提供了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更多的信息。


最新更新
·教你删除Windows 7自动创建的
·检测你的计算机是否能运行Wi
·如何安装Windows 7 RC的中文
·解决Vista关闭UAC后边栏无法
·Windows 7 RC新功能XP Mode详
·Windows7操作系统硬件配置要
·wubi安装Ubuntu 9.04失败的原
·如何修改Windows7的软件默认
·在Windows7在硬盘升级Window
·vista在硬盘下全新安装Windo
相关信息
放生
愚爱
够爱
触电
白狐
心跳
知足
犯错
降临
分爱
葬爱
光荣
画心
火花
稻香
爱得起
这种爱
大丈夫
花蝴蝶
二缺一
小酒窝
下雨天
右手边
安静了
棉花糖
明天过后
边做边爱
擦肩而过
没有如果
怀念过去
等一分钟
越来越爱
寂寞暴走
你的承诺
Nobody
我们都一样
永远在身边
天使的翅膀
原谅我一次
i miss you
原谅我一次
吻的太逼真
姑娘我爱你
做你的爱人
一定要爱你
飞向别人的床
爱上别人的人
感动天感动地
心在跳情在烧
不潮不用花钱
如何能把你忘记
即使知道要见面
爱上你是一个错
最后一次的温柔
爱上你是我的错
怎么会狠心伤害我
亲爱的那不是爱情
伤心时候可以听情歌
爱上你等于爱上了错
不是因为寂寞才想你