Apache HTTP Server 版本 2.4
描述 | 对服务器收到的请求进行取证日志记录 |
---|---|
状态 | 扩展 |
模块标识符 | log_forensic_module |
源文件 | mod_log_forensic.c |
兼容性 | mod_unique_id 从 2.1 版本开始不再需要 |
此模块提供对客户端请求进行取证日志记录。日志记录在处理请求之前和之后进行,因此取证日志包含每个请求的两个日志行。取证记录器非常严格,这意味着
CoreDumpDirectory
配置)。check_forensic
脚本(可在发行版的支持目录中找到)可能有助于评估取证日志输出。
每个请求都会记录两次。第一次是在处理之前(即在接收标头之后)。第二个日志条目是在处理请求之后,与正常日志记录同时写入。
为了识别每个请求,会分配一个唯一的请求 ID。此取证 ID 可以使用 %{forensic-id}n
格式字符串在正常的传输日志中交叉记录。如果您使用的是 mod_unique_id
,则会使用其生成的 ID。
第一行记录取证 ID、请求行和所有接收到的标头,用管道字符 (|
) 分隔。示例行如下所示(所有内容都在一行上)
+yQtJf8CoAB4AAFNXBIEAAAAA|GET /manual/de/images/down.gif HTTP/1.1|Host:localhost%3a8080|User-Agent:Mozilla/5.0 (X11; U; Linux i686; en-US; rv%3a1.6) Gecko/20040216 Firefox/0.8|Accept:image/png, etc...
开头的加号表示这是此请求的第一个日志行。第二行只包含一个减号和 ID
-yQtJf8CoAB4AAFNXBIEAAAAA
check_forensic
脚本以日志文件名作为参数。它查找这些 +
/-
ID 对,如果请求未完成,则会发出警告。
有关如果存储日志文件的目录可供除启动服务器的用户以外的任何人写入,为什么您的安全性可能会受到损害的详细信息,请参阅 安全提示 文档。
日志文件可能包含敏感数据,例如 Authorization:
标头的内容(可能包含密码),因此除了启动服务器的用户以外的任何人都不能读取它们。
描述 | 设置取证日志的文件名 |
---|---|
语法 | ForensicLog filename|pipe |
上下文 | 服务器配置、虚拟主机 |
状态 | 扩展 |
模块 | mod_log_forensic |
ForensicLog
指令用于记录对服务器的请求,以便进行取证分析。每个日志条目都会分配一个唯一的 ID,可以使用正常的 CustomLog
指令与请求关联。 mod_log_forensic
创建一个名为 forensic-id
的令牌,可以使用 %{forensic-id}n
格式字符串将其添加到传输日志中。
参数(指定写入日志的位置)可以采用以下两种类型的值之一
ServerRoot
的文件名。|
”,后跟接收其标准输入上的日志信息的程序的路径。程序名称可以相对于 ServerRoot
指令指定。如果使用程序,则该程序将以启动 httpd
的用户的身份运行。如果服务器是由 root 启动的,则该用户将是 root;请确保程序是安全的,或者切换到权限较低的用户。
在非 Unix 平台上输入文件路径时,应注意确保只使用正斜杠,即使平台可能允许使用反斜杠。通常,在整个配置文件中始终使用正斜杠是一个好主意。