Обратный прокси-сервер и HTTP-сервер

ARMA FW включает в себя функциональность обратного прокси-сервера и HTTP-сервера, основанного на ПО nginx.

Для включения службы nginx необходимо выполнить следующие действия:

  1. Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация»).

  2. Установить флажок в параметре «Включите nginx» на вкладке «Основные настройки» (см. Рисунок – Включение nginx).

../../../_images/fw.rp.20.1.png

Рисунок – Включение nginx

  1. Нажать кнопку «Применить».

При раскрытии вкладки «Основные настройки» нажатием кнопки «bttn.show» доступны дополнительные настройки nginx (см. Рисунок – Дополнительные настройки службы nginx):

  • «Общие настройки HTTP»;

  • «Настройки веб-интерфейса».

../../../_images/fw.rp.20.2.png

Рисунок – Дополнительные настройки службы nginx

В качестве примера настройки функций обратного прокси-сервера используется схема стенда, представленная на рисунке (см. Рисунок – Схема стенда для настройки функций обратного прокси-сервера). Доступ к веб-серверам осуществляется по порту «8080».

../../../_images/fw.rp.20.3.png

Рисунок – Схема стенда для настройки функций обратного прокси-сервера

Балансировка нагрузки

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

  1. Добавить веб-серверы.

  2. Добавить группу серверов.

  3. Добавить локацию.

  4. Добавить HTTP-сервер.

Для прохождения трафика до веб-серверов необходимо выключить параметр «Блокировать частные сети» (см. Блок «Общая конфигурация») для интерфейса «WAN» и создать общее разрешающее правило МЭ (см. Создание правил межсетевого экранирования) со следующими параметрами:

  • «Действие» – «Разрешить (Pass)»;

  • «Интерфейс» – «WAN»;

  • «Протокол» – «TCP»;

  • «IP-адрес назначения» – «Этот межсетевой экран»;

  • «Диапазон портов назначения» – «8080»;

  • «Описание» – «Доступ к веб-серверам».

Добавление веб-серверов

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

  1. Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация»).

  2. Перейти во вкладку «Вышестоящий поток» и нажать кнопку «bttn.plus».

  3. В открывшейся форме (см. Рисунок – Добавление сервера) указать данные веб-сервера «WebServer 1»:

  • «Описание» – «WebServer 1»;

  • «Сервер» – «192.168.1.100»;

  • «Порт» – «8080»;

  • «Приоритеты сервера» – «10»;

  • «Максимальное количество соединений» – «100»;

  • «Максимальное количество неудач» – «10»;

  • «Тайм-аут ошибки» – «5»;

и нажать кнопку «Сохранить».

../../../_images/fw.rp.20.1.1.1.png

Рисунок – Добавление сервера

  1. Повторить действия 1-3, указав данные веб-сервера «WebServer 2»:

  • «Описание» – «WebServer 2»;

  • «Сервер» – «192.168.1.101»;

  • «Приоритеты сервера» – «1».

Добавление группы серверов

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

  1. Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация»).

  2. Раскрыть вкладку «Вышестоящий поток», нажав кнопку «bttn.show», выбрать «Вышестоящий поток» и нажать кнопку «bttn.plus».

  3. В открывшейся форме (см. Рисунок – Добавление группы) добавить группу, указав следующие данные:

  • «Описание» – «web servers»;

  • «Входы сервера» – «WebServer 1, WebServer 2»;

остальные параметры оставить без изменения и нажать кнопку «Сохранить».

../../../_images/fw.rp.20.1.2.1.png

Рисунок – Добавление группы

Добавление локации

Для добавления локации необходимо выполнить следующие действия:

  1. Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация»).

  2. Раскрыть вкладку «HTTP(S)», нажав кнопку «bttn.show», выбрать «Местоположение» и нажать кнопку «bttn.plus».

  3. В открывшейся форме (см. Рисунок – Добавление локации) добавить локацию, указав следующие данные:

  • «Описание» – «web location»;

  • «Шаблон URL» – «/»;

  • «Вышестоящие серверы» – «web servers»;

остальные параметры оставить без изменения и нажать кнопку «Сохранить».

../../../_images/fw.rp.20.1.3.1.png

Рисунок – Добавление локации

Добавление HTTP-сервера

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

  1. Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация»).

  2. Раскрыть вкладку «HTTP(S)», нажав кнопку «bttn.show», выбрать «Сервер HTTP» и нажать кнопку «bttn.plus».

  3. В открывшейся форме (см. Рисунок – Добавление HTTP-сервера) добавить HTTP-сервер, указав следующие данные:

  • «Слушающий порт НТТР» – «8080»;

  • «Имя сервера» – «arma.localdomain»;

  • «Локации» – «web location»;

остальные параметры оставить без изменения и нажать кнопку «Сохранить».

../../../_images/fw.rp.20.1.4.1.png

Рисунок – Добавление HTTP-сервера

Проверка работы

После завершения настроек необходимо перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация») и нажать кнопку «Применить».

Для проверки работы балансировки нагрузки необходимо открыть веб-браузер на ПК «Admin», ввести в адресной строке «http://192.168.73.152:8080» и нажать клавишу «Enter». В результате отобразится стартовая страница веб-сервера «WebServer 1» (см. Рисунок – Стартовая страница веб-сервера «WebServer 1»).

../../../_images/fw.rp.20.1.5.1.png

Рисунок – Стартовая страница веб-сервера «WebServer 1»

В случае отсутствия ответа веб-сервера «WebServer 1», например, в результате превышения нагрузки или количества заданных сессий будет отображена стартовая страница веб-сервера «WebServer 2» (см. Рисунок – Стартовая страница веб-сервера «WebServer 2»).

../../../_images/fw.rp.20.1.5.2.png

Рисунок – Стартовая страница веб-сервера «WebServer 2»

В подразделе статистики трафика nginx («Службы» - «Nginx» - «Статистика трафика») отображается статистика по распределению запросов между веб-серверами (см. Рисунок – Статистика запросов).

../../../_images/fw.rp.20.1.5.3.png

Рисунок – Статистика запросов

Настройки аутентификации

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

  1. Добавить УЗ.

  2. Добавить группу УЗ.

  3. Изменить локацию.

Добавление УЗ

Для добавления УЗ необходимо выполнить следующие действия:

  1. Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация»).

  2. Раскрыть вкладку «HTTP(S)», нажав кнопку «bttn.show», выбрать «Учетные данные» и нажать кнопку «bttn.plus».

  3. В открывшейся форме (см. Рисунок – Добавление пользователя) добавить пользователя, указав следующие данные:

  • «Имя пользователя» – «user»;

  • «Пароль» – произвольный пароль, в примере «12345»;

и нажать кнопку «Сохранить».

../../../_images/fw.rp.20.2.1.1.png

Рисунок – Добавление пользователя

  1. Повторить действия 1-3, указав «admin» в поле параметра «Имя пользователя».

Добавление группы УЗ

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

  1. Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация»).

  2. Раскрыть вкладку «HTTP(S)», нажав кнопку «bttn.show», выбрать «Журнал пользователя» и нажать кнопку «bttn.plus».

  3. В открывшейся форме (см. Рисунок – Добавление группы УЗ) добавить группу, указав следующие данные:

  • «Имя» – «web-users»;

  • «Пользователи» – «admin», «user»;

и нажать кнопку «Сохранить».

../../../_images/fw.rp.20.2.2.1.png

Рисунок – Добавление группы УЗ

Изменение локации

Для изменения локации необходимо выполнить следующие действия:

  1. Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация»).

  2. Раскрыть вкладку «HTTP(S)», нажав кнопку «bttn.show», выбрать «Местоположение» и нажать кнопку «bttn.pen» напротив ранее созданной локации (см. Добавление локации).

  3. В открывшейся форме указать значения для следующих параметров:

  • «Базовая идентификация» – «web-area»;

  • «Список основных учетных данных» – «web-users»;

остальные параметры оставить без изменения и нажать кнопку «Сохранить».

Проверка работы

После завершения настроек необходимо перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация») и нажать кнопку «Применить».

Для проверки работы аутентификации необходимо открыть веб-браузер на ПК «Admin», ввести в адресной строке «http://192.168.73.152:8080» и нажать клавишу «Enter». В результате отобразится страница запроса имени пользователя и пароля (см. Рисунок – Запрос учётных данных для доступа).

../../../_images/fw.rp.20.2.4.1.png

Рисунок – Запрос учётных данных для доступа

Управление доступом на основании IP-адресов

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

  1. Добавить список IP-адресов.

  2. Изменить локацию.

Добавление списка IP-адресов

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

  1. Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация»).

  2. Раскрыть вкладку «Доступ», нажав кнопку «bttn.show», выбрать «IP ACLs» и нажать кнопку «bttn.plus».

  3. В открывшейся форме (см. Рисунок – Добавление списка IP-адресов) добавить пользователя, указав следующие данные:

  • «Описание» – «WAN net»;

  • «Записи ACL» – «192.168.73.0/24» и «Deny» для запрета доступа;

остальные параметры оставить без изменения и нажать кнопку «Сохранить».

../../../_images/fw.rp.20.3.1.1.png

Рисунок – Добавление списка IP-адресов

Изменение локации

Для изменения локации необходимо выполнить следующие действия:

  1. Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация»).

  2. Раскрыть вкладку «HTTP(S)», нажав кнопку «bttn.show», выбрать «Местоположение» и нажать кнопку «bttn.pen» напротив ранее созданной локации (см. Добавление локации).

  3. В открывшейся форме указать значения для следующих параметров:

  • «Включить расширенные ACL» – флажок установлен;

  • «IP ACL» – «WAN net»;

остальные параметры оставить без изменения и нажать кнопку «Сохранить».

Проверка работы

После завершения настроек необходимо перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация») и нажать кнопку «Применить».

Для проверки работы ограничения доступа по IP-адресам необходимо открыть веб-браузер на ПК «Admin», ввести в адресной строке «http://192.168.73.152:8080» и нажать клавишу «Enter». В результате отобразится страница c ошибкой доступа (см. Рисунок – Ошибка доступа).

../../../_images/fw.rp.20.3.3.1.png

Рисунок – Ошибка доступа

Межсетевой экран веб-приложений

Для защиты веб-приложений используется межсетевой экран веб-приложений – Naxsi WAF.

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

  1. Cкачать основные правила NAXSI.

  2. Изменить локацию.

Скачивание правил NAXSI

Скачивание правил NAXSI возможно только с доступом в Интернет. Для скачивания основных правил NAXSI выполнить следующие действия:

  1. Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация»).

  2. Раскрыть вкладку «HTTP(S)», нажав кнопку «bttn.show», выбрать «Политика Naxsi WAF» и нажать кнопку «Сохранение» (см. Рисунок – Отсутствие правил NAXSI).

../../../_images/fw.rp.20.4.1.1.png

Рисунок – Отсутствие правил NAXSI

  1. В открывшейся форме (см. Рисунок – Скачивание правил NAXSI) нажать кнопку «Принять и скачать».

../../../_images/fw.rp.20.4.1.2.png

Рисунок – Скачивание правил NAXSI

В результате загрузки будут доступны правила WAF в разделе «Правило Naxsi WAF» вкладки «HTTP(S)», правила группируются в политики в разделе «Политика Naxsi WAF» вкладки «HTTP(S)».

Политика определяет выполняемое действие в случае выполнения условия.

Изменение локации

Для изменения локации необходимо выполнить следующие действия:

  1. Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация»).

  2. Раскрыть вкладку «HTTP(S)», нажав кнопку «bttn.show», выбрать «Местоположение» и нажать кнопку «bttn.pen» напротив ранее созданной локации (см. Добавление локации).

  3. В открывшейся форме указать значения для следующих параметров:

  • «Включите правила безопасности» – флажок установлен;

  • «Оценка блокирования XSS» – «4»;

  • «Оценка блокирования SQL-инъекций» – «4»;

  • «Пользовательская политика безопасности» – все политики из списка;

остальные параметры оставить без изменения и нажать кнопку «Сохранить».

В случае установки флажка для параметра «Обучающий режим» будет происходить только регистрация срабатывания политик без выполнения выбранного действия.

Проверка работы

После завершения настроек необходимо перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация») и нажать кнопку «Применить».

Для проверки работы WAF необходимо открыть веб-браузер на ПК «Admin», ввести в адресной строке «http://192.168.73.152:8080/hosts.php?a=select&b=union&c=from» и нажать клавишу «Enter». В результате отобразится страница c предупреждением об ограничении доступа (см. Рисунок – Ограничение доступа).

../../../_images/fw.rp.20.4.3.1.png

Рисунок – Ограничение доступа

Заголовки HTTP

Заголовки HTTP позволяют серверу и клиенту обмениваться дополнительной информацией HTTP запросом или ответом.

Существует возможность переопределять заголовки веб-сервера. Для этого необходимо выполнить следующие действия:

  1. Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация»).

  2. Раскрыть вкладку «HTTP(S)», нажав кнопку «bttn.show», выбрать «Заголовки безопасности» и нажать кнопку «bttn.plus».

  3. В открывшейся форме задать параметры политики и нажать кнопку «Сохранить».

  4. Раскрыть вкладку «HTTP(S)», нажав кнопку «bttn.show», выбрать «Сервер HTTP» и нажать кнопку «bttn.pen» для ранее созданного сервера (см. Добавление HTTP-сервера).

  5. В открывшейся форме выбрать созданную политику в параметре «Security Header» и нажать кнопку «Сохранить».

  6. Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация») и нажать кнопку «Применить».

Проксирование TCP и UDP

Служба nginx также позволяет обрабатывать TCP и UDP трафик.

В качестве примера будет рассмотрен доступ к веб-серверу «WebServer 2» по протоколу RDP.

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

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

  2. Добавить группу серверов.

  3. Добавить потоковый сервер.

Для прохождения трафика до веб-сервера необходимо выключить параметр «Блокировать частные сети» (см. Блок «Общая конфигурация») для интерфейса «WAN» и создать общее разрешающее правило МЭ (см. Создание правил межсетевого экранирования) со следующими параметрами:

  • «Действие» – «Разрешить (Pass)»;

  • «Интерфейс» – «WAN»;

  • «Протокол» – «TCP»;

  • «IP-адрес назначения» – «Этот межсетевой экран»;

  • «Диапазон портов назначения» – «MS RDP»;

  • «Описание» – «Доступ по RDP».

Добавление сервера

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

  1. Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация»).

  2. Перейти во вкладку «Вышестоящий поток» и нажать кнопку «bttn.plus».

  3. В открывшейся форме указать данные веб-сервера «WebServer 2»:

  • «Описание» – «RDP WebServer 2»;

  • «Сервер» – «192.168.1.101»;

  • «Порт» – «3389»;

  • «Приоритеты сервера» – «1»;

  • «Максимальное количество соединений» – «10»;

  • «Максимальное количество неудач» – «5»;

  • «Тайм-аут ошибки» – «10»;

и нажать кнопку «Сохранить».

Добавление группы серверов

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

  1. Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация»).

  2. Раскрыть вкладку «Вышестоящий поток», нажав кнопку «bttn.show», выбрать «Вышестоящий поток» и нажать кнопку «bttn.plus».

  3. В открывшейся форме добавить группу, указав следующие данные:

  • «Описание» – «RDP servers»;

  • «Входы сервера» – «RDP WebServer 2»;

  • «Алгоритм балансировки нагрузки» – «IP Hash»;

остальные параметры оставить без изменения и нажать кнопку «Сохранить».

Добавление потокового сервера

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

  1. Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация»).

  2. Перейти во вкладку «Потоки данных» и нажать кнопку «bttn.plus».

  3. В открывшейся форме указать данные потокового сервера:

  • «Порт прослушивания» – «3389»;

  • «Маршрутизировать с» – «Вышестоящий поток»;

  • «Вышестоящие серверы» – «RDP servers»;

остальные параметры оставить без изменения и нажать кнопку «Сохранить».

Проверка работы

После завершения настроек необходимо перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация») и нажать кнопку «Применить».

Для проверки работы доступа по протоколу RDP необходимо запустить на ПК «Admin» клиент удалённого рабочего стола, указать IP-адрес «192.168.73.152» и выполнить подключение.