MITM прокси — как перехватывать запросы пользователей в режиме обратного прокси с внутреннего / внешнего сервера веб-приложений

#reverse-proxy #mitmproxy

#обратный прокси #mitmproxy

Вопрос:

Я новичок в mitm. https://mitmproxy.org /

На AppServer1 (сервере Windows 2016) запущено наше веб-приложение IIS (WebApp1) (в настоящее время оно работает нормально без каких-либо проблем). Я также добавил SSL-сертификат, и он загружается нормально без каких-либо проблем.Chrome показывает, что ему доверяют («Соединение безопасно» при переходе с внутреннего и внешнего сервера AppServer1, но «в локальной сети». Пока мы не разрешили доступ пользователям Интернета, пока приложение не будет полностью готово.)

У нас есть бизнес-требование, при котором

  • нам нужно перехватывать весь трафик / запросы от пользователей с внешнего сервера приложений 1
  • и отправлять их в другое созданное нами приложение (UserRequestDashboardApp),
  • и также нам нужен mitm для отправки его в WebApp1.

Я несколько раз читал статьи и, насколько я понимаю, режим обратного прокси-сервера является правильным вариантом для нашего требования.

WebApp1 запущен по URL-адресу — customappservice1.com, порт — 443

Затем я запустил mitm (версия 4.0.4) со следующей командой CMD

 .mitmdump -p 8080 --mode reverse:https://customappservice1.com
  

Я получаю статус прокси-сервера, прослушивающего http://*:8080

Кажется, я не вижу никакого трафика в терминале при вводе customappservice1.com в браузере Chrome на AppServer1 или в любом браузере сервера за пределами AppServer1. Страницы WebApp1 нормально загружаются снаружи и внутри сервера AppServer1, но на терминале вообще нет трафика

Может кто-нибудь, пожалуйста, помочь мне захватить трафик на терминале в качестве начального шага перед отправкой трафика / запросов в UserRequestDashboardApp И WebApp1?

Я попытался запустить mitm в обычном режиме, и он работает нормально (я могу нормально видеть трафик / запросы в терминале)

  • Я запустил mitm в CMD (там написано, что прокси-сервер прослушивает http://*:8080)
  • Я установил
    • Прокси-сервер Windows для = localhost
    • Порт = 8080

Комментарии:

1. Адаптировали ли вы внешние записи DNS, чтобы указывать на сервер, на котором запущен mitmproxy? В противном случае никто не будет использовать mitmproxy и напрямую подключаться к серверу. Обратите внимание, что в обратном режиме с HTTPS вы должны снабдить mitmproxy сертификатом сервера. Но ИМХО mitmproxy — это неправильное программное обеспечение для регистрации запросов в продуктивной системе. Обычным способом было бы, например, использование NGINX для завершения SSL / TLS.

2. Привет @Robert, большое спасибо за ваш совет о сертификате. На веб-сайте MITM ничего не сказано о необходимости использования сертификата .pem с обратным прокси. Я попробовал это в новой команде mitmdump -p 8080 —mode reverse: localhost —listen-host 0.0.0.0 —certs *=customappservice1.pem Затем я указал файл хоста внешнего сервера (server2), чтобы указывать на AppServer1 при вводе customappservice1.com в браузере. При переходе с server2 я получаю сообщение об ошибке Не найдено. Ошибка HTTP 404. Источник запроса не найден . Но терминал MD показывает ** GET localhost <<404 не найден 315b

3. @Robert …продолжение. Ссылка . Могу ли я в любом случае отправить полученные запросы в WebApp1, чтобы мы не видели Не найдено. Ошибка HTTP 404. Источник запроса не найден. ошибка в веб-браузере server2. БОЛЬШОЕ СПАСИБО за вашу помощь, пока что мы высоко ценим!

Ответ №1:

Вы пытались настроить свои запросы на использование адреса mitmproxy ?

Кроме того, веб-браузеры могут использовать отдельную конфигурацию прокси-сервера от конфигурации операционной системы. Итак, вы можете попробовать настроить параметры прокси-сервера Chrome.