Настройки глобального портала
 
Настройка серверов reverse-прокси

Настройка серверов 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 до публикуемого сервера:

  • on: использовать.

  • off: не использовать.

keep-source-ip

Использование оригинального IP-адреса источника в пакетах, пересылаемых на публикуемый сервер:

  • on: оставить оригинальный IP-адрес источника.

  • off: заменить IP-адрес источника на IP-адрес UserGate.

Важно!Если в пакетах сохраняется оригинальный 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-прокси

Правила 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

Включение/отключение правила:

  • enabled(yes) или enabled(true) — включение;

  • enabled(no) или enabled(false) — отключение

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:

  • is_https(yes) или is_https(true) — использовать HTTPS;

  • is_https(no) или is_https(false) — не использовать HTTPS.

ssl_profile

Профиль SSL; указывается при использовании HTTPS: ssl_profile("Default SSL profile").

Подробнее о работе с профилями SSL через CLI — в разделе «Настройка профилей SSL»

certificate

Сертификат, используемый для поддержки HTTPS-соединения.

Указывается при использовании HTTPS: certificate("Certificate example")

cert_auth_enabled

Аутентификация по сертификату:

  • cert_auth_enabled(yes) или cert_auth_enabled(true) — включить авторизацию по сертификату;

  • cert_auth_enabled(no) или cert_auth_enabled(false) — отключить авторизацию по сертификату

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>