简单介绍一下对IIS Log的分析和相应的分析程序

 

简单介绍对IISLog的分析

    IIS日志对于了解IISAction有很重要的作用,在这里简单介绍一下,日志格式建议使用W3C扩充日志文件格式,这也是IIS 5.0默认的格式,可以指定每天记录客户IP地址、用户名、服务器端口、方法、URI资源、URI查询、协议状态、用户代理,每天要审查日志等等信息。

      IIS 5.0WWW日志文件默认位置为%systemroot%/system32/logfiles/w3svc1/,对于绝大多数系统而言(如果安装系统时定义了系统存放目录则根据实际情况修改)则是C:/winnt/system32/logfiles/w3svcl/,默认每天一个日志。建议不要使用默认的目录,更换一个记录日志的路径,同时设置日志访问权限,只允许管理员和SYSTEM为完全控制的权限,这样能够更加安全。

      日志文件的名称格式是以日期和时间来命名的:ex+年份的末两位数字+月份+日期,如2009610日的WWW日志文件是ex090610.logIIS的日志文件都是文本文件,可以使用任何编辑器打开,例如记事本程序。

 

IISFTP日志文件默认位置为%systemroot%/system32/logfiles/MSFTPSVC1/,对于绝大多数系统而言(如果安装系统时定义了系统存放目录则根据实际情况修改)则是C:/winnt/system32/logfiles/ MSFTPSVC1/,和IISWWW日志一样,也是默认每天一个日志。日志文件的名称格式是:ex+年份的末两位数字+月份+日期,如2009610日的WWW日志文件是ex090610.log。它也是文本文件,同样可以使用任何编辑器打开,例如记事本程序。和IISWWW日志相比,IISFTP日志文件要丰富得多。下面列举日志文件的部分内容。

 

可以通过日志文件的内容看出,来自IP地址。。。的远程客户从2009610615开始试图登录此服务器,先后换了4次用户名和口令才成功,最终以administrator的账户成功登录。这时候就应该提高警惕,因为administrator账户极有可能泄密了,为了安全考虑,应该给此账户更换密码或者重新命名此账户。如何辨别服务器是否有人曾经利用过UNICODE漏洞入侵过呢?可以在日志里看到记录。如果入侵者技术比较高明,会删除IIS日志文件以抹去痕迹,这时可以到事件查看器看来自W3SVC的警告信息,往往能找到一些线索。

 

Log中各个字段带面的意义:

date 2009-07-01

time 01:48:51

s-sitename   

 W3SVC2053582462数字序列可以在

C:/WINDOWS/system32/inetsrv/MetaBase.xml中查找,与iis中的web sites对应。

s-ip IP

cs-method    1Get是用来从服务器上获得数据

2Post是用来向服务器上传递数据

cs-uri-stem    /sites/30000/_layouts/viewlsts.aspx

                      /_layouts/1033/ie55up.js

                      /_layouts/images/menudark.gif

cs-uri-query rev=VhAxGc3rkK79RM90tibDzw%3D%3D

                      rev=Ni7%2Fj2ZV%2FzCvd09XYSSWvA%3D%3D

cs-uri-stem+ cs-uri-query实际地址

s-port           源端口

cs-username 访问权限用户

c-ip                访问IP

cs(User-Agent)

Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.2;+SV1;+.NET+CLR+1.1.4322;+InfoPath.2;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.04506.30)

sc-status     http状态 200访问成功;

401不成功,继续访问直到200

304访问成功,访问的页在cache中存在,刷新情况下304ctrl+F5状态下是200

sc-substatus  http子状态, sc-status 401 sc-substatus 1 http状态为401.1

sc-win32-status

32位机位0,同时其它数字通过NET HELPMSG命令查询

 

同时log中的field可以扩展

Server Name 计算机名

Byte Sent 发送字节

Byte Received 接收字节

Time Taken 花费时间

Protocol version http1.0

Host alex:3000

User agent

Cookie

userid=Anonymous_77846.95646649468;+MSOWebPartPage_AnonymousAccessCookie=5000;+WSS_KeepSessionAuthenticated=5000;+__ac=session=583993108.6222332*LastVisitURL=http://alex:5000/Lists/Calendar/calendar.aspx*LastEventId=6759;+Microsoft.SharePoint.Administration.SPWebApplication=CurrentId=80147b28-ab03-473c-a4fd-baee4e7ee71a;+__ld=%3Cevent%3E%3C%21%5BCDATA%5Bent%3D%26u%3Dhttp%253A//alex%253A5000/Lists/Calendar/calendar.aspx%26t%3D%26X%3D1844%26Y%3D6759%26et%3D1%26timestamp%3D2009-07-01%2014%3A55%3A15.000%26%5D%5D%3E%3C/event%3E

Referrer The Web page that provided the link to the Web site

提供链接的webpage  

 

 

分析IIS Log的主要代码如下:

Private void AnalyzeIISLog()

{

if (this.openDialog.ShowDialog() == DialogResult.OK)

            {

                this.tabControl1.TabPages.Clear();

                FileInfo info = new FileInfo(this.openDialog.FileName);

                FileStream stream = info.OpenRead();

                byte[] buffer = new byte[stream.Length];

                stream.Read(buffer, 0, (int)stream.Length);

                string[] strArray = Encoding.Default.GetString(buffer).Split(new char[] { '/r', '/n' });

                ListView view = null;

                foreach (string str2 in strArray)

                {

                    if (str2 != "")

                    {

                        if (str2.Substring(0, 7) == "#Date: ")

                        {

                            TabPage page = new TabPage(str2.Substring(7));

                            view = new ListView();

                            view.MultiSelect = true;

                            view.Dock = DockStyle.Fill;

                            view.View = View.Details;

                            view.FullRowSelect = true;

                            view.GridLines = true;

                            view.HideSelection = false;

                            page.Controls.Add(view);

                            this.tabControl1.TabPages.Add(page);

                        }

                        else if (str2.Substring(0, 9) == "#Fields: ")

                        {

                            string[] strArray2 = str2.Substring(9).Split(new char[] { ' ' });

                            foreach (string str3 in strArray2)

                            {

                                if (str3 != "")

                                {

                                    view.Columns.Add(str3);

                                }

                            }

                            foreach (ColumnHeader header in view.Columns)

                            {

                                header.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize);

                            }

                        }

                        else if ((str2 != "") && (str2[0] != '#'))

                        {

                            string[] strArray3 = str2.Split(new char[] { ' ' });

                            ListViewItem item = view.Items.Add(strArray3[0]);

                            for (int i = 1; i < strArray3.Length; i++)

                            {

                                item.SubItems.Add(strArray3[i]);

                            }

                        }

                    }

                }

                this.Text = "AnalyseIISLogTool-[" + info.FullName + "]";

            }

       

主要是IIS Log中各个字段是以空格分开的,所以我们将各个字段分开,并且取得相对应的数据,显示在ListView中。实现取得IIS Log的数据。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值