|
Настройка публикации веб-сервисов
UserGate WAF поддерживает публикацию веб-сервисов. Доступ к веб-сервисам и безопасность соединений с ними контролируются настраиваемыми правилами публикации. Режим публикации предоставляет следующие возможности:
Чтобы опубликовать веб-сервис: 1. Создайте один или несколько серверов публикации. 2. Если для доступа к веб-сервису используются несколько серверов, создайте для них правило балансировки. 3. Создайте правила публикации, которые будут определять условия публикации веб-сервисов выбранным сервером или балансировщиком. Важно!Правила публикации применяются сверху вниз в списке правил. Срабатывает только первое правило публикации, для которого совпали все условия, указанные в параметрах правила.
4. В разделе Настройки ➜ Сеть ➜ Зоны в параметрах контроля доступа той зоны, в которой необходимо разрешить доступ к внутренним ресурсам, разрешите сервис Reverse-прокси. Создание сервера публикацииЧтобы создать сервер публикации: 1. В разделе Политика сервисов ➜ Серверы публикации нажмите Добавить. 2. В окне Настройка сервера публикации укажите название, IP-адрес или FQDN и TCP-порт сервера публикации. 3. Если необходимо, настройте остальные параметры:
Важно!Если установлен флажок «Не изменять IP-адрес источника», для корректной работы необходимо настроить маршрутизацию таким образом, чтобы сервер публикации отвечал через тот же сетевой интерфейс UserGate WAF, с которого приходят запросы клиентов. Для этого на сервере публикации в качестве шлюза по умолчанию можно указать UserGate WAF или можно настроить статические маршруты через UserGate WAF для «белых» IP-адресов источников.
4. Сохраните изменения. Балансировка нагрузки на серверы публикацииЕсли для доступа к веб-сервису развернуто несколько серверов публикации, вы можете распределять клиентские запросы между ними с помощью правил балансировки нагрузки. Чтобы создать правило балансировки серверов публикации: 1. В разделе Политика сервисов ➜ Серверы публикации создайте серверы публикации веб-сервисов. Убедитесь, что в окне Настройка сервера публикации для каждого сервера, который участвует в балансировке, в поле Адрес сервера указан IP-адрес. 2. В разделе Политика сервисов ➜ Балансировка сервисов нажмите Добавить. 3. В окне Настройка правила балансировки сервисов на вкладке Общие укажите название правила и включите его. 4. На вкладке Серверы публикации добавьте серверы, на которые будет распределяться нагрузка. 5. Сохраните изменения. Создание правила публикацииПравила публикации позволяют фильтровать запросы к веб-сервисам, контролировать доступ к ним и обеспечивать безопасное соединение. Созданные правила применяются поочередно сверху вниз в том порядке, в котором они указаны в списке. Выполняется только первое правило, для которого совпали все указанные в нем условия. Это значит, что более специфические правила должны быть выше в списке, чем более общие правила. Вы можете мышью перетаскивать правила в списке для изменения порядка применения правил. Чтобы создать правило публикации: 1. В разделе Настройки ➜ Политика сервисов ➜ Правила публикации нажмите Добавить. 2. В окне Настройка правила публикации на вкладке Общие:
ПримечаниеПараметр доступен, если в списке уже есть другие правила. 3. На вкладке Источник, выберите минимум одну зону источника трафика, а также, если необходимо, добавьте списки IP-адресов, доменных имен или GeoIP-адреса (не более 15 адресов), для которых будет разрешен обмен трафиком с серверами публикации. Важно!Не добавляйте в списки строки с символом «*», они будут игнорироваться.
ПримечаниеВы также можете настроить правило, игнорирующее источники трафика в указанных зонах и с выбранными адресами. Для этого на вкладке «Источник» нужно сформировать список нежелательных зон и/или адресов и в соответствующих блоках параметров включить «Инвертировать».
ПримечаниеКаждые пять минут UserGate WAF выполняет разрешение доменных имен в IP-адреса и хранит полученный результат во внутреннем кэше на время жизни DNS-записи. По истечении времени жизни UserGate WAF автоматически обновляет значение IP-адреса.
Важно!Обработка трафика происходит по следующей логике: условия объединяются по «ИЛИ», если указаны несколько списков IP-адресов и/или доменов; условия объединяются по «И», если указаны GeoIP и списки IP-адресов и/или доменов.
4. На вкладке Назначение укажите IP-адреса, назначенные на интерфейсы, которые принимают входящие соединения. Этот параметр следует настраивать, когда на один интерфейс UserGate WAF назначено несколько IP-адресов либо несколько интерфейсов подключены к сети. ПримечаниеВы также можете настроить правило, игнорирующее входящие соединения на указанные адреса. Для этого на вкладке «Назначение» укажите адреса и включите «Инвертировать».
Важно!Обработка трафика происходит по следующей логике: условия объединяются по «ИЛИ», если указаны несколько списков IP-адресов и/или доменов; условия объединяются по «И», если указаны GeoIP и списки IP-адресов и/или доменов.
5. На вкладке Профили безопасности, если необходимо, включите защиту веб-сервисов и WebSocket-соединений. Подробнее об этом — в разделах «Настройка параметров безопасности WAF» и «Защита WebSocket-соединений». 6. На вкладке Веб-сервисы нажмите Добавить и укажите путь к одному или нескольким веб-сервисам, запросы к которым будет обрабатывать правило. ПримечаниеФормат записи: <host>/<path>, где <host> — обязательный параметр (совпадение строгое, наличие и отсутствие символа «/» в конце названия узла без пути равнозначно; все названия узлов приводятся к нижнему регистру.), а <path> — необязательный, без которого будет выбираться любой путь (совпадение префиксное, не строгое). При указании пути для <host> в качестве маски можно использовать символ *. Например, запись *.example.org соответствует как www.example.org, так и www.sub.example.org.
Важно!Следует указывать те веб-сервисы, публикацию которых обеспечивает сервер, выбранный на шаге 2. В противном случае правило сработает некорректно.
7. На вкладке Useragent, если необходимо, добавьте идентификационные строки клиентских браузеров, для которых будет разрешен обмен трафиком с веб-сервисами. ПримечаниеВы также можете настроить правило, игнорирующее определенные браузеры, запрашивающие доступ к веб-серверу. Для этого на вкладке «Useragent» нужно сформировать список нежелательных браузеров и включить «Инвертировать».
8. На вкладке Подмена путей, если необходимо, настройте переопределение путей URL. Подробнее о подмене путей — в разделе ниже. 9. Сохраните изменения. Подмена путей в правилах публикацииПодмена путей в правилах публикации используется для модификации HTTP-запроса пользователя. Правило публикации обрабатывает запрос, выполняя в нем подмену пути, и передает модифицированный запрос на указанный сервер публикации. Веб-сервис, доступ к которому контролируется этим сервером публикации, получает и обрабатывает модифицированный запрос и возвращает соответствующий ответ. Таким образом вы можете управлять разделением трафика для разных сервисов. Чтобы настроить подмену путей в правиле публикации: 1. В разделе Настройки ➜ Политика сервисов ➜ Правила публикации создайте или выберите правило. 2. В окне Настройка правила публикации на вкладке Подмена путей установите флажок Подмена путей. 3. Нажмите Добавить и укажите пути подмены одним или двумя способами:
ПримечаниеВы можете настраивать подмену путей и для кириллических доменов.
4. Сохраните правило. При обработке HTTP-запроса правило публикации сработает, если путь, указанный на вкладке Веб-сервисы, совпадет с путем URL в HTTP-запросе. Затем происходит подмена пути в HTTP-запросе, если она предусмотрена сработавшим правилом: паттерн из поля Изменить с меняется на паттерн из поля Изменить на. Если запрос пользователя не попадет ни под одно правило публикации, в ответ на него будет получена ошибка: 403 Forbidden. Условия проверки соответствияСинтаксис HTTP-запроса представляет собой следующую последовательность: <scheme>://<host>:<port>/<path>. Паттерн в поле Изменить с состоит из последовательности <host>/<path> и должен удовлетворять следующим условиям:
При совпадении запроса и исходного паттерна правило считается сработавшим. В таблице ниже приведены примеры срабатываний паттернов.
Примеры срабатывания подмены путейРассмотрим детальнее логику работы подмены путей. Для этого создадим правило test.dev/exa ➜ test.dev/ad/test и сделаем несколько запросов.
1) Запрос на test.dev/exalala. Параметр path = /exalala. Из него убирается path паттерна из поля Изменить с, в данном примере убирается /exa. Оставшаяся часть: lala. При дальнейшей конвертации берется полученный остаток lala и добавляется к концу path паттерна из поля Изменить на, то есть: /ad/test + lala. В итоге, после преобразования, параметр path получает значение /ad/testlala. Таким образом, конечный запрос будет отправлен по адресу test.dev/ad/testlala. 2) Запрос на test.dev/exa/vvv. Параметр path = /exa/vvv. Из него убирается path паттерна из поля Изменить c, в данном примере убирается /exa. Оставшаяся часть: /vvv. При дальнейшей конвертации берется полученный остаток /vvv и добавляется к концу path паттерна из поля Изменить на, то есть: /ad/test + /vvv. В итоге, после преобразования, параметр path получает значение ad/test/vvv. Таким образом, конечный запрос будет отправлен по адресу test.dev/ad/test/vvv. Когда между веб-клиентом и узлом WAF находятся прокси-серверы, балансировщики нагрузки или другие сетевые узлы, в запросах, проходящих через них, IP-адрес источника (веб-клиента, отправившего исходный запрос), заменяется собственным IP-адресом такого сетевого узла. Для корректного определения реального IP-адреса источника прокси-серверы или балансировщики могут передавать его в специальных HTTP-заголовках, таких как X-Real-IP, X-Forwarded-For или пользовательские заголовки. В UserGate WAF есть возможность определения реального IP-адреса источника запроса по таким HTTP-заголовкам. Данные, полученные из заголовков X-Real-IP и X-Forwarded-For, а также из пользовательских заголовков, можно использовать для выявления потенциальных угроз, контроля доступа на основе IP-адресов и анализа данных о посетителях сайта. Алгоритм обработки заголовков X-Real-IP и пользовательских заголовковHTTP-заголовок X-Real-IP или пользовательский заголовок используется для указания IP-адреса веб-клиента, отправившего исходный запрос. Серверные приложения могут использовать этот заголовок для журналирования или определения местоположения пользователя. Если прокси-сервер, балансировщик или другой сетевой узел передает запрос дальше, этот заголовок может перезаписываться следующим сервером в цепочке. Если в параметрах правила публикации выбрана обработка заголовка X-Real-IP или пользовательского заголовка, алгоритм обработки этих заголовков выглядит следующим образом: 1. При получении HTTP-запроса UserGate WAF проверяет запрос на наличие заголовка (X-Real-IP или пользовательского заголовка). 2. Если заголовок не найден в запросе, UserGate WAF добавляет его и в качестве реального IP-адреса указывает IP-адрес сетевого узла, передавшего запрос. 3. Если заголовок найден, но не содержит значения, UserGate WAF в качестве реального IP-адреса принимает IP-адрес сетевого узла, передавшего запрос, и добавляет его в заголовок. 4. Если заголовок найден и содержит значение, UserGate WAF выполняет поиск IP-адреса сетевого узла, передавшего запрос, в списке доверенных источников:
5. После обработки запроса значение заголовка, принятое как реальный IP-адрес, сохраняется в записях журнала веб-доступа, а обработанные запросы передаются на анализ и дальнейшую обработку в соответствии с правилами и политикой безопасности в UserGate WAF. При срабатывании правила публикации в записях журнала срабатывания также сохраняется значение реального IP-адреса. Алгоритм обработки заголовка X-Forwarded-ForHTTP-заголовок X-Forwarded-For содержит список IP-адресов, через которые прошел запрос. IP-адрес веб-клиента, отправившего исходный запрос, добавляется в начало списка, а каждый следующий узел добавляет свой IP-адрес в конец списка. Этот заголовок полезен для отслеживания реального происхождения запроса, особенно в многослойных сетевых конфигурациях. Пример заголовка:
Где:
Если в параметрах правила публикации выбрана обработка заголовка X-Forwarded-For, алгоритм обработки этих заголовков выглядит следующим образом: 1. При получении HTTP-запроса UserGate WAF проверяет запрос на наличие заголовка. 2. Если заголовок не найден, UserGate WAF добавляет его и в качестве реального IP-адреса указывает IP-адрес сетевого узла, передавшего запрос. 3. Если заголовок найден, но не содержит значений, UserGate WAF в качестве реального IP-адреса принимает IP-адрес сетевого узла, передавшего запрос, и добавляет его в заголовок. 4. Если заголовок содержит значения и рекурсивный режим выключен, UserGate WAF проверят формат первого значения (в примере это 203.0.113.42) на соответствие формату IPv4/IPv6:
5. Если заголовок содержит значения и рекурсивный режим включен, UserGate WAF выполняет поиск доверенного IP-адреса, последовательно проверяя значения в заголовке:
6. После обработки запроса значение заголовка, принятое как реальный IP-адрес, сохраняется в записях журнала веб-доступа, а обработанные запросы передаются на анализ и дальнейшую обработку в соответствии с правилами и политиками безопасности в UserGate WAF. При срабатывании правила публикации в записях журнала срабатывания также сохраняется значение реального IP-адреса. Настройка функции определения реального IP-адреса источника запросаЧтобы настроить функцию определения реального IP-адреса: 1. В разделе Настройки ➜ Политика сервисов ➜ Правила публикации выберите правило, которое необходимо настроить, и нажмите Редактировать. 2. В окне Настройка правила публикации на вкладке Реальный IP установите флажок Получать реальный IP. 3. Выберите заголовок, из которого будет извлекаться адрес источника запроса:
4. Если необходимо, в блоке Доверенные источники укажите списки адресов или сетей доверенных источников запроса, например прокси-серверов и балансировщиков. 5. Сохраните изменения. ПримечаниеСведения о реальных IP-адресах могут отображаться в разделах «Атаки» и «Журналы и отчеты» ➜ «Журнал веб-доступа».
UserGate WAF может выполнять балансировку нагрузки на серверы публикации. Балансировщик распределяет запросы, поступающие на IP-адрес виртуального сервера, на IP-адреса реальных серверов. Чтобы настроить балансировку, необходимо в разделе Политика сервисов ➜ Балансировка сервисов создать правила балансировки. Балансировщик позволяет распределить нагрузку на внутренние серверы или ферму серверов публикации и может быть использован в правилах публикации. Для создания балансировщика необходимо в разделе Политика сервисов ➜ Балансировка сервисов нажать Добавить и указать следующие параметры:
|
.png)
.png)