Архитектура и защита базового интернет-сервиса
- Подготовьте облако к работе
- Подготовьте сетевую инфраструктуру
- Зарезервируйте два статических публичных IP-адреса
- Создайте ВМ для сервиса во всех зонах доступности
- Создайте IPSec-инстанс для удаленного доступа
- Настройте маршрутизацию для VPN
- Создайте и настройте группы безопасности
- Создайте сетевой балансировщик
- Проверьте работоспособность инфраструктуры
- Как удалить созданные ресурсы
Вы развернете и настроите инфраструктуру базового интернет-сервиса с несколькими виртуальными машинами. Доступ к ВМ будет ограничен с помощью групп безопасности. Нагрузка по серверам с веб-приложениями будет распределяться сетевым балансировщиком.
Чтобы создать инфраструктуру для интернет-сервиса:
- Подготовьте облако к работе.
- Подготовьте сетевую инфраструктуру.
- Зарезервируйте два статических публичных IP-адреса.
- Создайте ВМ для сервиса во всех зонах доступности.
- Создайте IPSec-инстанс для удаленного доступа.
- Настройте маршрутизацию для VPN.
- Создайте таблицу маршрутизации.
- Привяжите таблицу маршрутизации ко всем подсетям.
- Создайте и настройте группы безопасности.
- Назначьте группы безопасности ВМ.
- Создайте сетевой балансировщик.
- Проверьте работоспособность инфраструктуры.
Если инфраструктура вам больше не нужна, удалите созданные ресурсы.
Подготовьте облако к работе
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака
Подробнее об облаках и каталогах.
Необходимые платные ресурсы
В стоимость поддержки интернет-сервиса входят:
- плата за постоянно запущенные виртуальные машины (см. тарифы Yandex Compute Cloud);
- плата за использование публичных статических IP-адресов (см. тарифы Yandex Virtual Private Cloud);
- плата за использование сетевого балансировщика (см. тарифы Yandex Network Load Balancer).
Подготовьте сетевую инфраструктуру
Перед тем, как создавать ВМ:
- Перейдите в консоль управления
Yandex Cloud и откройте каталог, в котором будете выполнять операции. - Выберите сервис Virtual Private Cloud и создайте облачную сеть с подсетями
subnet-a
,subnet-b
иsubnet-d
в зонах доступностиru-central1-a
,ru-central1-b
иru-central1-d
соответственно.
Зарезервируйте два статических публичных IP-адреса
Для работы интернет-сервиса потребуются два статических публичных IP-адреса: один будет назначен VPN-шлюзу, а другой — сетевому балансировщику.
- В консоли управления
выберите сервис Virtual Private Cloud в каталоге, где требуется зарезервировать IP-адреса. - На панели слева выберите
IP-адреса. Нажмите кнопку Зарезервировать адрес. - В открывшемся окне выберите зону доступности
ru-central1-b
. Нажмите кнопку Зарезервировать. - Снова нажмите Зарезервировать адрес.
- В открывшемся окне выберите зону доступности
ru-central1-a
. Нажмите кнопку Зарезервировать.
Создайте ВМ для сервиса во всех зонах доступности
- В консоли управления
откройте ваш каталог и в правом верхнем углу нажмите кнопку Создать ресурс. Выберите пункт Виртуальная машина. - Укажите имя виртуальной машины:
web-node-a
. - Выберите зону доступности
ru-central1-a
. - В блоке Образ загрузочного диска перейдите на вкладку Marketplace и выберите образ Drupal.
- В блоке Сетевые настройки выберите подсеть
subnet-a
. В поле Публичный адрес выберите Без адреса. - В поле Доступ укажите логин и SSH-ключ для доступа к ВМ. Пару ключей для подключения по SSH необходимо создать самостоятельно.
- Нажмите кнопку Создать ВМ.
- Повторите операции для ВМ
web-node-b
иweb-node-d
. Создайте их в зонахru-central1-b
иru-central1-d
, и подключите к подсетямsubnet-b
иsubnet-d
соответственно.
Создайте IPSec-инстанс для удаленного доступа
Для организации защищенного доступа к вашим ресурсам создайте IPSec-инстанс.
- В консоли управления
откройте ваш каталог и в правом верхнем углу нажмите кнопку Создать ресурс. Выберите пункт Виртуальная машина. - Укажите имя виртуальной машины:
vpn
. - Выберите зону доступности
ru-central1-a
. - В блоке Образ загрузочного диска перейдите на вкладку Marketplace и выберите образ IPSec-инстанс.
- В блоке Сетевые настройки выберите подсеть
subnet-a
. В поле Публичный адрес выберите Список. В открывшемся списке выберите зарезервированный IP-адрес. - В поле Доступ укажите логин и SSH-ключ для доступа к ВМ.
- Нажмите кнопку Создать ВМ.
Настройте маршрутизацию для VPN
Настройте маршрутизацию между удаленной сетью и IPSec-инстансом. В примере будет использоваться подсеть 192.168.0.0/24
.
Создайте таблицу маршрутизации
Создайте таблицу маршрутизации и добавьте в нее статические маршруты:
- В консоли управления
выберите сервис Virtual Private Cloud в каталоге, где требуется настроить маршрутизацию. - Выберите сеть, в которой требуется создать таблицу маршрутизации.
- Откройте вкладку Таблицы маршрутизации.
- В правом верхнем углу нажмите кнопку Создать.
- Задайте имя таблицы маршрутизации:
vpn-route
. - В блоке Статические маршруты нажмите кнопку Добавить маршрут.
- В открывшемся окне введите префикс подсети назначения на удаленной площадке, в примере это
192.168.0.0/24
. - В поле Next hop укажите внутренний IP-адрес IPSec-шлюза. Нажмите кнопку Добавить.
- Нажмите кнопку Создать таблицу маршрутизации.
Привяжите таблицу маршрутизации ко всем подсетям
Чтобы использовать статические маршруты, необходимо привязать таблицу маршрутизации к подсети. Для этого:
- В консоли управления
выберите сервис Virtual Private Cloud в каталоге, где требуется настроить маршрутизацию. - На панели слева выберите
Подсети - В строке нужной подсети нажмите
и выберите Привязать таблицу маршрутизации. - В открывшемся окне в поле Таблица маршрутизации выберите созданную ранее таблицу.
- Нажмите кнопку Привязать.
- Привяжите таблицу маршрутизации
vpn-route
ко всем трем подсетям.
Создайте и настройте группы безопасности
Чтобы разделить трафик между сегментами сети, необходимо создать группы безопасности и настроить в них правила приема и отправки трафика.
Создайте группу безопасности для VPN
Для работы VPN необходимо разрешить прием и передачу трафика на UDP-порты 500
и 4500
из внешней сети — это необходимо для работы IPSec-туннеля. Также необходимо разрешить передачу трафика между подсетями вашей виртуальной сети и сетью на удаленной площадке.
- В консоли управления
выберите сервис Virtual Private Cloud в каталоге, где требуется создать группу безопасности. - На панели слева выберите
Группы безопасности. - Нажмите кнопку Создать группу безопасности.
- Введите имя группы безопасности —
vpn-sg
. - В поле Сеть выберите сеть, к которой будет относиться группа безопасности.
- В блоке Правила создайте правила для управления исходящим трафиком. Для этого выберите вкладку Исходящий трафик.
- Нажмите кнопку Добавить правило. В открывшемся окне:
- В поле Диапазон портов укажите порт:
500
. - В поле Протокол выберите
UDP
. - В поле Назначение выберите CIDR.
- В поле CIDR блоки укажите публичный адрес удаленного VPN-концентратора с маской
32
. - Нажмите кнопку Сохранить.
- В поле Диапазон портов укажите порт:
- Нажмите кнопку Добавить правило. В открывшемся окне:
- В поле Диапазон портов укажите порт:
4500
. - В поле Протокол выберите
UDP
. - В поле Назначение выберите CIDR.
- В поле CIDR блоки укажите публичный адрес удаленного VPN-концентратора с маской
32
. - Нажмите кнопку Сохранить.
- В поле Диапазон портов укажите порт:
- Настройте правила, разрешающие передачу трафика между веб-серверами и машинами на удаленной площадке. Нажмите кнопку Добавить правило. В открывшемся окне:
- В поле Диапазон портов нажмите Выбрать весь диапазон.
- В поле Протокол выберите Любой.
- В поле Назначение выберите CIDR.
- В поле CIDR блоки укажите CIDR внутренней сети —
10.0.0.0/8
. - Нажмите кнопку Добавить CIDR и укажите CIDR удаленной площадки —
192.168.0.0/24
. - Нажмите кнопку Сохранить.
- Выберите вкладку Входящий трафик и создайте аналогичные правила для входящего трафика.
Создайте группу безопасности для ВМ интернет-сервиса
Создайте группу безопасности web-service-sg
и настройте правила для трафика.
Правила для исходящего трафика
Разрешите исходящие соединения к другим машинам из группы безопасности:
- Протокол:
Любой
; - Назначение:
Группа безопасности
; - Группа безопасности:
Текущая
.
Правила для входящего трафика
Разрешите следующие входящие соединения:
- HTTP-соединения от нескольких тестовых несуществующих IP-адресов:
- Диапазон портов:
80
; - Протокол:
TCP
; - CIDR блоки:
1.1.1.1/32
,85.32.45.45/32
.
- Диапазон портов:
- HTTPS-соединения от нескольких тестовых несуществующих IP-адресов:
- Диапазон портов:
443
; - Протокол:
TCP
; - CIDR блоки:
1.1.1.1/32
,85.32.45.45/32
.
- Диапазон портов:
- TCP-соединения для доступа по SSH:
- Диапазон портов:
22
; - Протокол:
TCP
; - CIDR блоки:
0.0.0.0/0
.
- Диапазон портов:
- Соединения от других машин из группы безопасности:
- Протокол:
Любой
; - Источник:
Группа безопасности
; - Группа безопасности:
Текущая
.
- Протокол:
- Проверки состояния от сетевого балансировщика:
- Диапазон портов:
80
; - Протокол:
TCP
; - Источник:
Проверки состояния балансировщика
.
- Диапазон портов:
Назначьте группы безопасности ВМ
Чтобы правила групп безопасности начали действовать, группы необходимо назначить сетевым интерфейсам ВМ.
- В консоли управления
выберите сервис Compute Cloud. - Выберите виртуальную машину
vpn
. - В блоке Сеть нажмите значок
и выберите Изменить. - В открывшемся окне выберите группу безопасности
vpn-sg
. - Нажмите кнопку Сохранить.
- Повторите шаги и назначьте группу безопасности
web-service-sg
виртуальным машинамweb-node-a
,web-node-b
иweb-node-d
.
Создайте сетевой балансировщик
Сетевой балансировщик будет распределять входящий трафик интернет-сервиса по ВМ, объединенным в целевую группу.
Чтобы создать сетевой балансировщик:
- В консоли управления
выберите сервис Network Load Balancer в каталоге, где требуется создать балансировщик. - Нажмите кнопку Создать сетевой балансировщик.
- Задайте имя балансировщика:
web-service-lb
. - В поле Публичный адрес выберите Список и укажите публичный статический адрес.
- В блоке Обработчики нажмите кнопку Добавить обработчик.
- В открывшемся окне введите имя обработчика и укажите порт
80
в полях Порт и Целевой порт. Нажмите кнопку Добавить. - В блоке Целевые группы нажмите Добавить целевую группу.
- В поле Целевая группа нажмите
→ Создать целевую группу. В открывшемся окне:- Задайте имя целевой группы:
web-tg
. - Выберите виртуальные машины
web-node-a
,web-node-b
иweb-node-d
. - Нажмите кнопку Создать.
- Задайте имя целевой группы:
- Выберите созданную целевую группу из списка и в настройках измените протокол проверки состояния балансировщика на
TCP
:- Нажмите кнопку Настроить.
- В открывшемся окне в поле Тип выберите TCP и нажмите кнопку Применить.
- Нажмите кнопку Сохранить.
Проверьте работоспособность инфраструктуры
Проверьте работоспособность инфраструктуры и убедитесь, что трафик к ВМ интернет-сервиса поступает только от разрешенных правилами адресов:
- Выполните на вашем компьютере команду
curl <публичный_IP-адрес_сетевого_балансировщика>
. Убедитесь, что ответ не поступил. - Создайте группу безопасности
web-service-test-sg
без правил и назначьте ее ВМweb-node-a
,web-node-b
иweb-node-d
. - Создайте в группе безопасности
web-service-test-sg
следующее правило для входящего трафика:- Диапазон портов:
80
; - Протокол:
TCP
; - Источник:
CIDR
; - CIDR блоки:
<IP-адрес_вашего_компьютера>/32
.
- Диапазон портов:
- Снова выполните на вашем компьютере команду
curl <публичный_IP-адрес_сетевого_балансировщика>
. Убедитесь, что в качестве ответа вернулся HTML-код стартовой страницы Drupal. - Удалите тестовую группу.
Как удалить созданные ресурсы
Чтобы остановить работу инфраструктуры и перестать платить за развернутые ресурсы, удалите созданные виртуальные машины и балансировщик:
vpn
;web-node-a
;web-node-b
;web-node-d
;web-service-lb
.
Освободите и удалите зарезервированные статические публичные IP-адреса.