---
title: "Управление файрволом — База знаний Timeweb Cloud"
description: "Управление файрволом. Документация и инструкции по управлению IT-инфраструктурой. Timeweb Cloud — облачные решения для вашего бизнеса."
---

> Полный индекс документации для ИИ-агентов: [llms.txt](https://timeweb.cloud/llms.txt).

Файрвол представляет из себя группу правил, регулирующих тот или иной трафик. Вы можете создать на аккаунте до 50 групп правил — то есть до 50 файрволов.

![Image 138](https://content.timeweb.com/assets/b3093d94-a8d5-429c-9f3f-20538b042c7f?width=1473&height=818)

Группы правил двух типов: разрешающие трафик (whitelist) и запрещающие трафик (blacklist). Сервис может быть добавлен только в группы одного типа: только разрешающие или только запрещающие. 

При этом, сервис может быть добавлен в две, три и более группы правил одного типа (например, в пять групп правил, разрешающих трафик). В этом случае для сервиса будут применены все заданные правила.

Управлять файрволом можно из раздела «Сети» — «[Firewall](https://timeweb.cloud/my/firewalls)» или из сетевых настроек конкретного сервиса.

## Принципы работы файрвола

При использовании файрвола важно учитывать следующие особенности его работы:

-   Если не создано ни одного правила, файрвол не применяется: весь входящий и исходящий трафик разрешен.
-   Файрвол начинает применяться отдельно к входящему и исходящему трафику:
    -   если в группе есть только входящие правила, фильтрация применяется только к входящему трафику;
    -   если есть только исходящие правила, фильтрация применяется только к исходящему трафику;
    -   если есть правила и на вход, и на выход — фильтрация будет применяться в обе стороны.
-   Группы правил бывают двух типов:
    -   Разрешающие (whitelist) — работает по принципу белого списка: будет разрешен только трафик, указанный в правилах, все остальное будет заблокировано.
    -   Запрещающие (blacklist) — работает по принципу черного списка: будет запрещен только трафик, указанный в правилах, все остальное будет разрешено.
-   Сервис может быть добавлен только в группы одного типа: разрешающие или запрещающие.
-   Сервис может быть одновременно добавлен в несколько групп одного типа — в этом случае правила объединяться и применяться вместе.

> [!NOTE]
> Если вы используете разрешающий файрвол, даже одно правило на исходящий трафик включает фильтрацию. Это значит, что все, что не указано явно, будет заблокировано — включая обращения к сайтам, API и другим внешним сервисам.
>
> Мы не рекомендуем создавать разрешающие правила для исходящего трафика, если нет конкретной необходимости ограничивать соединения.

## Файрвол и сервисы в приватных сетях

При настройке правил файрвола для сервисов в приватных сетях необходимо корректно настроить правила для работы DHCP — службы, через которую сервисы получают свой приватный IP-адрес. Если этого не сделать, сервис может потерять IP после истечения срока аренды, что приведет к нарушению работы NAT и недоступности сервиса в интернете.

> [!NOTE]
> Эти настройки необходимо выполнять, если у вас установлены **разрешающие** правила файрвола для сервисов, добавленных в приватные сети.

-   Если у вас **созданы правила только для входящего трафика**, необходимо разрешить входящий трафик на порт 68/UDP с IP-адреса шлюза приватной сети, в которую включен сервис.

Пример настройки:

![7ed4a282 B875 47cb Bf0a 6a1f56ce1c7a](https://content.timeweb.com/assets/09d51131-f51c-47d8-a368-ea5c1f8eb9ea?width=578&height=770)

Вместо `192.168.0.1` подставьте адрес шлюза вашей приватной сети либо разрешите всю серую подсеть (в этом примере `192.168.0.0/24`) или любые адреса (`0.0.0.0/0`).

> [!NOTE]
> Если в одну группу файрвола добавлены сервисы из разных приватных сетей с разными адресами шлюзов, нужно таким же образом создать разрешающее правило для каждого шлюза.

-   Если **созданы правила только для исходящего трафика**, необходимо разрешить исходящий трафик на адрес `255.255.255.255` по порту 67/UDP.  
    

Пример настройки:

![20dd95fc 2dfe 4dfe B8f5 2b2f3b3aeb6d](https://content.timeweb.com/assets/bf6a10d1-55a5-43c5-af34-17e6c1141824?width=575&height=769)

Вместо `255.255.255.255` можно также указывать `0.0.0.0/0`, чтобы разрешить все адреса.

-   Если есть **правила и для входящего, и для исходящего трафика**, нужно выполнить обе настройки.

## Создание файрвола

Панель управления

### Из раздела Firewall

1.  Перейдите в раздел «Сети» — «Firewall» и нажмите «Добавить».
2.  Выберите, что нужно сделать: разрешить трафик или запретить трафик.
3.  [Задайте правила файрвола](https://timeweb.cloud/docs/firewall/upravlenie-fajrvolom#sozdanie-novyh-pravil) для входящего и/или исходящего трафика. В дальнейшем вы сможете [отредактировать заданные правила](https://timeweb.cloud/docs/firewall/upravlenie-fajrvolom#redaktirovanie-pravil) или [удалить](https://timeweb.cloud/docs/firewall/upravlenie-fajrvolom#udalenie-pravil) их, а также добавить новые правила в файрвол.
4.  Выберите, [к каким сервисам должны применяться](https://timeweb.cloud/docs/firewall/upravlenie-fajrvolom#dobavlenie-servisov-v-fajrvol) указанные правила. В дальнейшем вы сможете добавить/удалить сервисы из файрвола.
5.  Укажите свое имя файрвола при необходимости и нажмите «Создать».

![4d07d815 5842 4dfe 892c 055f69b8651a](https://content.timeweb.com/assets/7b3b9daa-cfef-440f-92f9-ae52ac894f88?width=1465&height=812)

### Со страницы сервиса

Вы также можете перейти к созданию файрвола из настроек конкретного сервиса, на вкладке «Сеть»:

![3dc35e5c C75a 4dfc 9e84 F935f1926020](https://content.timeweb.com/assets/24696b6a-5da6-4ade-93a6-7f17dba4e940.png?width=1570&height=942)

В блоке «Firewall» кликните «Настроить» — «Создать новый». Вы будете переадресованы в раздел «Firewall» на форму создания новой группы правил, где сможете задать правила, добавить сервисы и сохранить новый файрвол.

Terraform

Дальнейшее описание предполагает, что у вас уже установлен Terraform, настроен провайдер Timeweb Cloud и инициализирован проект ([шаги 1–4 этой инструкции](https://timeweb.cloud/docs/terraform/nachalo-raboty-s-terraform)).

Создание файрвола начинается с ресурса `twc_firewall`, который задает сам файрвол, указав его имя и описание:

```yml
resource "twc_firewall" "example-firewall" {
  name    	= "example-firewall"
  description = "Example firewall description"
}
```

Этот код создает файрвол с именем «example-firewall» и описанием «Example firewall description».

### Полный пример

Полный пример включает создание двух серверов, создание файрвола, привязку серверов к файрволу и настройку популярных портов:

```yml
terraform {
  required_providers {
	twc = {
  	source = "tf.timeweb.cloud/timeweb-cloud/timeweb-cloud"
	}
  }
  required_version = ">= 1.5.3"
}

provider "twc" {
  token = "<ваш токен>"
}

# Запрос данных о системе Ubuntu 22.04
data "twc_os" "os" {
  family   = "linux"
  name 	= "ubuntu"
  version  = "22.04"
}

# Запрос данных о пресете (конфигурации сервера)
data "twc_presets" "preset" {
  description_short = "Cloud-15"
}

# Создание серверов
resource "twc_server" "vds-with-preset" {
  name  	= "Server 1"
  os_id 	= data.twc_os.os.id
  preset_id = data.twc_presets.preset.id
}

resource "twc_server" "vds-with-preset-2" {
  name  	= "Server 2"
  os_id 	= data.twc_os.os.id
  preset_id = data.twc_presets.preset.id
}

# Добавление IPv4 для созданных серверов
resource "twc_floating_ip" "floating-ip1" {
  availability_zone = "spb-3"

  resource {
	type = "server"
	id   = twc_server.vds-with-preset.id
  }
}

resource "twc_floating_ip" "floating-ip2" {
  availability_zone = "spb-3"

  resource {
	type = "server"
	id   = twc_server.vds-with-preset-2.id
  }
}

# Создание файрвола и привязка серверов
resource "twc_firewall" "example-firewall" {
  name    	= "example-firewall"
  description = "Example firewall with multiple port rules"

  link {
	id   = twc_server.vds-with-preset.id
	type = "server"
  }

  link {
	id   = twc_server.vds-with-preset-2.id
	type = "server"
  }
}

# Создание правил для популярных портов
resource "twc_firewall_rule" "example-firewall-rules" {
  firewall_id = twc_firewall.example-firewall.id
  description = "Правила для популярных портов"
  for_each	= toset([for port in [22, 80, 443, 8080] : format("%d", port)])
  direction   = "ingress"
  port    	= each.value
  protocol	= "tcp"
}
```

Перед запуском не забудьте указать токен. Чтобы выполнить этот код, сохраните его в файл с расширением `.tf` и выполните команды:

```shell
terraform init
terraform plan
terraform apply
```

Это инициализирует Terraform и применит конфигурацию для создания необходимых ресурсов.

## Настройка правил

Вы можете создавать новые правила при создании нового файрвола, добавлять новые правила к уже существующим файрволам, редактировать заданные правила и удалять их.

Панель управления

### Создание новых правил

> [!NOTE]
> Если выбрана опция «Разрешить трафик», будет разрешен только трафик, соответствующий созданному правилу. Весь остальной трафик будет заблокирован.
>
> Если выбрана опция «Запретить трафик», будет разрешен весь трафик, кроме заданного правилами.

Чтобы создать новое правило при создании нового файрвола:

1.  Выберите, что нужно сделать: разрешить определенный трафик или запретить.
2.  Кликните «Добавить правило» в блоке «Входящий трафик» или «Исходящий трафик».

![Caaf237a D3b4 4795 817e C96676ed141b](https://content.timeweb.com/assets/675573c3-3409-4595-bfa7-0eb00226c422?width=1455&height=1068)

2.  Укажите параметры правила:

-   **Подсеть или адрес**. Можно указать конкретный IP, подсеть или значение `0.0.0.0/0`, чтобы разрешить/запретить все адреса и подсети, — либо можно выбрать **Для всех адресов**. В настоящий момент опция «Для всех адресов» работает для IPv4; для аналогичной настройки для IPv6-адресов потребуется создать отдельное правило, указав адрес `::/0`.
-   **Тип**. Можно задать собственное правило или выбрать один из готовых типов. В этом случае протокол и порт заполнятся автоматически.
-   **Протокол**. Можно выбрать TCP, UDP или ICMP.
-   **Порт**. Можно указать порт или диапазон портов.

![D26d83d4 78fb 4148 Acb7 4a5ba1914659](https://content.timeweb.com/assets/760da152-4b8c-4b6d-9c02-7b251764358e?width=1450&height=872)

3.  Нажмите «Добавить».

Вы также можете добавлять новые правила к уже существующим файрволам. Для этого:

1.  Перейдите в раздел «Сети» — «Firewall».
2.  Кликните на нужную группу правил.
3.  Нажмите «Добавить» в нужном блоке.

![83944a42 0eb5 4d6c 9ce3 D60b342813e5](https://content.timeweb.com/assets/358aa1a9-4bb4-4e84-be5d-5a9d8178acf7?width=1466&height=778)

4.  Задайте параметры правила и сохраните изменения.

### Редактирование правил

Чтобы внести изменения в уже созданное правило:

1.  Перейдите в раздел «Сети» — «Firewall»
2.  Кликните на нужную группу правил.
3.  Кликните на нужное правило.

![15b461ca D2bc 4340 Ac02 35c26935bd70](https://content.timeweb.com/assets/bd57cdae-253e-4733-967f-1947aa16e376?width=1460&height=781)

4.  Внесите правки и сохраните изменения.

![0dd73fd9 048c 4279 9fec A48942bd00bd](https://content.timeweb.com/assets/09f85785-ce80-41e1-b29d-f7804b60f0c2?width=1465&height=845)

### Удаление правил

Чтобы удалить правило:

1.  Перейдите в раздел «Сети» — «Firewall».
2.  Кликните на нужную группу правил.
3.  Кликните на три точки у нужного правила и нажмите «Удалить правило».

![1e620657 008f 4faf 858c E3e0518df67f](https://content.timeweb.com/assets/55b6bd9c-0086-4d4a-87d1-c00e520ce982?width=1461&height=800)

4.  Подтвердите удаление.

Terraform

### Добавление правила для порта

Чтобы добавить правило, разрешающее входящий трафик (`ingress`) на определенный порт (например, порт `80` для `HTTP`), используйте ресурс `twc_firewall_rule`:

```yml
resource "twc_firewall_rule" "example-firewall-rule" {
  firewall_id = twc_firewall.example-firewall.id
  description = "Allow HTTP traffic"
  direction   = "ingress"
  port    	= 80
  protocol	= "tcp"
  cidr    	= "0.0.0.0/0"
}
```

Этот пример показывает, как разрешить трафик на порт `80` из любого источника (`CIDR 0.0.0.0/0`).

### Создание правил для диапазона портов

Если необходимо создать правила для диапазона портов, это можно сделать с помощью цикла `for_each` и функции `range`:

```yml
resource "twc_firewall_rule" "example-firewall-rules" {
  firewall_id = twc_firewall.example-firewall.id
  description = "Правила для диапазона портов 8000-8010"

  for_each   = toset([for port in range(8000, 8010) : format("%d", port)])
  direction  = "ingress"
  port   	= each.value
  protocol   = "tcp"
}
```

В этом примере функция `range(8000, 8010)` создает список чисел от `8000` до `8010` включительно, который затем передается в `toset()` для создания уникального набора. Для каждого порта в этом диапазоне создается отдельное правило в файрволе. Поскольку `for_each` требует для работы с коллекциями данные, состоящие из строк, порты преобразуются в строки с помощью функции `format()`, где `%d` — это формат для целого числа. В переменную `port` подставляется результат цикла `each.value`.

### Создание правил для конкретных портов

Для настройки доступа к нескольким конкретным портам также можно использовать цикл. Например, чтобы открыть порты `22`, `80`, `443` и `8080`:

```yml
resource "twc_firewall_rule" "example-firewall-rules" {
  firewall_id = twc_firewall.example-firewall.id
  description = "Правила для популярных портов"

  for_each   = toset([for port in [22, 80, 443, 8080] : format("%d", port)])
  direction  = "ingress"
  port   	= each.value
  protocol   = "tcp"
}
```

Мы создаем список портов `[22, 80, 443, 8080]` и используем цикл `for` для преобразования каждого порта в строку с помощью функции `format("%d", port)`. В результате для каждого порта создается отдельное правило в файрволе.

## Добавление сервисов в файрвол

Вы можете добавлять сервисы в файрвол как при его создании, так и в дальнейшем, когда файрвол уже существует.

Добавить сервис в разрешающую группу правил можно только при условии, что он не добавлен в запрещающую группу правил, и наоборот.

Сервис может быть одновременно добавлен в несколько групп правил одного типа (разрешающих или запрещающих).

Панель управления

#### Из раздела Firewall

При создании файрвола кликните «Выбрать сервис» в блоке «Подключить к сервисам» и выберите нужные:

![Image 137](https://content.timeweb.com/assets/54ac58cb-1c59-48ac-a9e1-579da7d1eb96?width=1387&height=920)

Чтобы добавить сервисы в уже существующий файрвол:

1.  Перейдите в раздел «Сети» — «Firewall».
2.  Кликните на нужную группу правил.
3.  Перейдите на вкладку «Серверы» и нажмите «Добавить».

![Adcd564e B0f9 411b 9cbb C5aeb9da1179](https://content.timeweb.com/assets/fe5d548e-2f04-44a0-83f6-434c104d4420?width=1455&height=665)

4.  В открывшемся окне выберите нужные сервисы и сохраните изменения.

![Cfbfa8ea B927 4685 Abb9 C1363654284e](https://content.timeweb.com/assets/21fb070c-a9e3-4ab0-9d6b-4bb050ce434c?width=1487&height=951)

#### Со страницы сервиса

Вы можете добавить сервис в файрвол со страницы самого сервиса. Как и [при создании нового файрвола](https://timeweb.cloud/docs/firewall/upravlenie-fajrvolom#so-stranicy-servisa), это можно сделать во вкладке «Сеть».

После перехода на нужную вкладку:

1.  В блоке «Firewall» кликните «Настроить».
2.  В открывшемся окне выберите нужную группу правил и нажмите «Сохранить».

![F1b5edfa D97a 4f02 92d8 6823e84dcfcf](https://content.timeweb.com/assets/79e99771-60fa-42c2-82d2-fd40e7d23339?width=1464&height=868)

Сервис может быть одновременно добавлен в несколько разных групп правил.

Terraform

Чтобы привязать серверы к файрволу, необходимо использовать ссылки. Создадим два сервера через Terraform и привяжем их к файрволу:

```yml
# Запрос данных о системе Ubuntu 22.04
data "twc_os" "os" {
  family   = "linux"
  name  = "ubuntu"
  version  = "22.04"
}

# Запрос данных о пресете (конфигурации сервера)
data "twc_presets" "preset" {
  description_short = "Cloud-15"
}

# Создание первого сервера
resource "twc_server" "vds-with-preset" {
  name  	= "Server 1"
  os_id 	= data.twc_os.os.id
  preset_id = data.twc_presets.preset.id
}

# Создание второго сервера 
resource "twc_server" "vds-with-preset-2" {
  name  	= "Server 2"
  os_id 	= data.twc_os.os.id
  preset_id = data.twc_presets.preset.id
}

# Добавление IPv4 для созданных серверов
resource "twc_floating_ip" "floating-ip1" {
  availability_zone = "spb-3"

  resource {
	type = "server"
	id   = twc_server.vds-with-preset.id
  }
}

resource "twc_floating_ip" "floating-ip2" {
  availability_zone = "spb-3"

  resource {
	type = "server"
	id   = twc_server.vds-with-preset-2.id
  }
}


# Создание файрвола и привязка серверов
resource "twc_firewall" "example-firewall" {
  name    	= "example-firewall"
  description = "Example firewall with multiple port rules"

  link {
	id   = twc_server.vds-with-preset.id
	type = "server"
  }

  link {
	id   = twc_server.vds-with-preset-2.id
	type = "server"
  }
}
```

С помощью директивы `link` мы привязали оба сервера к файрволу.

### Удаление сервисов из файрвола

#### Из раздела Firewall

1.  Перейдите в раздел «Сети» — «Firewall».
2.  Кликните на нужную группу правил.
3.  Перейдите на вкладку «Сервисы».
4.  Кликните на три точки у нужного сервиса и кликните «Исключить сервис из группы».

![Fa13f1ec 856d 4868 8cec Dfc9fb3de5c8](https://content.timeweb.com/assets/a6a102f2-fc6c-4670-882d-2315eafe71e1?width=1460&height=648)

5.  Подтвердите удаление.

#### Со страницы сервиса

Исключить сервис из файрвола можно на странице сервиса на вкладке «Сеть».

После перехода на нужную вкладку:

1.  В блоке Firewall на странице сервиса кликните на три точки у нужной группы правил и кликните «Отключить Firewall».
2.  Подтвердите отключение группы правил для этого сервиса.

![19e93326 5fe3 4195 827c C23222f7149d](https://content.timeweb.com/assets/9aea5e78-efeb-4c8e-8e84-908bf7cd96b9?width=1455&height=581)

## Удаление файрвола

Чтобы безвозвратно удалить файрвол:

1.  Перейдите в раздел «Сети» — «Firewall».
2.  Кликните на три точки у нужного файрвола.
3.  Кликните «Удалить группу правил».

![0ee89e5c 2a41 461e 900f Da7491d0ec18](https://content.timeweb.com/assets/aad16ca9-9bf7-47db-8b9b-a3eec4e0f7d5?width=1454&height=475)

4.  Подтвердите удаление.

Файрвол и созданные в нем правила будут удалены и больше не будут применяться к добавленным сервисам.
