Рейтинг:0

Возможно ли зашифровать трафик между внутренними веб-серверами с помощью Load Balancer?

флаг cn

В настоящее время я использую Let's Encrypt для получения серверных сертификатов примерно для 100+ внутренних серверов. Каждые 90 дней мне приходится работать с другими командами, чтобы обновить свои сертификаты через вызов DNS-01. Я нашел решение для Load Balancer, которое звучит так, будто мне нужно выполнить только задачу DNS-01 в балансировщик нагрузки, тогда весь трафик будет зашифрован:

Завершение SSL шифрует внешний трафик перед балансировщиком нагрузки. Если мы хотим зашифровать трафик между балансировщиком нагрузки и внутренним веб-сервером, у нас может быть сквозной SSL. Но как насчет трафика между нашим внутренним веб-сервером (внутренним сервером)?

Если я реализую балансировщик нагрузки посередине, возможно ли зашифровать трафик между внутренним веб-сервером, если мы решим внедрить терминацию SSL или сквозную передачу SSL?

Я очень новичок в Load Balancer, любая помощь приветствуется!

флаг in
что вы подразумеваете под «трафиком между внутренним веб-сервером»?
ITnewbie avatar
флаг cn
@GeraldSchneider Извините за путаницу. Я имею в виду наши внутренние серверы, которые находятся за балансировщиком нагрузки. Они находятся в нашей локальной сети и могут быть в одной и той же VLAN.
флаг in
Ну... использовать HTTPS? Какое это имеет отношение к балансировщику нагрузки?
флаг cn
Как внутренние веб-серверы взаимодействуют друг с другом?
ITnewbie avatar
флаг cn
@GeraldSchneider Извините за путаницу. Я обновил свой вопрос, я хотел бы знать, как мне обрабатывать трафик между внутренними серверами, если у меня есть только подстановочный SSL-сертификат с балансировщиком нагрузки.
ITnewbie avatar
флаг cn
@Charm_quark HTTPS с полным доменным именем и портом 443. Мы не разрешаем IP-адрес.
Рейтинг:2
флаг za

Вы всегда можете зашифровать трафик между любыми системами, принадлежащими определенной группе. Транспортный режим IPsec создан специально для этого. Неважно, какие роли берут на себя эти серверы, бэкэнд, фронтэнд и т. д., в данном случае они просто IP-узлы. Рассматривайте это как общее решение, которое делает «да, это возможно» действительным ответом на все вопросы, такие как «возможно ли зашифровать трафик между A и B». Однако иногда это не удобно и поэтому часто есть другие варианты.


Другие варианты зависят от с какой целью вам нужно это шифрование. Не отвечайте «просто для безопасности», нет такой вещи, как «просто безопасность». Существуют модели угроз и модели безопасности, которые справляются с этими определенными угрозами. Например, говоря простыми словами, модель угрозы для HTTP — это человек посередине, который может подслушивать и вводить свои собственные данные, выдавать себя за действительный сервер и/или действительный клиент; HTTPS разработан, чтобы сделать это невозможным, шифруя и подписывая все сообщения. MitM в лучшем случае может либо пропускать весь трафик без возможности прослушивания, либо вообще прерывать связь. И что ты защищаются, каковы ваши угрозы?

Ваша сеть между бэкендами и балансировщиками не является доверенной? Почему? В эти сети должны входить только балансировщики и бэкэнды и ничего больше, какие у вас там ненадежные акторы? Однако IPsec в транспортном режиме в этом случае является приемлемым решением, поскольку он будет шифровать все, что передается по сети.

Вы также можете использовать HTTPS между балансировщиком и бэкендами (и между самими бэкэндами). Все в порядке, ваш балансировщик завершит пользовательский HTTPS, увидит запрос и ответ в виде обычного текста, сможет их манипулировать (добавить/удалить/изменить заголовки), а также сможет выбрать бэкэнд и обработать его, проанализировав содержимое, например, выбрать один бэкенд для статического и другого для динамического контента. Тогда он установит Другая HTTPS-соединение с серверной частью. Единственными HTTPS-клиентами для бэкендов будут балансировщики и другие бэкенды, поэтому для них не важно использовать глобально признанные сертификаты. (Например, Google Frontends не проверяют сертификаты серверных частей HTTPS, расположенных внутри Google Cloud, поэтому даже самоподписанные сертификаты будут работать.) Вы можете создать свой собственный внутренний ЦС, выпустить сертификаты для всех серверных частей и балансировщиков и сделать их доверенными, установив этот сертификат ЦС в хранилище каждой системы. Только у балансировщиков должны быть настроены глобально действительные сертификаты и только на клиентской стороне. Автоматизация Let's Encrypt, скорее всего, также будет обязанностью этих балансировщиков, поскольку на них будут устанавливаться выданные сертификаты.

Вы не доверяете своему балансировщику нагрузки? Прохождение SSL может помочь, но у него есть и свои недостатки. В этой настройке балансировщик является одним из тех людей посередине, против которых был создан HTTPS. Таким образом, он не может получить доступ к деталям HTTP для балансировки запросов, даже зная значение заголовка http Host, чтобы различать vhosts; он не может вводить дополнительные заголовки прокси, такие как «прокси для» и т. д.; соединения защищены от него, как и ожидалось.Все, что он мог сделать, это, надеюсь, отследить соединение и в противном случае слепо пересылать пакеты на какой-то сервер. В этом случае вы не настраиваете на нем никакие сертификаты и даже не настраиваете имена серверов. Просто укажите IP бэкендов. Также в этом случае на всех бэкендах должны быть установлены действующие сертификаты, потому что априори неизвестно, какой бэкенд получит какой запрос.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.