日志文件,它记录着Windows系统及其各种服务运行的每个细节,对增强Windows的稳定和安全性,起着非常重要的作用。但许多用户不注意对它保护,一些“不速之客”很轻易就将日志文件清空,给系统带来严重的安全隐患。
一、什么是日志文件
日志文件是Windows系统中一个比较特殊的文件,它记录着Windows系统中所发生的一切,如各种系统服务的启动、运行、关闭等信息。Windows日志包括应用程序、安全、系统等几个部分,它的存放路径是“%systemroot%\system32\config”,应用程序日志、安全日志和系统日志对应的文件名为AppEvent.evt、SecEvent.evt和SysEvent.evt。这些文件受到“Event Log(事件记录)”服务的保护不能被删除,但可以被清空。
二、如何查看日志文件
在Windows系统中查看日志文件很简单。点击“开始→设置→控制面板→管理工具→事件查看器”,在事件查看器窗口左栏中列出本机包含的日志类型,如应用程序、安全、系统等。查看某个日志记录也很简单,在左栏中选中某个类型的日志,如应用程序,接着在右栏中列出该类型日志的所有记录,双击其中某个记录,弹出“事件属性”对话框,显示出该记录的详细信息,这样我们就能准确的掌握系统中到底发生了什么事情,是否影响Windows的正常运行,一旦出现问题,即时查找排除。
三、Windows日志文件的保护
日志文件对我们如此重要,因此不能忽视对它的保护,防止发生某些“不法之徒”将日志文件清洗一空的情况。
1、修改日志文件存放目录
Windows日志文件默认路径是“%systemroot%\system32\config”,我们可以通过修改注册表来改变它的存储目录,来增强对日志的保护。
点击“开始→运行”,在对话框中输入“Regedit”,回车后弹出注册表编辑器,依次展开“HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Eventlog”后,下面的Application、Security、System几个子项分别对应应用程序日志、安全日志、系统日志。
以应用程序日志为例,将其转移到“d:\cce”目录下。选中Application子项(如图),在右栏中找到File键,其键值为应用程序日志文件的路径“%SystemRoot%\system32\config\AppEvent.Evt”,将它修改为“d:\cce\AppEvent.Evt”。接着在D盘新建“CCE”目录,将“AppEvent.Evt”拷贝到该目录下,重新启动系统,完成应用程序日志文件存放目录的修改。其它类型日志文件路径修改方法相同,只是在不同的子项下操作。

2. 设置文件访问权限
修改了日志文件的存放目录后,日志还是可以被清空的,下面通过修改日志文件访问权限,防止这种事情发生,前提是Windows系统要采用NTFS文件系统格式。
右键点击D盘的CCE目录,选择“属性”,切换到“安全”标签页后,首先取消“允许将来自父系的可继承权限传播给该对象”选项勾选。接着在账号列表框中选中“Everyone”账号,只给它赋予“读取”权限;然后点击“添加”按钮,将“System”账号添加到账号列表框中,赋予除“完全控制”和“修改”以外的所有权限,最后点击“确定”按钮。这样当用户清除Windows日志时,就会弹出错误对话框。
四、Windows日志实例分析
在Windows日志中记录了很多操作事件,为了方便用户对它们的管理,每种类型的事件都赋予了一个惟一的编号,这就是事件ID。
1. 查看正常开关机记录
在Windows系统中,我们可以通过事件查看器的系统日志查看计算机的开、关机记录,这是因为日志服务会随计算机一起启动或关闭,并在日志中留下记录。这里我们要介绍两个事件ID“6006和6005”。6005表示事件日志服务已启动,如果在事件查看器中发现某日的事件ID号为6005的事件,就说明在这天正常启动了Windows系统。6006表示事件日志服务已停止,如果没有在事件查看器中发现某日的事件ID号为6006的事件,就表示计算机在这天没有正常关机,可能是因为系统原因或者直接切断电源导致没有执行正常的关机操作。
2. 查看DHCP配置警告信息
在规模较大的网络中,一般都是采用DHCP服务器配置客户端IP地址信息,如果客户机无法找到DHCP服务器,就会自动使用一个内部的IP地址配置客户端,并且在Windows日志中产生一个事件ID号为1007的事件。如果用户在日志中发现该编号事件,说明该机器无法从DHCP服务器获得信息,就要查看是该机器网络故障还是DHCP服务器问题。

五、WEB日志文件分析
以下列日志记录为例,进行分析:
#Software: Microsoft Internet Information Services 6.0
#Version: 1.0
#Date: 2006-09-24 07:19:27
#Fields: date time s-sitename s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status
2006-09-24 07:19:27 W3SVC1 192.168.99.173 GET /index.asp - 80 - 192.168.99.236 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1) 200 0 0
2006-09-24 07:19:27 W3SVC1 192.168.99.173 GET /sxjyzx/sxjyzx/css.css - 80 - 192.168.99.236 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1) 200 0 0
2006-09-24 07:19:27 W3SVC1 192.168.99.173 GET /sxjyzx/sxjyzx/1.gif - 80 - 192.168.99.236 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1) 200 0 0
2006-09-24 07:19:27 W3SVC1 192.168.99.173 GET /sxjyzx/sxjyzx/home_top_new2.jpg - 80 - 192.168.99.236 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1) 200 0 0
2006-09-24 07:19:27 W3SVC1 192.168.99.173 GET /sxjyzx/sxjyzx/2.gif - 80 - 192.168.99.236 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1) 200 0 0

分析:
date表示记录访问日期;
time访问时间;
s-sitename表示你的虚拟主机的代称。
s-ip;服务端ip
cs-method表示访问方法,常见的有两种,一是GET,就是平常我们打开一个URL访问的动作,二是POST,提交表单时的动作;
cs-uri-stem就是访问哪一个文件;
cs-uri-query是指访问地址的附带参数,如asp文件后面的字符串id=12等等,如果没有参数则用-表示;
s-port 访问的端口
cs-username 访问者名称
c-ip访问者IP
cs(User-Agent)访问来源;
sc-status状态,200表示成功,403表示没有权限,404表示打不到该页面,500表示程序有错;
sc-substatus 服务端传送到客户端的字节大小;
cs–win32-statu客户端传送到服务端的字节大小;

1**:请求收到,继续处理
2**:操作成功收到,分析、接受
3**:完成此请求必须进一步处理
4**:请求包含一个错误语法或不能完成
5**:服务器执行一个完全有效请求失败

100——客户必须继续发出请求
101——客户要求服务器根据请求转换HTTP协议版本
200——交易成功
201——提示知道新文件的URL
202——接受和处理、但处理未完成
203——返回信息不确定或不完整
204——请求收到,但返回信息为空
205——服务器完成了请求,用户代理必须复位当前已经浏览过的文件
206——服务器已经完成了部分用户的GET请求
300——请求的资源可在多处得到
301——删除请求数据
302——在其他地址发现了请求数据
303——建议客户访问其他URL或访问方式
304——客户端已经执行了GET,但文件未变化
305——请求的资源必须从服务器指定的地址得到
306——前一版本HTTP中使用的代码,现行版本中不再使用
307——申明请求的资源临时性删除
400——错误请求,如语法错误
401——请求授权失败
402——保留有效ChargeTo头响应
403——请求不允许
404——没有发现文件、查询或URl
405——用户在Request-Line字段定义的方法不允许
406——根据用户发送的Accept拖,请求资源不可访问
407——类似401,用户必须首先在代理服务器上得到授权
408——客户端没有在用户指定的饿时间内完成请求
409——对当前资源状态,请求不能完成
410——服务器上不再有此资源且无进一步的参考地址
411——服务器拒绝用户定义的Content-Length属性请求
412——一个或多个请求头字段在当前请求中错误
413——请求的资源大于服务器允许的大小
414——请求的资源URL长于服务器允许的长度
415——请求资源不支持请求项目格式
416——请求中包含Range请求头字段,在当前请求资源范围内没有range指示值,请求也不包含If-Range请求头字段
417——服务器不满足请求Expect头字段指定的期望值,如果是代理服务器,可能是下一级服务器不能满足请求
500——服务器产生内部错误
501——服务器不支持请求的函数
502——服务器暂时不可用,有时是为了防止发生系统过载
503——服务器过载或暂停维修
504——关口过载,服务器使用另一个关口或服务来响应用户,等待时间设定值较长
505——服务器不支持或拒绝支请求头中指定的HTTP版本
FTP日志分析
FTP日志和WWW日志在默认情况下,每天生成一个日志文件,包含了该日的一切记录,文件名通常为ex(年份)(月份)(日期)。例如ex040419,就是2004年4月19日产生的日志,用记事本可直接打开,普通的有***行为的日志一般是这样的:
#Software: Microsoft Internet Information Services 5.0(微软IIS5.0)
#Version: 1.0 (版本1.0)
#Date: 20040419 0315 (服务启动时间日期)
#Fields: time cip csmethod csuristem scstatus
0315 127.0.0.1 [1]USER administator 331(IP地址为127.0.0.1用户名为administator试图登录)
0318 127.0.0.1 [1]PASS – 530(登录失败)
032:04 127.0.0.1 [1]USER nt 331(IP地址为127.0.0.1用户名为nt的用户试图登录)
032:06 127.0.0.1 [1]PASS – 530(登录失败)
032:09 127.0.0.1 [1]USER cyz 331(IP地址为127.0.0.1用户名为cyz的用户试图登录)
0322 127.0.0.1 [1]PASS – 530(登录失败)
0322 127.0.0.1 [1]USER administrator 331(IP地址为127.0.0.1用户名为administrator试图登录)
0324 127.0.0.1 [1]PASS – 230(登录成功)
0321 127.0.0.1 [1]MKD nt 550(新建目录失败)
0325 127.0.0.1 [1]QUIT – 550(退出FTP程序)
从日志里就能看出IP地址为127.0.0.1的用户一直试图登录系统,换了四次用户名和密码才成功,管理员立即就可以得知这个IP至少有***企图!而他的***时间、IP地址以及探测的用户名都很清楚的记录在日志上。如上例***者最终是用Administrator用户名进入的,那么就要考虑此用户名是不是密码失窃?还是被别人利用?接下来就要想想系统出什么问题了。