Отслеживание / захват всего трафика между Apache и Weblogic на Solaris

StackOverflow https://stackoverflow.com/questions/1373181

Вопрос

У нас есть приложение, в котором встроенное устройство взаимодействует с weblogic через Apache.Weblogic и Apache находятся на одном сервере Solaris, и мы используем модуль weblogic для Apache.

Связь работает по протоколу http

Это не работает по протоколу https, хотя проблема, по-видимому, напрямую не связана с https (сеанс SSL согласовывается нормально, и происходит некоторое переключение туда-сюда).Похоже, что устройство обрабатывает связь по-другому, когда используется https.

Мы хотели бы видеть http / https запросы и ответы для отладки этого.

Мы можем передавать данные между устройством и сервером с помощью (например) wireshark, но они зашифрованы, поэтому не очень помогают.Wireshark (или snoop) не видит локальный трафик на сервере между Apache и Weblogic.Примечание:в Linux мы могли бы это сделать, но не в Solaris.

На самом деле нам не нужен низкоуровневый захват пакетов Wireshark - было бы достаточно захватить заголовки и тело http-запросов и ответов.

Кто-нибудь знает, как с этим поступить?Есть ли мод apache, который, возможно, будет регистрировать все проходящие запросы и ответы (Google не показал ничего очевидного).Есть какие-нибудь другие творческие способы сделать это?

Это было полезно?

Решение

Это могло бы оказать некоторую помощь.http://httpd.apache.org/docs/2.2/mod/mod_log_forensic.html

Другие советы

Я спросил аналогичный вопрос по ServerFault, и лучшим ответом, по-видимому, было настроить TCP-прокси на другом компьютере и заставить все коммуникации проходить через него.

Так что вместо:

Weblogic -> Apache

Вы бы так и сделали:

Weblogic -> (across network) TCP Proxy -> (across network) -> Apache

Тогда вы могли бы делать все, что захотите, tcpdump / wiresharking.Я использовал ринетд это сработало хорошо, но я знаю, что, по крайней мере, в Linux встроенный inetd также имеет возможность выполнять проксирование (и ведение журнала).

Обновить: Если вы ничего не можете сделать по сети, вы могли бы использовать ту же концепцию и что-то вроде Tcpпрокси или что-то подобное (возможно, даже ваш обычный inetd) для выполнения проксирования и ведения журнала.Вы могли бы даже использовать Netcat ( Сетевой Кот ) в качестве Прокси - сервер TCP.Кто-то другой тоже предложенный использование DTrace для отслеживания трафика обратной связи, поскольку это может быть подключено прямо к ядру.

Выбранная мной программа захвата TCP называется баланс.

 _           _
| |__   __ _| | __ _ _ __   ___ ___
| '_ \ / _` | |/ _` | '_ \ / __/ _ \
| |_) | (_| | | (_| | | | | (_|  __/
|_.__/ \__,_|_|\__,_|_| |_|\___\___|
  this is balance 3.42
  Copyright (c) 2000-2007,2008
  by Inlab Software GmbH, Gruenwald, Germany.
  All rights reserved.

Он разработан как утилита балансировки нагрузки tcp, но с использованием флага сброса пакетов -p он довольно хорошо регистрирует весь входящий и исходящий трафик.Он отображает ASCII в формате ASCII и кодирует все как шестнадцатеричное.Он отлично работает как некорневой при использовании портов> 1024.

Вы могли бы использовать ферменная конструкция для захвата сокета выполняется чтение и запись, выполняемые одним из процессов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top