Используйте Envoy для настройки туннеля между сетями

#proxy #firewall #tunnel #envoyproxy #mtls

#прокси #брандмауэр #туннель #envoyproxy #mtls

Вопрос:

Для варианта использования в гибридном облаке мы изучаем пригодность EnvoyProxy в качестве решения для перемещения данных через локальный брандмауэр. Предполагаемая настройка заключается в следующем:

  • Приложение A расположено в локальной сети без прямого исходящего или входящего подключения к Интернету
  • Приложение B находится в облаке
  • Прокси-сервер envoy (ПК) размещается в облаке
  • Прокси-сервер envoy (PA) размещается в локальной сети и настроен для разрешения исходящего сетевого подключения к ПК
  • PA создает открытое двунаправленное аутентифицированное TLS-соединение с ПК, эффективно создавая туннель между ними
  • Приложение B вызывает конечную точку API на ПК, которая направляется в PA через открытое соединение TLS и пересылается PA в приложение A

Маршрутизация данных с помощью Envoy в вышестоящие кластеры хорошо документирована. Однако нам интересно, может ли Envoy настроить TLS-соединение между двумя экземплярами прокси-сервера и использовать этот канал в обоих направлениях. Ограничение заключается в том, что это TLS-соединение может быть настроено только с одного направления (исходящего).

Если это возможно, может ли кто-нибудь указать мне правильное направление?

С наилучшими пожеланиями, Joost

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

1. Привет, Joost. Удалось ли вам решить эту проблему?

Ответ №1:

да, мы используем Envoy для создания туннелей mTLS между сетями

Видишь https://www.youtube.com/watch?v=nWKu7ThNKwMamp;list=PLHsuXkXI4xdjGlGkCBdxIAmkzfWXqsUrOamp;index=3

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

1. Привет, Ксанчез, спасибо за ссылку на видео. Я просмотрел его, и он использует множество протоколов, в которые мне все еще нужно глубоко погрузиться. Не могли бы вы быстро подтвердить, что настройка, предложенная в этом видео, позволяет Envoy подключаться к вышестоящей конечной точке envoy и что вышестоящий envoy может использовать это установленное соединение с нижестоящим для связи без использования нижестоящей конечной точки?

2. если под «без использования конечной точки нисходящего потока» вы подразумеваете, что связь является двунаправленной, нет. Вышестоящий посланник не прослушивает соединения, если соединение инициировано нижестоящим. Но вы могли бы использовать протокол через туннель envoy, такой как ssh, который разрешает удаленные входящие подключения

3. Таким образом, envoy открывает туннель из нисходящего потока в восходящий, восходящий поток должен подключаться к конечной точке кластера. В mycase его нет. Вы предполагаете, что конечная точка кластера ведет к прокси-серверу ssh, но как соединение возвращается к нижестоящему? Вы можете прочитать больше о моей проблеме здесь: если у вас есть время, я бы очень оценил ваш отзыв: github.com/envoyproxy/envoy/issues/22697

4. конечная точка кластера ведет к SSH-серверу, затем приложение dowstream может открыть SSH-соединение и использовать переадресацию удаленного порта ssh. Но в этом случае вам даже не понадобится envoy goteleport.com/blog/ssh-tunneling-explained

5. Да, это противоречит цели, но у Envoy combo есть некоторые преимущества, такие как MTLS, интеграция OPA, Authz. Но это побочные функции. Большое спасибо за ваше время @csanchez. Я приветствую вас. Кстати, отличное видео на YouTube, может быть, если у вас все еще есть доступ к исходным файлам конфигурации, было бы неплохо, если бы вы создали репозиторий с ними в нем. Помогает людям воспроизводить ваши настройки, как я. Всего наилучшего и еще раз спасибо за потраченное время на объяснения 🙂

Ответ №2:

В Azure мы используем службу гибридных подключений Azure relay для этого.

https://learn.microsoft.com/en-us/azure/azure-relay/relay-what-is-it

я думаю, ребята из aws могут создать приложение wcf relay (по ссылке выше) и развернуть его в aws

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

1. Какое это имеет отношение к вопросу?