Модуль Apache mod_log_forensic
| Описание: | Криминалистическое журналирование запросов, поступающих на сервер |
|---|---|
| Статус: | Расширение |
| Идентификатор модуля: | log_forensic_module |
| Исходный файл: | mod_log_forensic.c |
| Совместимость: |
mod_unique_id больше не требуется начиная с версии 2.1 |
Краткое описание
Этот модуль обеспечивает криминалистическое журналирование запросов клиентов. Запись в журнал выполняется до и после обработки запроса, поэтому журнал криминалистического анализа содержит две строки для каждого запроса. Криминалистический механизм журналирования работает очень строго, а это означает следующее:
- Формат фиксирован. Изменить формат журнала во время выполнения нельзя.
- Если модулю не удаётся записать данные, дочерний процесс немедленно завершается и может создать дамп памяти (в зависимости от конфигурации
CoreDumpDirectory).
Скрипт check_forensic, который находится в каталоге support дистрибутива, может помочь при анализе содержимого журнала криминалистического анализа.
Формат журнала криминалистического анализа
Каждый запрос записывается в журнал дважды. Первая запись делается до дальнейшей обработки запроса (то есть после получения заголовков). Вторая запись создаётся после обработки запроса, одновременно с обычной записью в журнал.
Для идентификации каждого запроса ему назначается уникальный идентификатор. Этот криминалистический идентификатор можно записать и в обычный журнал передачи данных с помощью строки формата %{forensic-id}n. Если используется mod_unique_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...
Знак «плюс» в начале указывает, что это первая строка журнала для данного запроса. Вторая строка содержит только знак «минус» и идентификатор:
-yQtJf8CoAB4AAFNXBIEAAAAAСкрипт check_forensic принимает в качестве аргумента имя файла журнала. Он ищет пары идентификаторов +/- и сообщает, если обработка запроса не была завершена.
Вопросы безопасности
Подробные сведения о том, почему безопасность может быть нарушена, если каталог с файлами журналов доступен для записи кому-либо, кроме пользователя, запускающего сервер, см. в документе рекомендации по безопасности.
Файлы журналов могут содержать конфиденциальные данные, например содержимое заголовков Authorization: (в которых могут быть пароли), поэтому читать их должен иметь возможность только пользователь, запускающий сервер.
Директива ForensicLog
| Описание: | Задаёт имя файла журнала криминалистического анализа |
|---|---|
| Синтаксис: | ForensicLog filename|pipe |
| Контекст: | конфигурация сервера, виртуальный хост |
| Статус: | Расширение |
| Модуль: | mod_log_forensic |
Директива ForensicLog используется для журналирования запросов к серверу с целью криминалистического анализа. Каждой записи журнала назначается уникальный идентификатор, который можно связать с запросом с помощью обычной директивы CustomLog. mod_log_forensic создаёт токен forensic-id, который можно добавить в журнал передачи данных с помощью строки формата %{forensic-id}n.
Аргумент, указывающий место записи журналов, может принимать одно из следующих двух значений:
- имя_файла
- Имя файла относительно
ServerRoot. - канал
- Символ канала «
|», за которым следует путь к программе, получающей информацию журнала через стандартный ввод. Имя программы может быть указано относительно директивыServerRoot.Безопасность:
Если используется программа, она будет запущена от имени пользователя, запустившего
httpd. Если сервер запущен от имени root, программа также будет запущена от имени root; убедитесь, что программа безопасна или переключается на пользователя с меньшими привилегиями.Примечание
При указании пути к файлу на платформах, отличных от Unix, следует использовать только прямые косые черты, даже если платформа допускает использование обратных косых черт. В целом рекомендуется всегда использовать прямые косые черты во всех файлах конфигурации.
© 2018 The Apache Software Foundation
Licensed under the Apache License, Version 2.0.
https://httpd.apache.org/docs/2.4/en/mod/mod_log_forensic.html