Я инженер-программист и не обязательно специалист по операциям, если не считать того, что занимался проблемами развертывания вместе с разработчиком.
Отдельные компоненты веб-приложения, над которым я работаю, будут распределены по отдельным облачным виртуальным машинам. Что лучше или, по крайней мере, хорошая практика для шифрования связи между, например, HTTP-сервисы и база данных на основе node.js - каждый живет в своих экземплярах?
Я думал о SSH
-Туннели между боксами ... Что скажете профи serverfault?
Это кажется опасно близким к вопросу о покупках, которые запрещены на SF (и, очевидно, на других сайтах SE) FAQ. Вы также не можете указать, какая ОС будет работать на облачных серверах; но я предполагаю, что это Linux.
Тем не менее, я бы предпочел IPSec, поскольку он встроен в Linux, он невероятно надежен и хорошо интегрирован на сетевом уровне (так что вам не придется возиться с таблицами маршрутизации). Проблем с аутентификацией не возникнет, так как все это делается с помощью общих ключей или сертификатов. Хорошо интегрируется с iptables
межсетевые экраны. Он хорошо восстанавливается после длительных отключений сети. Он появляется автоматически во время загрузки через стандартный /etc/rcN.d
скрипты. При наличии туннелей IPSec приложениям нужно только пересылать пакеты по IP-адресам; шифрование все происходит путь вниз по стеку оттуда.
В противном случае OpenVPN. Он сложнее IPSec, но обладает многими из тех же преимуществ.
В противном случае можно использовать ssh-туннели, если это необходимо, но вы будете вечно бегать, возвращая их обратно, как только сбои в сети заставят их упасть. Я бы предпочел (и еще больше) работать с корневым каналом, чем делать это с помощью туннелей ssh.
станнель тоже может быть интересным вариантом. Если у вас есть несколько виртуальных машин (а не только две), установка для них VPN и маршрутизация всего трафика между узлами через нее также может быть в некоторой степени разумной - это защитит «все навсегда» - если вы добавите еще одно межсоединение, оно будет зашифровано по умолчанию без необходимости настройки дополнительных ssh
/stunnel
пересылки. Еще одним вариантом может быть обеспечение IPSec.