Пример настройки групп безопасности для облачных серверов в одной подсети
Цель настройки
Настроить группы безопасности для двух облачных серверов, чтобы ограничить доступ серверов друг к другу и доступ к серверам из интернета.
На одном из серверов развернут веб-сер вер, сервер подключен к интернету через публичный IP-адрес. На другом сервере развернута база данных MySQL, которая принимает запросы от веб-сервера на стандартный порт 3306. Серверы находятся в одном пуле и добавлены в одну приватную подсеть.
Нужно создать группы безопасности и назначить их на серверы:
- для веб-сервера — группа разрешает входящий трафик из интернета;
- для сервера с базой данных — группа разрешает входящий трафик от веб-сервера на стандартный порт базы данных.
Весь исходящий трафик разрешен.
Шаги настройки
OpenStack CLI
Terraform
-
Создайте группу безопасности для веб-сервера:
openstack security group create \
--description "<description_1>" \
<security_group_name_1>Укажите:
<description_1>
— описание группы безо пасности, напримерAllow internet traffic for web server
;<security_group_name_1>
— имя группы безопасности, напримерweb
.
Группа создастся с двумя правилами, которые разрешают весь исходящий трафик.
-
Создайте правило, которое разрешает входящий HTTP-трафик для веб-сервера:
openstack security group rule create \
--protocol tcp --dst-port 80 \
--remote-ip 0.0.0.0/0 \
<security_group_1>Укажите
<security_group_1>
— ID или имя группы безопасности, которую создали для веб-сервера на шаге 2, можно посмотреть с помощью командыopenstack security group list
. -
Создайте правило, которое разрешает HTTPS-трафик для веб-сервера:
openstack security group rule create \
--protocol tcp --dst-port 443 \
--remote-ip 0.0.0.0/0 \
<security_group_1>Укажите
<security_group_1>
— ID или имя группы безопасности, которую создали для веб-сервера на шаге 2, можно посмотреть с помощью командыopenstack security group list
. -
Создайте группу безопасности для сервера с базой данных:
openstack security group create \
--description "<description_2>" \
<security_group_name_2>Укажите:
<description_2>
— описание группы безопасности, напримерAllow traffic from web server group
;<security_group_name_2>
— имя группы безопасност и, напримерdatabase
.
Группа создастся с двумя правилами, которые разрешают весь исходящий трафик.
-
Создайте правило, которое разрешает входящий трафик из группы веб-сервера:
openstack security group rule create \
--protocol <protocol> --dst-port <port> \
--remote-group <security_group_1> \
<security_group_2>Укажите:
<protocol>
— протокол, в примере —tcp
;<port>
— порт на сервере с базой данных, на который разрешено принимать трафик, в примере —3306
;<security_group_1>
— ID или имя группы безопасности, которую вы создали для веб-сервера на шаге 2, можно посмотреть с помощью командыopenstack security group list
;<security_group_2>
— ID или имя группы безопасности, которую вы создали для сервера с базой данных на шаге 5.
-
На порт веб-сервера назначьте группу безопасности, ко торую вы создали на шаге 2:
openstack port set \
--security-group <security_group> \
--enable-port-security \
<port_1>Укажите:
<security_group>
— ID или имя группы безопасности, которую создали на шаге 2, можно посмотреть с помощью командыopenstack security group list
;<port_1>
— ID или имя порта веб-сервера из приватной подсети, можно посмотреть с помощью командыopenstack port list
.
-
На порт сервера с базой данных назначьте группу безопасности, которую вы создали на шаге 5:
openstack port set \
--security-group <security_group> \
--enable-port-security \
<port_2>Укажите:
<security_group>
— ID или имя группы безопасности, которую вы создали на шаге 5, можно посмотреть с помощью командыopenstack security group list
;<port_2>
— ID или имя порта сервера с базой данных из приватной подсети, можно посмотреть с помощью командыopenstack port list
.
-
Опционально: проверьте созданные группы:
openstack security group list
-
Опционально: проверьте список правил в группе:
openstack security group rule list <security_group>
Укажите
<security_group>
— ID или имя группы, правила которой вы хотите посмотреть, можно посмотреть с помощью командыopenstack security group list
.
Используйте инструкцию Создать группу безопасности и назначить ее на порт сервера в документации Terraform.