Можно ли строго ограничить входящий и исходящий трафик между внешними и внутренними виртуальными машинами Azure IaaS на уровне сети?

Я хотел бы создать внепараноидальную настройку DMZ -концентратора в Azure с использованием виртуальных машин IaaS.

У меня есть общедоступный внешний интерфейсный сервер (то есть веб-сервер IIS), который я хотел бы строго заблокировать. Однако внешнему интерфейсу требуется доступ к некоторым внутренним серверам (например, к базе данных, контроллеру домена и т. Д.). Я хочу обеспечить:

  1. Только сервер переднего плана может общаться с внутренними серверами, и только на согласованных портах.
  2. Внутренние серверы не могут получать или отправлять трафик из / в общедоступный Интернет.
  3. Внутренние серверы не могут общаться друг с другом.
  4. Эти правила применяются за пределами уровня операционной системы виртуальной машины для обеспечения глубокой защиты.

Это кажется разумным сценарием, но я не могу добиться этого в Azure. Самое близкое, что я смог сделать, это:

  • Создайте интерфейс IaaS VM и соответствующим образом ограничьте его конечные точки
  • Создайте виртуальную сеть Azure с подсетями "FrontEnd" и "BackEnd", поместив каждую машину в соответствующие подсети.
  • Запретить доступ RDP к внутренним виртуальным машинам. Если я хочу выполнить RDP к бэкэнд-машинам, я должен сделать это через внешнюю виртуальную машину.
  • Настройте правила брандмауэра Windows на каждом из этих компьютеров, чтобы обеспечить соблюдение этих правил.

Это работает нормально, но не так заперто, как хотелось бы. Я действительно хочу иметь глубокую защиту, чтобы не полагаться на настройки брандмауэра Windows/Linux на каждой машине. Например, допустим, что на внутреннем сервере должно быть запущено приложение с учетными данными администратора (предположим, что альтернативы этому нет). Мне нужен дополнительный уровень защиты, чтобы ошибка (или вредоносный запрос) на внутреннем сервере не могла:

  • Переконфигурируйте брандмауэр бэкэнда, чтобы он был менее ограничительным.
  • Поговорите с кем-либо еще, кроме внешнего интерфейса (включая общедоступный Интернет).

Насколько я могу судить, это невозможно в Azure с использованием виртуальной сети, потому что:

  • Виртуальные сети Azure, похоже, не предоставляют списки ACL или какую-либо другую расширенную поддержку фильтрации.
  • Виртуальные машины Azure IaaS поддерживают только одну сетевую карту, поэтому внешний интерфейс не может быть подключен как к внутреннему, так и к внутреннему подсетям.

Я что-то пропустил? Кажется, что я мог бы взломать что-то вместе, используя несколько виртуальных сетей и объединить их в VPN как кучу подсетей /30, но это выглядит довольно ужасно. Если я не могу понять это в Azure, кажется, что единственная разумная альтернатива - попытаться настроить что-то подобное в AWS с использованием Virtual Private Cloud (VPC). Любая помощь / руководство будет оценено.

2 ответа

Решение

Я получил частный ответ от команды Azure, которая фактически сказала, что в настоящее время это невозможно. Это запрошенная функция, но нет установленного графика ее реализации.

По состоянию на ноябрь 2015 года теперь можно доставить то, что вы просите, хотя и в IaaS v2.

Подобные брандмауэру правила, ограниченные диапазонами адресов, портами и протоколами, могут быть доставлены через группы сетевой безопасности (NSG). Это хорошо документировано на сайте Microsoft: что такое группа сетевой безопасности (NSG)?

Теперь вы также можете создавать виртуальные машины с несколькими сетевыми картами (опять же, IaaS v2), однако помните, что вам может потребоваться увеличить размер виртуальной машины, чтобы добавить более одной. Опять же, есть разумная статья, подробно объясняющая это: создание виртуальной машины с несколькими сетевыми картами

Другие вопросы по тегам