Перейти к основному содержимому
Пример настройки групп безопасности для облачных серверов в одной подсети
Последнее изменение:

Пример настройки групп безопасности для облачных серверов в одной подсети

Цель настройки

Настроить группы безопасности для двух облачных серверов, чтобы ограничить доступ серверов друг к другу и доступ к серверам из интернета.

На одном из серверов развернут веб-сервер, сервер подключен к интернету через публичный IP-адрес. На другом сервере развернута база данных MySQL, которая принимает запросы от веб-сервера на стандартный порт 3306. Серверы находятся в одном пуле и добавлены в одну приватную подсеть.

Нужно создать группы безопасности и назначить их на серверы:

  • для веб-сервера — группа разрешает входящий трафик из интернета;
  • для сервера с базой данных — группа разрешает входящий трафик от веб-сервера на стандартный порт базы данных.

Весь исходящий трафик разрешен.

Шаги настройки⁠

  1. Откройте OpenStack CLI.

  2. Создайте группу безопасности для веб-сервера:

    openstack security group create \
    --description "<description_1>" \
    <security_group_name_1>

    Укажите:

    • <description_1> — описание группы безопасности, например Allow internet traffic for web server;
    • <security_group_name_1> — имя группы безопасности, например web.

    Группа создастся с двумя правилами, которые разрешают весь исходящий трафик.

  3. Создайте правило, которое разрешает входящий 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.

  4. Создайте правило, которое разрешает 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.

  5. Создайте группу безопасности для сервера с базой данных:

    openstack security group create \
    --description "<description_2>" \
    <security_group_name_2>

    Укажите:

    • <description_2> — описание группы безопасности, например Allow traffic from web server group;
    • <security_group_name_2> — имя группы безопасности, например database.

    Группа создастся с двумя правилами, которые разрешают весь исходящий трафик.

  6. Создайте правило, которое разрешает входящий трафик из группы веб-сервера:

    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.
  7. На порт веб-сервера назначьте группу безопасности, которую вы создали на шаге 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.
  8. На порт сервера с базой данных назначьте группу безопасности, которую вы создали на шаге 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.
  9. Опционально: проверьте созданные группы:

    openstack security group list
  10. Опционально: проверьте список правил в группе:

    openstack security group rule list <security_group>

    Укажите <security_group> — ID или имя группы, правила которой вы хотите посмотреть, можно посмотреть с помощью команды openstack security group list.