Подключение веб-приложений в веб-интерфейсе

<< Click to Display Table of Contents >>

Подключение веб-приложений в веб-интерфейсе

Подключение веб-приложений в веб-интерфейсе

В этом разделе

Подключение веб-приложений позволяет защитить его от разнообразных атак и настроить различные способы защиты.

struktura_servery

Элементы интерфейса:

•Создать – добавление сервера в кластер.

•obnovlenie – обновление данных серверов после внесенных изменений.

•Настройки – параметры настроек сервера и его защиты.

•lk_rk_pen – редактирование сервера кластера.

•user_guide_991cl  – конфигурация ModSecurity.

•lk_rk_del – удаление сервера из кластера.

Важно! Функции создания, редактирования, удаления сервера кластера могут быть неактивны, если в конфигурационном файле установлен запрет на данные действия.

Чтобы подключить веб-приложение и настроить защиту необходимо:

1.Создайте сервер.

2.Настройте основные функции защиты сервера.

3.Создайте путь.

4.[Опционально] Настройте балансировку и проксирование.

5.[Опционально] Подключите страницы ошибок.

6.[Опционально] Настройте логирование и интеграцию с SIEM-системами.

7.[Опционально] Настройте мониторинг событий.

Подключение веб-приложения

В терминологии Nginx защищаемые веб-ресурсы называются серверы по имени контекста server в конфигурации веб-сервера. Сервер – это веб-ресурс (веб-приложение или веб-сервер), который находится под защитой Комплекса. Каждый сервер включается в состав кластера. Подключение серверов кластера выполняет администратор.

Выполните следующие шаги для подключения приложения:

1.Перейдите в раздел Структура → Серверы.

2.Выберите нужный кластер в списке Кластер вверху страницы.

3.Нажмите Создать и заполните необходимые параметры в открывшемся окне:

3.1.Доменное имя – имя защищаемого ресурса.

3.2.Порты – порты защищаемого веб-ресурса.

3.3.Максимальный размер тела запроса – значение, ограничивающее тело запроса (в байтах, килобайтах или мегабайтах). Рекомендуемое значение – 16 Мб.

3.4.[Опционально] При нажатии на чек-бокс Снять ограничение значение поля Максимальный размер тела запроса становится равным нулю, и тогда ограничение не будет проверяться.

3.5.HTTP/2 – поддержка HTTP2-протокола защищаемым веб-ресурсом.

3.6.IPv6 – поддержка протокола IPv6 для IP-адресов.

4.Нажмите Создать.

user_guide_1047cl

Редактирование сервера кластера

При нажатии на lk_rk_pen открывается окно редактирования настроек сервера. В нем можно изменить настройки сервера, которые были заданы при его создании.

Также можно задать следующие параметры:

•Коды ответов при срабатывании механизмов защиты  – код ошибки с допустимым значением от 400 до 599. Если значение не указано, то будет использоваться значение по умолчанию.

•Память  – размер выделенной памяти в байтах (минимальный размер 2 Мб). Если значение не указано, то будет использоваться значение по умолчанию. Максимальные размеры памяти отличаются:

oF2B – максимальный размер 4 Гб.

oЧерные списки – максимальный размер 1 Гб.

oБелые списки – максимальный размер 2 Гб.

oПравила – максимальный размер 512 Гб.

redakt_server

После редактирования сервера кластера вверху страницы появится информационная строка о конфигурации кластера, как на рисунке ниже. Следует применить конфигурацию пиктограммой lk_red_save с именем кластера.

synchronizacia

Сохранить и применить изменения, внесенные в настройки серверов кластера, можно с помощью lk_blue_save.

Настройки сервера

Перейдите в Сервера → Настройки для настройки следующих функций:

•Настройки сервера – настройки сервера для функций безопасности.

•ICAP – подключение ICAP.

•Карта API – создание карты приложений.

•ML – настройка ML.

•F2B – настройка модуля от атак.

•АнтиБот – настройка защиты от DDoS-атак и бот-активности.

•Рейт-лимиты – настройка ограничений на трафик веб-приложений.

•Белый список JSC – добавление адреса в список исключений.

•Белый список ML – добавление IP-адреса или пути в список исключений.

•Списки доступа – добавление списков доступа на сервер.

•Капча – подключение страницы капчи.

•Страницы – импорт и подключение страниц ошибок.

•Логирование – настройка SIEM-интеграции.

•Сертификат – подключение SSL сертификата.

•Реальный IP – настройка получения IP-адреса источника запроса.

Настройка пути к веб-странице

Чтобы задать пути с собственной регулировкой защиты:

1.Перейдите в раздел Структура → Пути.

2.Выберите в раскрывающихся списках необходимые кластер и сервер.

3.Нажмите Создать и заполните необходимые параметры:

3.1.Путь – защищаемый маршрут. Может задаваться с использованием регулярного выражения.

3.2.Максимальный размер тела запроса – ограничивает тело запроса. Значение задается в байтах, килобайтах или мегабайтах. По умолчанию и рекомендуемое значение – 16 Мб.

3.3.[Опционально] При нажатии на чек-бокс Снять ограничение значение поля Максимальный размер тела запроса становится равным нулю, и тогда ограничение не будет проверяться.

3.4.Тип – способ интерпретации шаблона заданного пути. Возможные значения:

3.4.1. По умолчанию – совпадение префикса.

3.4.2. Точное совпадение.

3.4.3. Без регулярного выражения – приоритетное совпадение префикса (над регулярными выражениями).

3.4.4. Регулярное выражение (без учета регистра).

3.4.5. Регулярное выражение (с учетом регистра).

3.5.ProxyPass для WebSocket – использование проксирования для WebSocket.

4.Нажмите Создать.

puti_sozdanie

Чтобы изменить порядок путей в списке:

1.Нажмите lk_change для активации функции перемещения путей (станет доступна функция перемещения путей).

2.Нажмите lk_cut  для перемещения пути в списке (в этом столбце lk_cut заменятся на lk_cross и lk_put).

3.Переместите необходимый путь с помощью lk_put той веб-страницы, куда нужно переместить исходную веб-страницу.

4.Для отмены перемещения нажмите lk_cross.

Для редактирования пути нажмите lk_rk_pen.

puti

После редактирования настроек пути к страницам сервера кластера примените конфигурацию нажав lk_red_save с именем кластера.

Нажмите lk_blue_save, чтобы сохранить концигурацию кластера после изменения настроек подключения путей.

Удалить путь можно с помощью lk_rk_del.

Защита пути

Настроить защиту для веб-страниц можно в меню Структура → Пути. Здесь же настраивается веб-сервер в качестве обратного прокси-сервера.

Для корректной работы Комплекса необходимо настроить проксирование для каждого сервера в кластере. Рекомендуется для каждого сервера в разделе Структура → Пути задать путь «/». Это позволит настроить проксирование и балансировку нагрузки для всего сервера целиком.

Также можно настроить проксирование не для всего сервера, а для отдельных веб-страниц или их групп. В этом случае вместо пути «/» необходимо указать соответствующие конкретные пути.

Подключение страниц ошибок

Настроить страницы с сообщением об ошибке можно в разделе Структура → Серверы. Чтобы подключить страницу:

1.Нажмите Настройки для редактирования настроек сервера кластера.

2.Нажмите Страницы:

2.1.Страница блокировки правилами – страница ошибки, выдаваемой при нарушении правил ModSecurity.

2.2.Страница АнтиБот – страница ошибки, выдаваемой при блокировке запроса защитой АнтиБот.

2.3.Страница Списков доступа – страница ошибки при добавлении IP-адреса в черный список (423 страница).

3.Нажмите lk_cl_change для импорта и замены новой html-страницы.

Для сброса страницы на состояние по умолчанию нажмите pomenyat_stranicy.

stranicy_servery

Примечание: Замена страницы по умолчанию на пользовательскую доступна для всех страниц.

SSL-сертификат

Если сервер работает на протоколе HTTPS, то необходимо выполнить следующие шаги:

1.Перейдите в раздел Структура → Серверы.

2.Нажмите Настройки для редактирования настроек и выберите Сертификат.

3.Импортируйте Приватный ключ и Сертификат в соответствующие поля.

4.Нажмите Сохранить.

После загрузки сертификата внизу страницы будет уведомление о том, что сертификат установлен. Также есть цветовой индикатор, который показывает срок действия сертификата:

•Зеленое уведомление – срок действия сертификата превышает 30 дней.

•Желтое уведомление – срок действия сертификата меньше 30 дней.

•Красное уведомление – срок действия сертификата меньше 7 дней.

Настройка балансировки нагрузки и проксирования (апстрим)

Настройка балансировки нагрузки и проксирования выполняется в несколько шагов:

1.Настройка балансировщика нагрузки (апстрим).

2.Использование TLS для защищенного соединения с бэкенд-серверами.

3.Подключение балансировки нагрузки и проксирования.

4.[Опционально] Настройка апстримов с TLS (SNI).

Если балансировка нагрузки не требуется, тогда настраивается только проксирование: в балансировщике нагрузки настраивается один веб-сервер, который будет использоваться в качестве бэкенд-сервера.

Апстримы определяют группу серверов для балансировщика нагрузки.

Важно! Для корректной работы необходимо настроить проксирование для каждого сервера кластера.

Настройка балансировщика нагрузки (апстрим)

Для настройки балансировщика нагрузки выполните:

1.Перейдите в раздел Структура → Кластеры.

2.Нажмите Настройки → Апстримы и Создать.

3.Выберите метод балансировки:

3.1.Круговая (round-robin) – запросы распределяются по серверам циклически с учетом весов.

3.2.Наименьшие соединения (least_conn) – запрос передается серверу с наименьшим числом активных соединений.

3.3.Хеш по IP (ip_hash) – распределение на основе IP-адресов клиентов для сохранения сессии.

4.Задайте Имя апстрима и Тайм-аут, в течение которого неактивные соединения будут оставаться открытыми.

5.Выберите протокол из раскрывающегося списка Версия протокола:

•HHTP 1.

•HTTP 2.

6.[Опционально] Включите использование TLS.

7.Нажмите Создать.

user_guide_1031cl

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

1.Нажмите Добавить сервер.

2.Заполните поля:

2.1.FQDN/IP-адрес – IP-адрес или доменное имя бэкенд-сервера, на который будет перенаправляться трафик для балансировки нагрузки.

2.2.Порт – бэкенд-сервера, на который будет перенаправляться трафик.

2.3.Резервный – флаг применения бэкенд-сервера только тогда, когда остальные бэкенд-серверы недоступны. Данная функция не поддерживается при использовании метода балансировки Хеш по IP.

2.4.Вес (> 1) – серверный вес, указывающий приоритет бэкенд-сервера при распределении нагрузки среди других бэкенд-серверов; целое число.

2.5.Максимальное количество ошибок (> 1) – количество неудачных попыток соединения, после которых бэкенд-сервер помечается недоступным; целое число.

3.Нажмите lk_red_del для удаления настроек ненужных бэкенд-серверов.

При нажатии на lk_pen можно отредактировать настройки балансировщика и бэкенд-сервера. С помощью lk_grey_del можно удалить апстрим.

user_guide_1029cl

Использование TLS для защищенного соединения с бэкенд-серверами

Опция Использовать TLS обеспечивает шифрование соединения между балансировщиком нагрузки (nginx) и бэкенд-серверами по протоколу HTTPS. При включенной опции nginx будет устанавливать защищенное TLS-соединение с бэкенд-серверами, указанными в апстриме. Это эквивалентно использованию директивы proxy_pass https://… с соответствующими настройками proxy_ssl_* в конфигурации nginx.

hmtoggle_arrow1Пример

Подключение балансировки нагрузки и проксирования

Для подключения балансировки и проксирования выполните следующие шаги:

1.Перейдите в раздел Структура → Пути.

2.Нажмите Настройки → Апстримы и из доступного списка слева выберите необходимый апстрим, который обеспечит проксирование:

•Для защиты всего сервера кластера, подключите апстрим к пути /.

•Для защиты отдельных путей, если сервер кластера содержит два основных пути /a и /b, то необходимо настроить защиту и проксирование для каждого из этих путей по отдельности.

lk_green_rout и lk_red_rout отображают наличие и отсутствие проксирования веб-страницы соответственно.

puti
user_guide_914cl

hmtoggle_arrow1Пример 1

hmtoggle_arrow1Пример 2

Настройка апстримов с TLS (SNI)

SNI (Server Name Indication) – это расширение протокола TLS, позволяющее клиенту указать запрашиваемое доменное имя на этапе рукопожатия до начала шифрования. Используется для корректного выбора SSL-сертификата при размещении нескольких HTTPS-сайтов на одном IP-адресе. По умолчанию SNI не используется. Запрос в таком случае проксируется с WAF на бекенд-сервер в зашифрованном виде (TLS), но дополнительная информация (SNI) не передается.

Для настройки апстримов с TLS (SNI) выполните:

1.Перейдите в раздел Структура → Пути и нажмите lk_rk_pen.

2.В раскрывающемся списке Использование SNI выберите Использовать SNI.

3.В поле Имя SNI задайте доменное имя, которое будет передаваться в рамках SNI на бэкенд-сервер. По умолчанию задано значение $ssl_server_name, которое содержит значение SNI, переданное клиентов во время TLS-рукопожатия. Вместо $ssl_server_name в поле Имя SNI можно задать произвольное доменное имя.

user_guide_1064

Таким образом, имеется три варианта использования апстримов с TLS:

•Не использовать SNI (в поле Использование SNI необходимо выбрать Не использовать SNI). SNI при TLS рукопожатии отправляться не будет.

•Передавать в SNI то же имя, которое отправил клиент. В поле Имя SNI должно стоять дефолтное значение $ssl_server_name.

•Передавать в SNI произвольное доменное имя. Для этого варианта в поле Использование SNI должно быть значение Использовать SNI. А в поле Имя SNI должно стоять нужное доменное имя.

hmtoggle_arrow1Пример

Получение реального IP-адреса клиента

После настройки проксирования запросы к серверам начинают поступать через балансировщик нагрузки. По умолчанию в переменной $remote_addr (IP-адрес источника запроса) будет указываться IP-адрес балансировщика, а не исходного клиента. Это нарушит работу функций, зависящих от IP-клиента, таких как геолокация, ограничение частоты запросов или логирование.

Для корректного определения исходного IP-адреса клиента выполните следующие шаги:

1.Перейдите в раздел Структура → Серверы.

2.Нажмите Настройки и выберите Реальный IP.

3.Заполните поле Заголовок, где указывается заголовок запроса, в котором балансировщик передаёт реальный IP-адрес. Например:

3.1.X-Forwarded-For – стандартный де-факто заголовок, представляющий собой список IP-адресов через запятую. Реальный IP-адрес клиента всегда является первым в этом списке.

3.2.X-Real-IP – более простой заголовок, часто используемый для передачи единственного IP-адреса клиента.

4.[Опционально] Включите чек-бокс Использовать прокси протокол, если балансировщик нагрузки (например, HAProxy, AWS ELB) использует PROXY-протокол версии 1 или 2 для входящих соединений.

5.Заполните поле Доверенные адреса. Если источник подключения ($remote_addr ) находится в этом списке, то значение реального IP-адреса будет взято из указанного заголовка (например, X-Forwarded-For). Для запросов от всех остальных адресов эти заголовки игнорируются в целях безопасности.

6.Нажмите Сохранить.

user_guide_9991

Настройка логирования и SIEM-интеграции

Интеграция с SIEM-системами посредством сетевого протокола Syslog настраивается при редактировании настроек сервера кластера.

Логирование позволяет управлять тем, как система записывает журналы событий. Доступно два независимых канала для сохранения логов:

•запись в файл на локальном диске сервера;

•отправка в Syslog-сервер для интеграции с внешними системами, такими как SIEM.

Для настройки логирования выполните следущие шаги:

1.Перейдите в раздел Структура → Серверы.

2.Нажмите Настройки и выберите Логирование.

3.[Опционально] Нажмите Добавить в поле Файлы логов. Заполните Имя файла и выберите формат из раскрывающего списка.

4.[Опционально] Нажмите Добавить в поле Syslog серверы. Заполните Адрес (IP-адрес или доменное имя syslog-сервера) и Порт и выберите формат из раскрывающегося списка.

5.Нажмите Сохранить.

Для удаления файла с логами или syslog используется кнопка Удалить.

user_guide_998cl

Просмотр WCS-схемы

WCS-схема оперирует следующими базовыми сущностями:

•Ключи F2B.

•Апстрим.

•Сервер.

•Путь.

•Страницы ошибок.

•Страница капчи.

•Сертификат.

•Сервер для мониторинга.

Для просмотра и работы с WCS-схемой выполните следующие шаги:

1.Перейдите в раздел Структура → Кластеры.

2.Нажмите Настройки → WCS конфигурация для просмотра схемы.

3.[Опционально] Нажмите lk_blue_copy для копирования схемы.

4.В раскрывающемся списке Конфигурацию с агента выберите нужное:

4.1.Принимать – разрешено редактирование WCS-схемы только в CLI-интерфейсе и запрещена настройка подключения защищаемых веб-приложений (серверов кластера и путей к веб-страницам) в веб-интерфейсе.

4.2.Игнорировать – разрешена настройка подключения защищаемых веб-приложений в веб-интерфейсе.

wcs_config

hmtoggle_arrow1Параметры WCS-схемы

Версионирование WCS-схемы

Версионирование WCS-схемы позволяет сохранять и восстанавливать промежуточные версии конфигурации при необходимости.

Существует несколько способов взаимодействия с конфигурацией:

•восстановление более ранней версии;

•восстановление текущей версии без учета внесенных изменений (если они не были синхронизированы);

•импорт и экспорт версий.

Есть следующие способы восстановления конфигурации:

•Если конфигурация с внесенными изменениями не была синхронизирована.

•Если необходимо восстановить более раннюю конфигурацию. Максимальное количество хранящихся конфигураций задается в конфигурационном файле. При применении новых версий более поздние версии будут удалены.

Примечание: Более ранние версии можно скачать с помощью кнопки Скачать конфигурацию. Это поможет избежать потери нужных конфигураций при достижении максимального количества хранящихся записей.

Примечание: При наличии неконсистентной сущности (сервер или путь), конфигурация не будет сохраняться и ее будет невозможно восстановить.

Для восстановления WCS-схемы сервера, который еще не был синхронизирован, необходимо вверху окна веб-интерфейса нажать на нужном сервере Восстановить конфигурацию.

vosstanovit_wcs

Примечание: После применения конфигурации все новые конфигурации будут удалены.

Чтобы просмотреть и применить более раннюю конфигурацию выполните следующие шаги:

1.Перейдите в Структура → Кластеры → Настройки → WCS конфигурация.

2.Убедитесь, что в поле Конфигурация с агента выбрано Игнорировать.

3.Перейдите в Список доступных конфигураций.

4.Выберите нужную конфигурацию и нажмите Восстановить. После этого можно будет сравнить версии и увидеть их различия.

Примечание: Если объем файла больше 1 Мб, то сравнение не будет показано.

5.Если нужной конфигурации нет, нажмите Импорт и выберите файл в формате .json. Нажмите Импорт.

6.Синхронизируйте изменения на плашке вверху страницы.

Важно! При восстановлении промежуточной версии конфигурации будут удалены все настройки безопасности кластера. Серверы и пути, присутствующие в конфигурации, обновят свои настройки, т.е. настройки безопасности не теряются.

Сервер для мониторинга

Сервер для мониторинга снимает метрики событий безопасности с модуля Agent и передает их внешнему сервису для обработки и визуализации метрик.

Чтобы создать мониторинг сервера кластера выполните:

1.Перейдите в раздел Структура → Кластеры.

2.Нажмите Настройки → Сервер для мониторинга.

3.Заполните поля:

3.1.Имя сервера – доменное имя сервера (защищаемого веб-ресурса) для мониторинга.

3.2.Порт – порт, на который поступает трафик для мониторинга.

Важно! Для корректной работы сервера для мониторинга необходима настройка iptables при установке Комплекса. Администратор должен открыть необходимые порты для веб-доступа, чтобы сервер для мониторинга стал доступен пользователям.

3.3.Путь мониторинга – путь к обработчику метрик мониторинга; значение по умолчанию: /weblock_metrics.

3.4.Список разрешенных IP-адресов – список IP-адресов в формате CIDR, откуда разрешен доступ к серверу для мониторинга; если список пуст, то доступ к серверу для мониторинга будет невозможен; максимальное количество диапазонов: 20.

4.Нажмите Создать.

user_guide_989cl

После создания сервера мониторинга необходимо применить конфигурацию одним из способов:

•нажмите Настройки → Сервер для мониторинга и Применить в открывшемся окне;

•нажмите lk_blue_save в списке кластеров в разделе Структура → Кластеры;

•нажмите lk_red_save с именем кластера в верхней строке веб-интерфейса.

Редактировать настройки мониторинга можно при помощи удаления и подключения нового сервера для мониторинга.

Для удаления мониторинга нажмите Удаление сервера для мониторинга.

user_guide_9871
В этом разделе: