Создание и настройка шлюза UserGate в режиме межсетевого экрана
UserGate
Вы создадите виртуальную машину UserGate в Yandex Cloud и настроите шлюз для работы в режиме межсетевого экрана. Для расширенного изучения возможностей UserGate пройдите бесплатный курс UserGate Getting Started
Чтобы развернуть шлюз UserGate и проверить его работу:
- Подготовьте облако к работе.
- Создайте облачную сеть и подсеть.
- Зарезервируйте статический публичный IP-адрес.
- Создайте виртуальную машину UserGate.
- Настройте UserGate NGFW через веб-консоль администратора.
- Настройте маршрутизацию в подсети.
- Проведите тестирование работы межсетевого экрана.
Если созданные ресурсы вам больше не нужны, удалите их.
Перед началом работы
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его и привяжите к нему облако.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака
Подробнее об облаках и каталогах.
Необходимые платные ресурсы
В стоимость поддержки шлюза UserGate входит:
- плата за постоянно запущенную ВМ (см. тарифы Yandex Compute Cloud);
- плата за использование UserGate NGFW;
- плата за использование публичного статического IP-адреса (см. тарифы Yandex Virtual Private Cloud).
Создайте облачную сеть и подсеть
Создайте облачную сеть с подсетями в тех зонах доступности, где будет находиться виртуальная машина.
- На странице каталога в консоли управления
нажмите кнопку Создать ресурс и выберите пункт Сеть. - Задайте имя сети:
usergate-network
. - Включите опцию Создать подсети.
- Нажмите кнопку Создать сеть.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Создайте сеть
usergate-network
:yc vpc network create usergate-network
Результат:
id: enptrcle5q3d******** folder_id: b1g9hv2loamq******** created_at: "2022-06-08T09:25:03Z" name: usergate-network default_security_group_id: enpbsnnop4ak********
Подробнее о команде
yc vpc network create
см. в справочнике CLI. -
Создайте подсеть
usergate-subnet-ru-central1-a
в зоне доступностиru-central1-a
:yc vpc subnet create usergate-subnet-ru-central1-a \ --zone ru-central1-a \ --network-name usergate-network \ --range 10.1.0.0/16
Результат:
id: e9bnnssj8sc8******** folder_id: b1g9hv2loamq******** created_at: "2022-06-08T09:27:00Z" name: usergate-subnet-ru-central1-a network_id: enptrcle5q3d******** zone_id: ru-central1-a v4_cidr_blocks: - 10.1.0.0/16
Подробнее о команде
yc vpc subnet create
см. в справочнике CLI.
-
Опишите в конфигурационном файле параметры сети
usergate-network
и ее подсетей:resource "yandex_vpc_network" "usergate-network" { name = "usergate-network" } resource "yandex_vpc_subnet" { name = "usergate-subnet-ru-central1-a" zone = "ru-central1-a" network_id = "${yandex_vpc_network.usergate-network.id}" v4_cidr_blocks = ["10.1.0.0/16"] }
Подробнее см. в описаниях ресурсов yandex_vpc_network
и yandex_vpc_subnet в документации провайдера Terraform. -
Проверьте корректность конфигурационных файлов.
-
В командной строке перейдите в папку, где вы создали конфигурационный файл.
-
Выполните проверку с помощью команды:
terraform plan
Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.
-
-
Разверните облачные ресурсы.
-
Если в конфигурации нет ошибок, выполните команду:
terraform apply
-
Подтвердите создание ресурсов: введите в терминал слово
yes
и нажмите Enter.
-
- Создайте сеть
usergate-network
с помощью вызова gRPC API NetworkService/Create или метода REST API create для ресурса Network. - Создайте подсеть
usergate-subnet-ru-central1-a
с помощью вызова gRPC API SubnetService/Create или метода REST API create для ресурса Subnet.
Зарезервируйте статический публичный IP-адрес
Для работы шлюзу потребуется статический публичный IP-адрес.
- В консоли управления
перейдите на страницу каталога, в котором нужно зарезервировать адрес. - В списке сервисов выберите Virtual Private Cloud.
- На панели слева выберите IP-адреса.
- Нажмите кнопку Зарезервировать адрес.
- В открывшемся окне выберите зону доступности
ru-central1-a
. - Нажмите кнопку Зарезервировать.
Выполните команду:
yc vpc address create --external-ipv4 zone=ru-central1-a
Результат:
id: e9b6un9gkso6********
folder_id: b1g7gvsi89m3********
created_at: "2022-06-08T17:52:42Z"
external_ipv4_address:
address: 178.154.253.52
zone_id: ru-central1-a
requirements: {}
reserved: true
Подробнее о команде yc vpc address create
см. в справочнике CLI.
Опишите в конфигурационном файле параметры публичного адреса yandex_vpc_address
:
resource "yandex_vpc_address" "usergate-addr" {
name = "usergate-addr"
external_ipv4_address {
zone_id = "ru-central1-b"
}
}
Подробнее см. описание ресурса vpc_address
Создайте виртуальную машину UserGate
-
На странице каталога в консоли управления
нажмите кнопку Создать ресурс и выберите пункт Виртуальная машина. -
В поле Имя введите имя ВМ —
usergate-firewall
. -
Выберите зону доступности
ru-central1-a
. -
В блоке Выбор образа/загрузочного диска на вкладке Cloud Marketplace выберите образ UserGate NGFW.
-
В блоке Вычислительные ресурсы:
-
Выберите платформу Intel Ice Lake.
-
Укажите необходимое количество vCPU и объем RAM:
- vCPU — 4.
- Гарантированная доля vCPU — 100%.
- RAM — 8 ГБ.
Примечание
Указанные параметры подойдут для функционального тестирования шлюза. Чтобы рассчитать параметры для более серьезной нагрузки, ознакомьтесь с официальными рекомендациями
UserGate.
-
-
В блоке Сетевые настройки:
- Выберите сеть
usergate-network
и подсетьusergate-subnet-ru-central1-a
. - В поле Публичный адрес выберите из списка зарезервированный ранее IP-адрес.
- Выберите сеть
-
В блоке Доступ укажите данные для доступа на ВМ:
-
В поле Логин введите имя пользователя.
-
В поле SSH-ключ вставьте содержимое файла открытого ключа.
Пару ключей для подключения по SSH необходимо создать самостоятельно, см. раздел Создание пары ключей SSH.
-
-
Нажмите кнопку Создать ВМ.
-
Создайте пару ключей SSH.
-
Выполните команду:
yc compute instance create \ --name usergate-firewall \ --memory 8 \ --cores 4 \ --zone ru-central1-a \ --create-boot-disk image-folder-id=standard-images,image-family=usergate-ngfw \ --ssh-key <путь_к_открытой_части_SSH-ключа> \ --public-address=<зарезервированный_IP_адрес>
Результат:
id: fhm2na1siftp******** folder_id: b1g86q4m5vej******** created_at: "2022-06-09T11:15:52Z" name: usergate-firewall zone_id: ru-central1-a platform_id: standard-v2 resources: memory: "8589934592" cores: "4" core_fraction: "100" status: RUNNING boot_disk: mode: READ_WRITE device_name: fhmiq60rni2t******** auto_delete: true disk_id: fhmiq60rni2t******** network_interfaces: - index: "0" mac_address: d0:0d:2b:a8:3c:93 subnet_id: e9bqlr188as7******** primary_v4_address: address: 10.1.0.27 one_to_one_nat: address: 51.250.72.1 ip_version: IPV4 fqdn: fhm2na1siftp********.auto.internal scheduling_policy: {} network_settings: type: STANDARD placement_policy: {}
Подробнее о команде
yc compute instance create
см. в справочнике CLI.
-
Получите идентификатор последней версии образа UserGate NGFW из списка публичных образов.
-
Опишите в конфигурационном файле параметры ВМ
usergate-firewall
:resource "yandex_compute_disk" "boot-disk" { name = "boot-disk" type = "network-hdd" zone = "ru-central1-a" size = "110" image_id = "<идентификатор_образа_UserGate_NGFW>" } resource "yandex_compute_instance" "usergate-firewall" { name = "usergate-firewall" platform_id = "standard-v3" zone = "ru-central1-a" hostname = "usergate" resources { cores = 4 core_fraction = 100 memory = 8 } boot_disk { disk_id = yandex_compute_disk.boot-disk.id } network_interface { subnet_id = "${yandex_vpc_subnet.usergate-subnet.id}" nat = true nat_ip_address = <зарезервированный_IP_адрес> }
Подробнее см. в описании ресурса yandex_compute_instance
в документации провайдера Terraform. -
Проверьте корректность конфигурационных файлов.
-
В командной строке перейдите в папку, где находится конфигурационный файл.
-
Выполните проверку с помощью команды:
terraform plan
Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.
-
-
Разверните облачные ресурсы.
-
Если в конфигурации нет ошибок, выполните команду:
terraform apply
-
Подтвердите создание ресурсов: введите в терминал слово
yes
и нажмите Enter.
-
Создайте ВМ usergate-firewall
с помощью метода REST API create для ресурса Instance.
Настройте UserGate NGFW через веб-консоль администратора
Для настройки шлюза перейдите в веб-консоль администратора UserGate NGFW по адресу https://<публичный_адрес_ВМ_UserGate>:8001
и авторизуйтесь с данными по умолчанию: логин — Admin
, пароль — utm
.
После авторизации вам будет предложено изменить пароль по умолчанию и провести обновление ОС.
Настройте шлюз для работы в режиме межсетевого экрана
Сконфигурируйте UserGate NGFW:
- В верхнем меню выберите Настройки.
- В меню слева перейдите в раздел Сеть ⟶ Зоны.
- Нажмите на имя зоны
Trusted
. - Перейдите на вкладку Контроль доступа и включите опцию Консоль администрирования. Нажмите кнопку Сохранить.
- В меню слева перейдите в раздел Сеть ⟶ Интерфейсы.
- Нажмите на имя сетевого интерфейса
port0
. - На вкладке Общие в поле Зона выберите из списка зону
Trusted
. Нажмите кнопку Сохранить. - В меню слева перейдите в раздел Политики сети ⟶ Межсетевой экран.
- Нажмите на имя предустановленного правила
Allow trusted to untrusted
. - Перейдите на вкладку Назначение и отключите зону
Untrusted
. Нажмите кнопку Сохранить. - Включите правило
Allow trusted to untrusted
. Для этого выделите строку с правилом и в верхней части экрана нажмите кнопку Включить. - В меню слева перейдите в раздел Политики сети ⟶ NAT и маршрутизация.
- Нажмите на имя предустановленного правила
NAT from Trusted to Untrusted
. - Перейдите на вкладку Назначение и измените зону назначения с
Untrusted
наTrusted
. Нажмите кнопку Сохранить. - Включите правило
NAT from Trusted to Untrusted
. Для этого выделите строку с правилом и в верхней части экрана нажмите кнопку Включить.
На этом первоначальная настройка шлюза закончена.
Настройте правила фильтрации трафика
Из политик, предустановленных по умолчанию, рекомендуется использовать Block to botnets
, Block from botnets
и Example block RU RKN by IP list
. Предварительно измените в них значения нескольких параметров:
- Перейдите в раздел Политики сети ⟶ Межсетевой экран.
- Нажмите на имя предустановленного правила.
- Перейдите на вкладку Источник и измените исходную зону с
Untrusted
наTrusted
. - Перейдите на вкладку Назначение и отключите зону
Untrusted
. - Нажмите кнопку Сохранить.
- Включите выбранное правило. Для этого выделите строку с правилом и в верхней части экрана нажмите кнопку Включить.
Для обеспечения большей безопасности настройте дополнительные правила для фильтрации трафика:
-
Перейдите в раздел Политики сети ⟶ Межсетевой экран.
-
Добавьте первое правило для блокировки:
-
В верхней части экрана нажмите кнопку Добавить.
-
Укажите параметры правила:
- Название —
Блокировка протокола QUIC
. - Действие — Запретить.
- Название —
-
Перейдите на вкладку Источник и выберите
Trusted
. -
Перейдите на вкладку Сервис.
-
Нажмите кнопку Добавить.
-
Выберите сервис
Quick UDP Internet Connections
и нажмите кнопку Добавить. Затем нажмите кнопку Закрыть. -
Нажмите кнопку Сохранить.
-
-
Добавьте второе правило для блокировки:
-
В верхней части экрана нажмите кнопку Добавить.
-
Укажите параметры правила:
- Название —
Блокировка обновлений Windows
. - Действие — Запретить.
- Название —
-
Перейдите на вкладку Источник и выберите
Trusted
. -
Перейдите на вкладку Приложения.
-
Нажмите Добавить ⟶ Добавить приложения.
-
Выберите приложение
Microsoft Update
и нажмите кнопку Добавить. -
Выберите приложение
WinUpdate
и нажмите кнопку Добавить. Затем нажмите кнопку Закрыть. -
Нажмите кнопку Сохранить.
-
Вы можете добавить и другие правила для фильтрации трафика. Не рекомендуется совмещать сервисы и приложения в одном правиле. В этом случае правило может не сработать.
Настройте маршрутизацию для подсети .
Создайте статический маршрут:
-
В консоли управления
перейдите в каталог, где нужно создать статический маршрут. -
В списке сервисов выберите Virtual Private Cloud.
-
На панели слева выберите
Таблицы маршрутизации. -
Нажмите кнопку Создать.
-
Задайте имя таблицы маршрутизации. Требования к имени:
- длина — от 3 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
(Опционально) Добавьте описание таблицы маршрутизации.
-
Выберите сеть
usergate-network
. -
Нажмите кнопку Добавить маршрут.
-
В открывшемся окне введите префикс подсети назначения
0.0.0.0
и выберите0
в выпадающем списке. -
Укажите next hop — внутренний IP-адрес виртуальной машины UserGate
usergate-firewall
. -
Нажмите кнопку Добавить.
-
Нажмите кнопку Создать таблицу маршрутизации.
Чтобы использовать статические маршруты, необходимо привязать таблицу маршрутизации к подсети:
- На панели слева выберите Подсети.
- В строке подсети
usergate-subnet-ru-central1-a
нажмите кнопку . - В открывшемся меню выберите пункт Привязать таблицу маршрутизации.
- В открывшемся окне выберите созданную таблицу в списке.
- Нажмите кнопку Привязать.
Чтобы создать таблицу маршрутизации и добавить в нее статические маршруты:
-
Посмотрите описание команды CLI для создания таблиц маршрутизации:
yc vpc route-table create --help
-
Получите идентификаторы облачных сетей в вашем облаке:
yc vpc network list
Результат:
+----------------------+--------------------+ | ID | NAME | +----------------------+--------------------+ | enp846vf5fus******** | usergate-network | +----------------------+--------------------+
-
Создайте таблицу маршрутизации в сети
usergate-network
:yc vpc route-table create \ --name=test-route-table \ --network-id=enp846vf5fus******** \ --route destination=0.0.0.0/0,next-hop=10.129.0.24
Где:
name
— имя таблицы маршрутизации.network-id
— идентификатор сети, в которой будет создана таблица.route
— настройки маршрута, включают два параметра:destination
— префикс подсети назначения в нотации CIDR.next-hop
— внутренний IP-адрес виртуальной машины UserGateusergate-firewall
.
Результат:
...done id: enpsi6b08q2v******** folder_id: b1gqs1teo2q2******** created_at: "2019-06-24T09:57:54Z" name: test-route-table network_id: enp846vf5fus******** static_routes: - destination_prefix: 0.0.0.0/0 next_hop_address: 10.129.0.24
Чтобы использовать статические маршруты, необходимо привязать таблицу маршрутизации к подсети:
-
Получите список подсетей в вашем облаке:
yc vpc subnet list
Результат:
+----------------------+-------------------------------+----------------------+----------------------+---------------+-----------------+ | ID | NAME | NETWORK ID | ROUTE TABLE ID | ZONE | RANGE | +----------------------+-------------------------------+----------------------+----------------------+---------------+-----------------+ | b0c4l3v9jrgd******** | usergate-subnet-ru-central1-a | enpjsdf771h0******** | | ru-central1-a | [10.130.0.0/24] | +----------------------+-------------------------------+----------------------+----------------------+---------------+-----------------+
-
Привяжите таблицу маршрутизации к подсети, в которой будет работать веб-сервис, например, к подсети
usergate-subnet-ru-central1-a
:yc vpc subnet update b0c4l3v9jrgd******** --route-table-id e2l5345dlgr1********
Результат:
..done id: b0c4l3v9jrgd******** folder_id: b1gqs1teo2q2******** created_at: "2019-03-12T13:27:22Z" name: subnet-1 network_id: enp846vf5fus******** zone_id: ru-central1-a v4_cidr_blocks: - 192.168.0.0/24 route_table_id: e2l5345dlgr1********
Чтобы создать таблицу маршрутизации и добавить в нее статические маршруты:
-
Опишите в конфигурационном файле параметры ресурсов, которые необходимо создать:
-
name
— имя таблицы маршрутизации. Формат имени:- длина — от 3 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
network_id
— идентификатор сети, в которой будет создана таблица. -
static_route
— описание статического маршрута:destination_prefix
— префикс подсети назначения в нотации CIDR.next_hop_address
— внутренний IP-адрес виртуальной машины из разрешенных диапазонов, через которую будет направляться трафик.
Пример структуры конфигурационного файла:
resource "yandex_vpc_route_table" "usergate-rt-a" { name = "<имя_таблицы_маршрутизации>" network_id = "<идентификатор_сети>" static_route { destination_prefix = "0.0.0.0/0" next_hop_address = "10.129.0.24" } }
Чтобы добавить, изменить или удалить таблицу маршрутизации, используйте ресурс
yandex_vpc_route_table
с указанием на сеть в полеnetword id
(например,network_id = "${yandex_vpc_network.lab-net.id}"
).Более подробную информацию о параметрах ресурса
yandex_vpc_route_table
в Terraform см. в документации провайдера . -
-
Проверьте корректность конфигурационных файлов.
-
В командной строке перейдите в папку, где вы создали конфигурационный файл.
-
Выполните проверку с помощью команды:
terraform plan
Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.
-
-
Разверните облачные ресурсы.
-
Если в конфигурации нет ошибок, выполните команду:
terraform apply
-
Подтвердите создание ресурсов: введите в терминал слово
yes
и нажмите Enter.После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления
или с помощью команды CLI:yc vpc route-table list
-
Протестируйте межсетевой экран
Чтобы проверить межсетевой экран, создайте тестовый веб-сервис и убедитесь, что он доступен из интернета.
Подготовьте тестовую виртуальную машину
-
Создайте виртуальную машину из публичного образа Linux в подсети
usergate-subnet-ru-central1-a
. В настройках виртуальной машины включите серийную консоль. -
Подключитесь к ВМ с помощью CLI, выполнив команду:
yc compute connect-to-serial-port --instance-name <имя_виртуальной_машины>
Где:
--instance-name
- имя тестовой ВМ. -
Запустите тестовый веб-сервис:
sudo python3 -m http.server 80
Веб-сервер будет отвечать на запросы на порт 80 и возвращать список папок и файлов из каталога.
Настройте реверс-proxy к веб-сервису через межсетевой экран
-
В веб-консоли администратора UserGate в верхнем меню выберите Настройки.
-
Слева в разделе Глобальный портал выберите Веб-портал и настройте доступ по HTTP-адресу:
- Нажмите кнопку Добавить, чтобы открыть диалог добавления портала.
- Активируйте чекбокс Включено.
- В поле Название введите
Тестовый веб-портал
. - В поле URL введите
http://<IP_адрес_ВМ_UserGate>
. - Профиль SSL оставьте по умолчанию.
- В поле Сертификат выберите
CA (Default)
. - Нажмите Сохранить.
-
Выберите Серверы reverse-прокси и добавьте новый сервер:
- Нажмите кнопку Добавить, чтобы открыть диалог добавления сервера.
- В поле Название введите
Локальный сервер
. - В поле Адрес сервера введите
<внутренний_IP_тестовой_ВМ>
, например,10.129.0.24
. - В поле Порт введите
80
. - Нажмите Сохранить.
-
Выберите Правила reverse-прокси и добавьте новое правило:
- Нажмите кнопку Добавить, чтобы открыть диалог добавления правила.
- Активируйте чекбокс Включено.
- В поле Название введите
Доступ к локальному серверу
. - В поле Сервер reverse-прокси выберите
Локальный сервер
. - В поле Порты введите
5550
. - Нажмите Сохранить.
На этом настройка доступа к локальному серверу завершена. Межсетевой экран будет принимать запросы на порт 5550 и перенаправлять их на порт 80 по адресу тестовой ВМ.
Протестируйте доступность веб-сервера из интернета
-
Убедитесь, что вы можете выполнить запрос к веб-сервису, перейдя в браузере по адресу:
http://<IP_адрес_ВМ_UserGate>:5550
В ответ должен вернуться список папок и файлов из каталога.
-
В веб-консоли администратора UserGate в верхнем меню выберите Журналы и отчёты.
-
Слева в разделе Журналы выберите Журнал веб-доступа и убедитесь, что появилась запись о выполнении правила
Доступ к локальному серверу
.
Как удалить созданные ресурсы
Чтобы перестать платить за созданные ресурсы:
- Удалите ВМ
usergate-firewall
иlocal-service
. - Удалите статический публичный IP-адрес.