日志中都记录了什么(转)

/ns/wz/sys/data/20010413070324.htm

虽然Apache和IIS的默认日记记录功能提供了一些资讯,但我们可以进一步优它们,使其发挥更大作用。以下我们介�B在默认状态下记录的资讯:
IIS
时间、用户IP地址、方法、URI(统一资源标识符)主干、HTTP状态
 

Apache
用户IP、独特的个人ID、用户名、日期、方法/ URI主干、HTTP状态、传输位元组数由此你可以发现Apache的日志更全面些;但是IIS的日志通过设置也可以具备同样功能。下面我们将介绍一些简单的步骤,使你可以在IIS的管理控制台中的网站属性对话方框中添加这些日志功能。

想变得与Apache能力相同,启动 User Name、 Protocol Version 及 Bytes Sent 等功能。 所有这些资讯都很有用,通常日志档案的大小不会造成什么问题,所以你应考虑将所有的项目都记录下�怼�

Apache 日志中记录了些什么?

对于弄Apache来说,实现自定义日志设置的确不太容易。它被控制在httpd.conf文件中--使用日志格式和自定义日志命令。日志格式与IIS扩展属性对话方框中的以话方框有些类似,它控制着那些需要记录的属性。自定义日志命令将日志文件默认命名为access_log;日志格式中的选项与IIS中的类似。下面是一些Apache日志选项 (英文)的清单:

%a: Remote IP address
%A: Local IP address
%B: Bytes sent, excluding HTTP headers
%b: Bytes sent, excluding HTTP headers. In CLF format,
i.e. a - (hyphen) rather than a 0 (zero) when no bytes are sent.
%{FOOBAR}e: The contents of the environment variable FOOBAR
%f: Filename
%h: Remote host
%H The request protocol
%{Foobar}i: The contents of Foobar: header line(s) in the request
sent to the server
%l: Remote logname (from identd, if supplied)
%m The request method
%{Foobar}n: The contents of note Foobar from another module
%{Foobar}o: The contents of Foobar: header line(s) in the reply
%p: The canonical port of the server serving the request
%P: The process ID of the child that serviced the request
%q The query string (prepended with a ? if a query string exists;
otherwise an empty string)
%r: First line of request
%s: Status. For requests that got internally redirected, this is
the status of the original request --- %...>s for the last.
%t: Time, in common log format time format (standard English format)
%{format}t: The time, in the form given by format, which should
be in strftime(3) format. Potentially localized.
%T: The time, in seconds, taken to serve the request
%u: Remote user (from auth; may be bogus if return status (%s) is 401)
%U: The URL path requested
%v: The canonical ServerName of the server serving the request
%V: The server name according to the UseCanonicalName setting

Apache默认的httpd.conf文件中的实际命令有点像下面的命令:

LogFormat "%h %l %u %t "%r" %>s %b" common

日志格式命令尾部的字符串公用区是日志文件的�e名,通进它我们可以辨�e出日志文件。为了使记录的资料符合已生成的普通简单,我们使用自定义日志命令(如下所示):

CustomLog ../apache/logs/access_log common

使用Apache时,我们可以运用附加的日志格式命令生成大量具有不同�热莸娜罩疚募�。例如,为了生成一个更全面的日志文件,我们使用以下日志格式命令:

LogFormat "%a %h %A %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" custom_logging

为将资料保存到日志文件中,我们可以生成如下自定义日志命令:

CustomLog ../apache/logs/custom_logging_access_log custom_logging

这启发我们如何去记录附加的资料,而不是确切地要记录什么。如前所述,如果选不所有选项的话,只有一小部分资料将被记录,因此考虑一下记录所有东西的做法吧。至少要考虑尽可能多地增加ip资讯(%a,%A)。记录服务器名称也 很重要,特别是同一服务器上多个虚拟主机的情况。不过,日志文件格式中的任何变化都会使某些日志分析器失灵,所以如果你决定记录附加的资料的话,记录到附加的日志文件中并保持原始普通表格

 
记录的频率

IIS的默认频率为每日记录。这种做法是通过扩展日志属性/一般属性标记不断控制的。日志记录的选项包括每天,每周,每月,不间断记录,或直到文件大小达到某一规定限度为止。根据你分析日志资料的方式,选择无限制文件大小选项或许对你将其保存到单一文件中更为有利。记住如果你选择此选项的话(或者除每日记录以外的任意选项),你需要添加日期作为扩展属性。否则,日期既不会出现在日志档案名中也不会出现在日志文件中。

Apache不断地将所有资料记录到自定义日志命令所定义的日记文件中。

何�r分析

分析日志文件的频率取�Q于很多因素,包括网站的重要程度、资讯的敏感程度和资源的可用性。无论你分析日志文件多么频繁,对最佳安全来说永远不�颍欢怨ぷ骼秩だ此涤涝短�多。我们建议选择每日分析,尽量利用自启日志扫描功能。同进也需要更深入的日志分析,因为典型的网站攻击会包含上百次独特的请求,攻击者可以通过增加请求之间的时间间隔来掩护攻击。在这种情�r下,分析单日日志文件不太可能提供可识�e的趋势。但是,如果分析一个星期、一个月、或一个季度的趋势的��,来自于同一主机的攻击就会很容易被识�e。


如何分析

分析日志文件是一件枯燥且费时的事情。日志文件是反应安全很好的标准:它们告知我们已经发生的事情。因而无论是入侵探测系统报告的CPU运行的峰值信号还是不规则网络流量,它们以其他证据的确证都大有帮助。当一个日志文件用来确证其他证据时,我们就可以进行有目的的分析了。例如,如果入侵探测系统报告在上午8:17时,网络服务器有一个TFTP连接的话,那么我们只需分析上午8:17以前生成的日志就可以了。

我们还需要分析网络服务器日志以获取攻击标识。尽管记事本中的查找功能有进确产有用,但却不是最有效的方式。进行趋势监测的网络分析工具对此很有帮助。例如,寻找从同一主机上发出的"404文件未找到"的错误资讯。那些开始具备中间脚本功能如Perl,shell以及其他一些脚本的语言为分析日志提供了强大而灵活的功能。其他方面还有大量免费工具可供选择。DaveCentral具有强大的页面统计(英文)列表功能和日志分析器(英文)。网络alizer (英文)和 w3perl(英文)是我们最喜欢用的工具,同时还有些商业工具帮助我们将资料收集到日志文件中。Wusage(英文)和网络Trends(英文)的各种分析产品都是我们的理想选择。

总结

网络日志文件对安全监测来说是无价之宝。作为攻击的标志和调查的资料来源,即使是在默认设置状态下,普通的网络服务器的访问日志也提供了大量资讯。尽管网络服务器的访问日志不是监测有关安全事件的最佳解�Q方案,但有�r却是唯一选择,特�e是在SSL环境下。

我们希望这一系列的文章能�蚴勾蠹叶酝�络服务器的访问日志有所了解。通过了解你的网络服务器的日志记录功能,在日志中识�e一般的攻击标志,并有效地分析日志,你就可以最大限度地保证网络服务器的安全