Создание и настройка шлюза UserGate в режиме прокси-сервера
UserGate
Вы создадите виртуальную машину UserGate в Yandex Cloud и настроите шлюз в режиме прокси-сервера. Это позволит организовать безопасный доступ в интернет для сотрудников вашей компании из любой точки мира (офис, дом, кафе и прочие публичные места). Для более расширенного изучения возможностей UserGate пройдите бесплатный курс UserGate Getting Started
Типовая схема использования UserGate в режиме прокси-сервера в Yandex Cloud представлена на рисунке ниже.
Чтобы развернуть шлюз 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
и ее подсетиusergate-subnet-ru-central1-a
:resource "yandex_vpc_network" "usergate-network" { name = "usergate-network" } resource "yandex_vpc_subnet" "usergate-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.
Создайте группу безопасности
-
В консоли управления
перейдите на страницу каталога, в котором нужно создать группу. -
В списке сервисов выберите Virtual Private Cloud.
-
На панели слева выберите
Группы безопасности. -
Нажмите кнопку Создать группу безопасности.
-
Введите имя группы безопасности —
usergate-sg
. -
В поле Сеть выберите сеть
usergate-network
. -
В блоке Правила создайте правила по инструкции под таблицей:
Направление
трафикаОписание Диапазон портов Протокол Назначение /
ИсточникCIDR блоки Исходящий any
Весь
Любой
CIDR
0.0.0.0/0
Входящий icmp
Весь
ICMPv6
CIDR
0.0.0.0/0
Входящий rdp
3389
TCP
CIDR
0.0.0.0/0
Входящий ssh
22
TCP
CIDR
0.0.0.0/0
Входящий usergate 8001
8001
TCP
CIDR
0.0.0.0/0
Входящий usergate 8090
8090
TCP
CIDR
0.0.0.0/0
- Перейдите на вкладку Исходящий трафик или Входящий трафик.
- Нажмите кнопку Добавить правило. В открывшемся окне:
-
В поле Диапазон портов укажите один порт или диапазон портов, куда или откуда будет поступать трафик.
-
В поле Протокол укажите нужный протокол или оставьте Любой, чтобы разрешить передачу трафика по всем протоколам.
-
В поле Назначение или Источник выберите назначение правила:
- CIDR — правило будет применено к диапазону IP-адресов. В поле CIDR блоки укажите CIDR и маски подсетей, в которые или из которых будет поступать трафик. Чтобы добавить несколько CIDR, нажимайте кнопку Добавить CIDR.
- Группа безопасности — правило будет применено к ВМ из текущей группы или из выбранной группы безопасности.
-
Нажмите кнопку Сохранить.
-
-
Нажмите кнопку Сохранить.
Выполните следующую команду:
yc vpc security-group create usergate-sg \
--network-name usergate-network \
--rule direction=egress,port=any,protocol=any,v4-cidrs=[0.0.0.0/0] \
--rule direction=ingress,protocol=icmp,v4-cidrs=[0.0.0.0/0] \
--rule direction=ingress,port=3389,protocol=tcp,v4-cidrs=[0.0.0.0/0] \
--rule direction=ingress,port=22,protocol=tcp,v4-cidrs=[0.0.0.0/0] \
--rule direction=ingress,port=8001,protocol=tcp,v4-cidrs=[0.0.0.0/0] \
--rule direction=ingress,port=8090,protocol=tcp,v4-cidrs=[0.0.0.0/0]
Результат:
id: enpu0e0nrqdn********
folder_id: b1g86q4m5vej********
created_at: "2022-06-29T09:38:40Z"
name: usergate-sg
network_id: enp3srbi9u49********
status: ACTIVE
rules:
- id: enpdp9d0ping********
direction: EGRESS
protocol_name: ANY
protocol_number: "-1"
cidr_blocks:
v4_cidr_blocks:
- 0.0.0.0/0
- id: enps2r5ru3s1********
direction: INGRESS
protocol_name: ICMP
protocol_number: "1"
cidr_blocks:
v4_cidr_blocks:
- 0.0.0.0/0
- id: enpgonbui61a********
direction: INGRESS
ports:
from_port: "3389"
to_port: "3389"
protocol_name: TCP
protocol_number: "6"
cidr_blocks:
v4_cidr_blocks:
- 0.0.0.0/0
- id: enpbg1jh11hv********
direction: INGRESS
ports:
from_port: "22"
to_port: "22"
protocol_name: TCP
protocol_number: "6"
cidr_blocks:
v4_cidr_blocks:
- 0.0.0.0/0
- id: enpgdavevku7********
direction: INGRESS
ports:
from_port: "8001"
to_port: "8001"
protocol_name: TCP
protocol_number: "6"
cidr_blocks:
v4_cidr_blocks:
- 0.0.0.0/0
- id: enp335ibig9k********
direction: INGRESS
ports:
from_port: "8090"
to_port: "8090"
protocol_name: TCP
protocol_number: "6"
cidr_blocks:
v4_cidr_blocks:
- 0.0.0.0/0
Подробнее о команде yc vpc security-group create
см. в справочнике CLI.
-
Добавьте в конфигурационный файл параметры группы безопасности
usergate-sg
:resource "yandex_vpc_security_group" "usergate-sg" { name = "usergate-sg" network_id = "${yandex_vpc_network.usergate-network.id}" egress { protocol = "ANY" port = "ANY" v4_cidr_blocks = ["0.0.0.0/0"] } ingress { protocol = "ICMP" port = "ANY" v4_cidr_blocks = ["0.0.0.0/0"] } ingress { protocol = "TCP" port = 3389 v4_cidr_blocks = ["0.0.0.0/0"] } ingress { protocol = "TCP" port = 22 v4_cidr_blocks = ["0.0.0.0/0"] } ingress { protocol = "TCP" port = 8001 v4_cidr_blocks = ["0.0.0.0/0"] } ingress { protocol = "TCP" port = 8090 v4_cidr_blocks = ["0.0.0.0/0"] } }
Подробнее о ресурсе
yandex_vpc_security_group
см. в документации провайдера Terraform. -
Проверьте корректность конфигурационных файлов.
-
В командной строке перейдите в папку, где вы создали конфигурационный файл.
-
Выполните проверку с помощью команды:
terraform plan
Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.
-
-
Разверните облачные ресурсы.
-
Если в конфигурации нет ошибок, выполните команду:
terraform apply
-
Подтвердите создание ресурсов: введите в терминал слово
yes
и нажмите Enter.
-
Используйте вызов gRPC API SecurityGroupService/Create или метод REST API create.
Зарезервируйте статический публичный 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.
Создайте виртуальную машину UserGate
-
На странице каталога в консоли управления
в правом верхнем углу нажмите кнопку Создать ресурс. -
Выберите пункт Виртуальная машина.
-
Укажите имя виртуальной машины:
usergate-proxy
. -
Выберите зону доступности
ru-central1-a
. -
В блоке Образ загрузочного диска перейдите на вкладку Marketplace и выберите образ UserGate NGFW.
-
В блоке Вычислительные ресурсы:
-
Выберите платформу Intel Ice Lake.
-
Укажите необходимое количество vCPU и объем RAM:
- vCPU —
4
. - Гарантированная доля vCPU —
100%
. - RAM —
8 ГБ
.
Примечание
Указанные параметры подойдут для функционального тестирования шлюза. Чтобы рассчитать параметры для более серьезной нагрузки, ознакомьтесь с официальными рекомендациями
UserGate. - vCPU —
-
-
В блоке Сетевые настройки:
- Выберите сеть
usergate-network
и подсетьusergate-subnet-ru-central1-a
. - В поле Публичный адрес выберите Список и в появившемся списке выберите зарезервированный ранее IP-адрес.
- В поле Группы безопасности выберите из списка группу
usergate-sg
.
- Выберите сеть
-
В блоке Доступ укажите данные для доступа на ВМ:
-
В поле Логин введите имя пользователя.
-
В поле SSH-ключ вставьте содержимое файла открытого ключа.
Пару ключей для подключения по SSH необходимо создать самостоятельно, см. раздел Создание пары ключей SSH.
-
-
Нажмите кнопку Создать ВМ.
-
Создайте пару ключей SSH.
-
Получите идентификатор группы безопасности
usergate-sg
:yc vpc security-group get usergate-sg | grep "^id"
Подробнее о команде
yc vpc security-group get
см. в справочнике CLI. -
Выполните команду:
yc compute instance create \ --name usergate-proxy \ --memory 8 \ --cores 4 \ --zone ru-central1-a \ --network-interface subnet-name=usergate-subnet-ru-central1-a,nat-ip-version=ipv4,security-group-ids=<идентификатор_группы_безопасности_usergate-sg> \ --create-boot-disk image-folder-id=standard-images,image-family=usergate-ngfw \ --ssh-key <путь_к_открытой_части_SSH-ключа> \
Результат:
id: fhm2na1siftp******** folder_id: b1g86q4m5vej******** created_at: "2022-06-09T11:15:52Z" name: usergate-proxy 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-proxy
: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-proxy" { name = "usergate-proxy" 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 security_group_ids = <идентификатор_группы_безопасности_usergate-sg> } }
Подробнее см. в описании ресурса yandex_compute_instance
в документации провайдера Terraform. -
Проверьте корректность конфигурационных файлов.
-
В командной строке перейдите в папку, где вы создали конфигурационный файл.
-
Выполните проверку с помощью команды:
terraform plan
Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.
-
-
Разверните облачные ресурсы.
-
Если в конфигурации нет ошибок, выполните команду:
terraform apply
-
Подтвердите создание ресурсов: введите в терминал слово
yes
и нажмите Enter.
-
Создайте ВМ usergate-proxy
с помощью метода REST API create для ресурса Instance.
Настройте UserGate NGFW через веб-консоль администратора
Для настройки шлюза перейдите в веб-консоль администратора UserGate NGFW по адресу https://<публичный_IP-адрес_ВМ>: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
. Для этого выделите строку с правилом и в верхней части экрана нажмите кнопку Включить.
На этом первоначальная настройка шлюза закончена. Теперь можно использовать UserGate в качестве прокси-сервера, указав в настройках браузера публичный IP-адрес и порт 8090
.
Настройте правила фильтрации трафика
Из политик, предустановленных по умолчанию, рекомендуется использовать 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
и нажмите кнопку Добавить. Затем нажмите кнопку Закрыть. -
Нажмите кнопку Сохранить.
-
Вы можете добавить и другие правила для фильтрации трафика. Не рекомендуется совмещать сервисы и приложения в одном правиле. В этом случае правило может не сработать.
Настройте правила фильтрации контента
Из политик, предустановленных по умолчанию, рекомендуется включить Example black list
, Example threats sites
и Example AV check
:
- Перейдите в раздел Политики безопасности ⟶ Фильтрация контента.
- Выделите строку с выбранным правилом и в верхней части экрана нажмите кнопку Включить.
Для обеспечения большей безопасности настройте дополнительные правила для фильтрации контента:
-
Перейдите в раздел Политики безопасности ⟶ Фильтрация контента.
-
Добавьте правило для фильтрации:
-
В верхней части экрана нажмите кнопку Добавить.
-
Укажите параметры правила:
- Название —
Блокировка социальных сетей
. - Действия — Запретить.
- Название —
-
Перейдите на вкладку Источник и выберите
Trusted
. -
Перейдите на вкладку Категории.
-
Нажмите кнопку Добавить.
-
В поисковой строке найдите категорию
Социальные сети
и нажмите кнопку Добавить. Затем нажмите кнопку Закрыть. -
Нажмите кнопку Сохранить.
-
Вы можете добавить и другие правила для фильтрации контента. Не рекомендуется совмещать несколько параметров в одном правиле. В этом случае правило может не сработать.
Настройте SSL-инспектирование
По умолчанию UserGate использует для расшифровки трафика свой сертификат CA (Default)
. Но вы также можете добавить свой собственный сертификат.
Чтобы добавить сертификат:
-
Перейдите в раздел UserGate ⟶ Сертификаты.
-
В верхней части экрана нажмите кнопку Импорт.
-
Заполните параметры сертификата:
- Название — введите произвольное название.
- Файл сертификата — выберите файл сертификата в форматах DER, PEM или PKCS12.
- (Опционально) Приватный ключ — выберите приватный ключ сертификата.
- (Опционально) Пароль — пароль для приватного ключа или контейнера PKCS12.
- (Опционально) Цепочка сертификатов — выберите файл, если необходимо возвращать клиентам полную цепочку сертификатов.
-
Нажмите кнопку Сохранить.
-
Нажмите на имя добавленного сертификата.
-
В поле Используется выберите SSL инспектирование.
-
Нажмите кнопку Сохранить.
-
Добавьте правило для SSL-инспектирования:
-
Перейдите в раздел Политики безопасности ⟶ Инспектирование SSL.
-
В верхней части экрана нажмите кнопку Добавить.
-
Заполните параметры правила и нажмите кнопку Сохранить.
Для реализации SSL-инспектирования вы также можете использовать правило по умолчанию
Decrypt all for unknown users
.
-
Как удалить созданные ресурсы
Чтобы перестать платить за созданные ресурсы:
- Удалите ВМ
usergate-proxy
. - Удалите статический публичный IP-адрес.