Отслеживание / захват всего трафика между Apache и Weblogic на Solaris
-
21-09-2019 - |
Вопрос
У нас есть приложение, в котором встроенное устройство взаимодействует с 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.
Вы могли бы использовать ферменная конструкция для захвата сокета выполняется чтение и запись, выполняемые одним из процессов.