Пример настройки группы безопасности для серверов в приватной сети за балансировщиком нагрузки
Мы не рекомендуем настраивать группы безопасности в существующих сетях, где работает балансировщик нагрузки или кластер облачных баз данных, это может привести к сбою в работе балансировщика и нарушению репликации в кластере. Чтобы избежать сбоев и не потерять данные, для настройки групп создайте новую приватную сеть или публичную подсеть и включите в ней фильтрацию трафика.
Цель настройки
Настроить группу безопасности для приема трафика от балансировщика нагрузки на серверах целевой группы.
Что нужно для настройки
В примере для настройки мы использовали облачный балансировщик и два облачных сервера в одном пуле.
Балансировщик и серверы расположены в приватной подсети 172.16.0.0/28
, в сети включена фильтрация трафика (port security). Серверы принимают TCP-трафик от балансировщика на порт 80
, настроены проверки доступности с типом PING.
Результат настройки
Создана и назначена на серверы группа безопасности, которая разрешает принимать от балансировщика входящий трафик и проверки доступности.
Весь исходящий трафик от серверов разрешен.
Шаги настройки
Панель управления
OpenStack CLI
Terraform
-
В панели управления в верхнем меню нажмите Продукты и выберите Облачные серверы.
-
Перейдите в раздел Группы безопасности.
-
Нажмите Создать группу безопасности.
-
Выберите пул, в котором находятся серверы целевой группы.
-
Создайте правило в группе, которое будет разрешать входящий трафик от балансировщика.
5.1. Нажмите Добавить правило входящего трафика.
5.2. Выберите протокол — TCP.
5.3. Выберите источник трафика (Source) — CIDR и введите IP-адрес подсети балансировщика, в примере —
172.16.0.0/28
. Балансировщик может пересоздаваться с другим IP-адресом в пределах подсети, поэтому в качестве источника трафика необходимо указать всю подсеть.5.4. Введите порт (Dst. port), на который разрешено принимать трафик, в примере —
80
.5.5. Опционально: введите комментарий для правила.
5.6. Нажмите Добавить.
-
Создайте правило в группе, которое будет разрешать проверки доступности от балансировщика:
6.1. Нажмите Добавить правило входящего трафика.
6.2. Выберите протокол — ICMP.
6.3. Выберите источник трафика (Source) — CIDR и введите IP-адрес подсети балансировщика, в примере —
172.16.0.0/28
. Балансировщик может пересоздаваться с другим IP-адресом в пределах подсети, поэтому в качестве источника трафика необходимо указать всю подсеть.6.4. Опционально: введите комментарий для правила.
6.6. Нажмите Добавить.
-
В блоке Порты отметьте порты серверов целевой группы, на которые будет назначена группа безопасности. После создания группы на выбранных портах прервутся все активные сессии, которые не соответствуют правилам группы.
-
Введите имя группы или оставьте имя, созданное автоматически.
-
Опционально: введите комментарий для группы.
-
Нажмите Создать группу безопасности.
-
Создайте группу безопасности для облачных серверов за балансировщиком:
openstack security group create \
--description "<description>" \
<security_group_name>Укажите:
<description>
— описание группы, напримерload balancer target group tcp-80
;<security_group_name>
— имя группы, напримерtarget-group-tcp-80
.
Группа создастся с двумя правилами, которые разрешают весь исходящий трафик.
-
Создайте правило в группе, которое будет разрешать входящий трафик от балансировщика. Балансировщик может пересоздаваться с другим IP-адресом в пределах подсети, поэтому в качестве источника трафика необходимо указать всю подсеть:
openstack security group rule create \
--protocol <protocol> --dst-port <port> \
--remote-ip <ip_address> \
<security_group>Укажите:
<protocol>
— протокол целевой группы, в примере —tcp
;<port>
— порт на сервере целевой группы, на который разрешено принимать трафик, в примере —80
;<ip_address>
— IP-адрес или подсеть, из которой разрешено принимать трафик, в примере —172.16.0.0/28
;<security_group>
— ID или имя группы безопасности, которую вы создали на шаге 2, можно посмотреть с помощью командыopenstack security group list
.
-
Создайте правило в группе, которое будет разрешать проверки доступности от балансировщика:
openstack security group rule create \
--protocol <protocol> \
--remote-ip <ip_address> \
<security_group>Укажите:
<protocol>
— протокол проверок доступности, в примере —icmp
;<ip_address>
— IP-адрес или подсеть, из которой разрешено принимать трафик, в примере —172.16.0.0/28
;<security_group>
— ID или имя группы безопасности, которую вы создали на шаге 2, можно посмотреть с помощью командыopenstack security group list
.
-
На порт каждого из серверов целевой группы, куда отправляется трафик с балансировщика, назначьте созданную группу безопасности:
openstack port set \
--security-group <security_group> \
--enable-port-security \
<port>Укажите:
<security_group>
— ID или имя группы безопасности, которую создали на шаге 2, можно посмотреть с помощью командыopenstack security group list
;<port>
— ID или имя порта сервера из приватной подсети, в примере — из подсети172.16.0.0/28
, можно посмотреть с помощью командыopenstack port list
.
-
Опционально: проверьте список правил в группе:
openstack security group rule list <security_group>
Укажите
<security_group>
— ID или имя группы безопасности, которую вы создали на шаге 2, можно посмотреть с помощью командыopenstack security group list
.
Используйте инструкцию Создать группу безопасности и назначить ее на порт сервера в документации Terraform.