Настройка серверов reverse-прокси производится на уровне global-portal reverse-proxy-servers.
Для создания сервера reverse-прокси используется следующая команда:
Admin@nodename# create global-portal reverse-proxy-servers <parameter>
Доступно указание следующих параметров:
|
Параметр |
Описание |
|---|---|
|
name |
Название сервера reverse-прокси. |
|
description |
Описание сервера reverse-прокси. |
|
address |
Адрес или домен сервера reverse-прокси. |
|
port |
TCP-порт сервера reverse-прокси. |
|
https |
Использование протокола HTTPS до публикуемого сервера:
|
|
keep-source-ip |
Использование оригинального IP-адреса источника в пакетах, пересылаемых на публикуемый сервер:
Важно!Если в пакетах сохраняется оригинальный IP-адрес источника, для корректной работы необходимо настроить маршрутизацию таким образом, чтобы веб-сервер отвечал через тот же сетевой интерфейс UserGate WAF, с которого приходят запросы клиентов. Для этого на веб-сервере в качестве шлюза по умолчанию можно указать UserGate WAF или можно настроить статические маршруты через UserGate WAF для «белых» IP-адресов источников.
|
Команда для редактирования параметров сервера reverse-прокси:
Admin@nodename# set global-portal reverse-proxy-servers <server-name> <parameter>
Параметры, которые могут быть обновлены, аналогичны с параметрами команды для добавления нового сервера.
Структура команды для отображения информации о сервере reverse-прокси:
Admin@nodename# show global-portal reverse-proxy-servers <server-name>
Структура команды для удаления сервера:
Admin@nodename# delete global-portal reverse-proxy-servers <server-name>
Правила reverse-прокси в интерфейсе командной строки настраиваются на уровне global-portal reverse-proxy-rules. Подробнее о структуре команд — в разделе UserGate Policy Language.
Структура команды для создания правила reverse-прокси:
Admin@nodename# create global-portal reverse-proxy-rules <position> upl-rule <parameters>
Параметры настройки правил reverse-прокси:
|
Параметр |
Описание |
|---|---|
|
OK |
Действие для создания правила с помощью UPL |
|
enabled |
Включение/отключение правила:
|
|
name |
Название правила reverse-прокси. Например, name("Reverse proxy rule example") |
|
desc |
Описание правила. Например, desc("Reverse proxy rule example set via CLI") |
|
profile |
Сервер reverse-прокси, куда WAF будет пересылать запросы. Для указания сервера: profile("Reverse proxy server example") |
|
url.port |
Порт, на котором WAF будет слушать входящие запросы. Например, url.port = 80 |
|
is_https |
Поддержка HTTPS:
|
|
ssl_profile |
Профиль SSL; указывается при использовании HTTPS: ssl_profile("Default SSL profile"). Подробнее о работе с профилями SSL через CLI — в разделе «Настройка профилей SSL» |
|
certificate |
Сертификат, используемый для поддержки HTTPS-соединения. Указывается при использовании HTTPS: certificate("Certificate example") |
|
cert_auth_enabled |
Аутентификация по сертификату:
|
|
src.zone |
Зона источника трафика. Для указания зоны источника, например Untrusted: src.zone = Untrusted. Подробнее о настройке зон с использованием интерфейса командной строки — в разделе «Зоны» |
|
src.ip |
Добавление списков IP-адресов или доменов источника. Для указания списка IP-адресов: src.ip = lib.network(); в скобках необходимо указать название списка. Подробнее о создании и настройке списков IP-адресов с использованием CLI — в разделе «Настройка IP-адресов». Для указания списка доменов источника: src.ip = lib.url(); в скобках необходимо указать название URL, в который были добавлены необходимые домены. Подробнее о создании и настройке списков URL с использованием интерфейса командной строки — в разделе «Настройка списков URL» |
|
src.geoip |
Указание GeoIP источника; необходимо указать код страны (например, src.geoip = RU). Коды названий стран доступны по ссылке: ISO 3166-1. Важно! Существует ограничение на количество GeoIP, которое может быть указано: не более 15
|
|
user |
Пользователи и группы пользователей, для которых применяется правило reverse-прокси. Добавление пользователей доступно только при использовании авторизации по сертификату. Для добавления LDAP групп и пользователей необходим корректно настроенный LDAP-коннектор (подробнее о настройке LDAP-коннектора через CLI — в разделе «Настройка LDAP-коннектора»). Пример добавления локальных пользователя (local_user) и группы (Local Group), пользователя (example.local\AD_user) и группы LDAP (AD group): user = (local_user, "CN=Local Group, DC=LOCAL", "example.loc\\AD_user", "CN=AD group, OU=Example, DC= example, DC=loc")
Заранее был настроен домен Active Directory example.loc. При добавлении пользователей и групп LDAP можно указать список путей на сервере, начиная с которых система будет осуществлять поиск пользователей и групп |
|
dst.ip |
Один из внешних IP-адресов WAF, доступный из сети интернет, куда адресован трафик внешних клиентов. Для указания списка IP-адресов: dst.ip = lib.network(); в скобках необходимо указать название списка. Подробнее о создании и настройке списков IP-адресов с использованием CLI — в разделе «Настройка IP-адресов». Для указания списка доменов назначения: dst.ip = lib.url(); в скобках необходимо указать название URL-списка, в который были добавлены необходимые домены. Подробнее о создании и настройке списков URL с использованием интерфейса командной строки — в разделе «Настройка списков URL» |
|
dst.geoip |
Указание GeoIP; необходимо указать код страны (например, dst.geoip = RU). Коды названий стран доступны по ссылке ISO 3166-1. Важно! Существует ограничение на количество GeoIP, которое может быть указано: не более 15
|
|
request.header.User-Agent |
Useragent пользовательских браузеров, для которых будет применено данное правило. Для указания Useragent пользовательских браузеров: request.header.User-Agent = lib.useragent(); в скобках необходимо указать название категории Useragent браузеров. Подробнее о создании и настройке собственных списков с использованием интерфейса командной строки — в разделе «Настройка Useragent браузеров» |
|
rewrite_path |
Подмена домена и/или пути в URL-запросе пользователя. Например, для преобразования запросов, приходящих на http://www.example.com/path1 в http://www.example.loc/path2 нужно указать: rewrite_path("http://www.example.com/path1", "http://www.example.loc/path2") |
|
waf_profile |
Включение защиты веб-приложений в правиле reverse-прокси. Необходимо указать заранее созданный WAF-профиль. Например, waf_profile("Example WAF profile"). Подробнее о создании и настройке WAF-профилей с использованием интерфейса командной строки — в разделе «Настройки безопасности WAF в CLI» |
|
websocket_profile |
Включение обработки websocket-соединений (доступно в версии ПО 7.4.1 и выше). Необходимо указать заранее созданный websocket-профиль. Например, websocket_profile("Example websocket profile") Подробнее о создании и настройке WAF-профилей с использованием интерфейса командной строки — в разделе «Настройка WebSocket-профилей в CLI» |
Для редактирования правила reverse-прокси используется команда:
Admin@nodename# set global-portal reverse-proxy-rules <position> upl-rule <parameters>
Для просмотра параметров правила reverse-прокси используется команда:
Admin@nodename# show global-portal reverse-proxy-rules <position>
Пример создания правила reverse-прокси:
Admin@nodename# create global-portal reverse-proxy-rules 1 upl-rule OK \
...url.port = 80 \
...src.zone = Untrusted \
...profile("Reverse proxy server1") \
...rewrite_path("example.com/path1", "example.local/path2") \
...waf_profile("Example WAF profile") \
...name("Test reverse proxy rule") \
...desc("Test reverse proxy rule description") \
...enabled(true)
...
Admin@nodename# show global-portal reverse-proxy-rules 1
% ----------------- 1 -----------------
OK \
url.port = 80 \
src.zone = Untrusted \
desc("Test reverse proxy rule description") \
profile("Reverse proxy server1") \
rewrite_path("example.com/path1", "example.local/path2") \
waf_profile("Example WAF profile") \
enabled(true) \
id("7dc7041a-6538-400b-8f1e-9b18287218ac") \
name("Test reverse proxy rule")
Для удаления правила reverse-прокси используется команда:
Admin@nodename# delete global-portal reverse-proxy-rules <position>