---
title: 'Пример настройки групп безопасности для облачных серверов в одной подсети'
sidebar_label: 'Cерверы в одной подсети'
sidebar_position: 1
description: 'Как настроить группы безопасности, чтобы ограничить обмен трафиком для облачных серверов в одной приватной подсети'
toc_max_heading_level: 2
---

import Formbricks from '@theme/MDXComponents/Formbricks'
import Tabs from '@theme/Tabs'
import TabItem from '@theme/TabItem'
import TrashIcon from '@selectel/docux/icons/trash'
import {TabItemLabel} from '@selectel/docux/components'

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

## Цель настройки \{#purpose}

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

## Что нужно для настройки \{#what-is-required}

В примере для настройки мы использовали два облачных сервера, которые находятся в одном [пуле](/infrastructure/locations.mdx#pool):

* на одном сервере развернут веб-сервер, сервер подключен к интернету через [публичный плавающий IP-адрес](/cloud-servers/cloud-networks/public-floating-ip-addresses.mdx);
* на другом сервере развернута база данных MySQL, которая принимает запросы от веб-сервера на стандартный порт 3306.

Серверы добавлены в одну [приватную подсеть](/cloud-servers/cloud-networks/private-networks-and-subnets.mdx). В приватной сети и на портах серверов в этой сети включена [фильтрация трафика (port security)](/cloud-servers/cloud-networks/about-networks.mdx#traffic-filtering-port-security).

## Результат настройки⁠ \{#result}

Созданы две группы безопасности и назначены на порты серверов:

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

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

## Шаги настройки⁠ \{#customization-steps}

<Tabs queryString="customization-steps">
  <TabItem value="panel">
    <TabItemLabel>
      Панель управления
    </TabItemLabel>

    1. [Создайте группу безопасности для веб-сервера](#create-security-group-for-web-server).
    2. [Создайте группу безопасности для сервера с базой данных](#create-security-group-for-database-server).

    ### 1. Создать группу безопасности для веб-сервера \{#create-security-group-for-web-server}

    1. В [панели управления](https://my.selectel.ru/vpc/default/security-groups) в верхнем меню нажмите **Продукты** и выберите **Облачные серверы**.

    2. Перейдите в раздел **Группы безопасности**.

    3. Нажмите **Создать группу безопасности**.

    4. Выберите [локацию](/infrastructure/locations.mdx), в которой находится веб-сервер.

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

       5.1. Нажмите **Добавить правило входящего трафика**.

       5.2. Выберите протокол — TCP.

       5.3. Выберите источник трафика (Source) — CIDR и введите IP-адрес подсети по умолчанию `0.0.0.0/0`.

       5.4. Введите порт (Dst. port), на который разрешено принимать трафик — `80`.

       5.5. Опционально: введите комментарий для правила.

       5.6. Нажмите **Добавить**.

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

       6.1. Нажмите **Добавить правило входящего трафика**.

       6.2. Выберите протокол — TCP.

       6.3. Выберите источник трафика (Source) — CIDR и введите IP-адрес подсети по умолчанию `0.0.0.0/0`.

       6.4. Введите порт (Dst. port), на который разрешено принимать трафик, в примере — `443`.

       6.5. Опционально: введите комментарий для правила.

       6.6. Нажмите **Добавить**.

    7. В блоке **Порты** отметьте порт веб-сервера, на которые будет назначена группа безопасности. После создания группы на порте прервутся все активные сессии, которые не соответствуют правилам группы.

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

    9. Опционально: введите комментарий для группы.

    10. Нажмите **Создать группу безопасности**.

    ### 2. Создать группу безопасности для сервера с базой данных \{#create-security-group-for-database-server}

    1. В [панели управления](https://my.selectel.ru/vpc/default/security-groups) в верхнем меню нажмите **Продукты** и выберите **Облачные серверы**.

    2. Перейдите в раздел **Группы безопасности**.

    3. Нажмите **Создать группу безопасности**.

    4. Выберите [локацию](/infrastructure/locations.mdx), в которой находится сервер с базой данных.

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

       5.1. Нажмите **Добавить правило входящего трафика**.

       5.2. Выберите протокол — TCP.

       5.3. Выберите источник трафика (Source) — SG и выберите группу безопасности, которую вы [создали для веб-сервера](#create-security-group-for-web-server).

       5.4. Введите порт (Dst. port), на который разрешено принимать трафик — `3306`.

       5.5. Опционально: введите комментарий для правила.

       5.6. Нажмите **Добавить**.

    6. В блоке **Порты** отметьте порт веб-сервера, на которые будет назначена группа безопасности. После создания группы на порте прервутся все активные сессии, которые не соответствуют правилам группы.

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

    8. Опционально: введите комментарий для группы.

    9. Нажмите **Создать группу безопасности**.
  </TabItem>

  <TabItem value="openstack">
    <TabItemLabel>
      OpenStack CLI
    </TabItemLabel>

    1. [Откройте OpenStack CLI](/cloud-servers/tools/openstack-cli/).

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

       ```bash
       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-трафик для веб-сервера:

       ```bash
       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-трафик для веб-сервера:

       ```bash
       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. Создайте группу безопасности для сервера с базой данных:

       ```bash
       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. Создайте правило, которое разрешает входящий трафик из группы веб-сервера:

       ```bash
       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:

       ```bash
       openstack port set \
           --security-group <security_group> \
           <port_1>
       ```

       Укажите:

       * `<security_group>` — ID или имя группы безопасности, которую создали на шаге 2, можно посмотреть с помощью команды `openstack security group list`;
       * `<port_1>` — ID или имя порта веб-сервера из приватной подсети, можно посмотреть с помощью команды `openstack port list`.

    8. На порт сервера с базой данных назначьте группу безопасности, которую вы создали на шаге 5:

       ```bash
       openstack port set \
           --security-group <security_group> \
           <port_2>
       ```

       Укажите:

       * `<security_group>` — ID или имя группы безопасности, которую вы создали на шаге 5, можно посмотреть с помощью команды `openstack security group list`;
       * `<port_2>` — ID или имя порта сервера с базой данных из приватной подсети, можно посмотреть с помощью команды `openstack port list`.

    9. Опционально: проверьте созданные группы:

       ```bash
       openstack security group list
       ```

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

        ```bash
        openstack security group rule list <security_group>
        ```

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

  <TabItem value="terraform">
    <TabItemLabel>
      Terraform
    </TabItemLabel>

    Используйте инструкцию [Создать группу безопасности и назначить ее на порт сервера](/terraform/examples/security-groups/create-security-group-and-assign-on-server-port/) в документации Terraform.
  </TabItem>
</Tabs>

<Formbricks />
