Обратный прокси-сервер и HTTP-сервер
ARMA FW включает в себя функциональность обратного прокси-сервера и HTTP-сервера, основанного на ПО nginx.
Для включения службы nginx необходимо выполнить следующие действия:
Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация»).
Установить флажок в параметре «Включите nginx» на вкладке «Основные настройки» (см. Рисунок – Включение nginx).

Рисунок – Включение nginx
Нажать кнопку «Применить».
При раскрытии вкладки «Основные настройки» нажатием кнопки «» доступны дополнительные настройки nginx (см. Рисунок – Дополнительные настройки службы nginx):
«Общие настройки HTTP»;
«Настройки веб-интерфейса».

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

Рисунок – Схема стенда для настройки функций обратного прокси-сервера
Балансировка нагрузки
Для настройки балансировки необходимо выполнить следующие шаги:
Добавить веб-серверы.
Добавить группу серверов.
Добавить локацию.
Добавить HTTP-сервер.
Для прохождения трафика до веб-серверов необходимо выключить параметр «Блокировать частные сети» (см. Блок «Общая конфигурация») для интерфейса «WAN» и создать общее разрешающее правило МЭ (см. Создание правил межсетевого экранирования) со следующими параметрами:
«Действие» – «Разрешить (Pass)»;
«Интерфейс» – «WAN»;
«Протокол» – «TCP»;
«IP-адрес назначения» – «Этот межсетевой экран»;
«Диапазон портов назначения» – «8080»;
«Описание» – «Доступ к веб-серверам».
Добавление веб-серверов
Для добавления веб-серверов необходимо выполнить следующие действия:
Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация»).
Перейти во вкладку «Вышестоящий поток» и нажать кнопку «
».
В открывшейся форме (см. Рисунок – Добавление сервера) указать данные веб-сервера «WebServer 1»:
«Описание» – «WebServer 1»;
«Сервер» – «192.168.1.100»;
«Порт» – «8080»;
«Приоритеты сервера» – «10»;
«Максимальное количество соединений» – «100»;
«Максимальное количество неудач» – «10»;
«Тайм-аут ошибки» – «5»;
и нажать кнопку «Сохранить».

Рисунок – Добавление сервера
Повторить действия 1-3, указав данные веб-сервера «WebServer 2»:
«Описание» – «WebServer 2»;
«Сервер» – «192.168.1.101»;
«Приоритеты сервера» – «1».
Добавление группы серверов
Для добавления группы серверов необходимо выполнить следующие действия:
Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация»).
Раскрыть вкладку «Вышестоящий поток», нажав кнопку «
», выбрать «Вышестоящий поток» и нажать кнопку «
».
В открывшейся форме (см. Рисунок – Добавление группы) добавить группу, указав следующие данные:
«Описание» – «web servers»;
«Входы сервера» – «WebServer 1, WebServer 2»;
остальные параметры оставить без изменения и нажать кнопку «Сохранить».

Рисунок – Добавление группы
Добавление локации
Для добавления локации необходимо выполнить следующие действия:
Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация»).
Раскрыть вкладку «HTTP(S)», нажав кнопку «
», выбрать «Местоположение» и нажать кнопку «
».
В открывшейся форме (см. Рисунок – Добавление локации) добавить локацию, указав следующие данные:
«Описание» – «web location»;
«Шаблон URL» – «/»;
«Вышестоящие серверы» – «web servers»;
остальные параметры оставить без изменения и нажать кнопку «Сохранить».

Рисунок – Добавление локации
Добавление HTTP-сервера
Для добавления HTTP-сервера необходимо выполнить следующие действия:
Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация»).
Раскрыть вкладку «HTTP(S)», нажав кнопку «
», выбрать «Сервер HTTP» и нажать кнопку «
».
В открывшейся форме (см. Рисунок – Добавление HTTP-сервера) добавить HTTP-сервер, указав следующие данные:
«Слушающий порт НТТР» – «8080»;
«Имя сервера» – «arma.localdomain»;
«Локации» – «web location»;
остальные параметры оставить без изменения и нажать кнопку «Сохранить».

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

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

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

Рисунок – Статистика запросов
Настройки аутентификации
Для включения аутентификации для доступа к веб-серверам необходимо выполнить следующие шаги:
Добавить УЗ.
Добавить группу УЗ.
Изменить локацию.
Добавление УЗ
Для добавления УЗ необходимо выполнить следующие действия:
Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация»).
Раскрыть вкладку «HTTP(S)», нажав кнопку «
», выбрать «Учетные данные» и нажать кнопку «
».
В открывшейся форме (см. Рисунок – Добавление пользователя) добавить пользователя, указав следующие данные:
«Имя пользователя» – «user»;
«Пароль» – произвольный пароль, в примере «12345»;
и нажать кнопку «Сохранить».

Рисунок – Добавление пользователя
Повторить действия 1-3, указав «admin» в поле параметра «Имя пользователя».
Добавление группы УЗ
Для добавления группы УЗ необходимо выполнить следующие действия:
Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация»).
Раскрыть вкладку «HTTP(S)», нажав кнопку «
», выбрать «Журнал пользователя» и нажать кнопку «
».
В открывшейся форме (см. Рисунок – Добавление группы УЗ) добавить группу, указав следующие данные:
«Имя» – «web-users»;
«Пользователи» – «admin», «user»;
и нажать кнопку «Сохранить».

Рисунок – Добавление группы УЗ
Изменение локации
Для изменения локации необходимо выполнить следующие действия:
Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация»).
Раскрыть вкладку «HTTP(S)», нажав кнопку «
», выбрать «Местоположение» и нажать кнопку «
» напротив ранее созданной локации (см. Добавление локации).
В открывшейся форме указать значения для следующих параметров:
«Базовая идентификация» – «web-area»;
«Список основных учетных данных» – «web-users»;
остальные параметры оставить без изменения и нажать кнопку «Сохранить».
Проверка работы
После завершения настроек необходимо перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация») и нажать кнопку «Применить».
Для проверки работы аутентификации необходимо открыть веб-браузер на ПК «Admin», ввести в адресной строке «http://192.168.73.152:8080» и нажать клавишу «Enter». В результате отобразится страница запроса имени пользователя и пароля (см. Рисунок – Запрос учётных данных для доступа).

Рисунок – Запрос учётных данных для доступа
Управление доступом на основании IP-адресов
Для включения управления доступом на основании IP-адресов необходимо выполнить следующие шаги:
Добавить список IP-адресов.
Изменить локацию.
Добавление списка IP-адресов
Для добавления списка IP-адресов необходимо выполнить следующие действия:
Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация»).
Раскрыть вкладку «Доступ», нажав кнопку «
», выбрать «IP ACLs» и нажать кнопку «
».
В открывшейся форме (см. Рисунок – Добавление списка IP-адресов) добавить пользователя, указав следующие данные:
«Описание» – «WAN net»;
«Записи ACL» – «192.168.73.0/24» и «Deny» для запрета доступа;
остальные параметры оставить без изменения и нажать кнопку «Сохранить».

Рисунок – Добавление списка IP-адресов
Изменение локации
Для изменения локации необходимо выполнить следующие действия:
Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация»).
Раскрыть вкладку «HTTP(S)», нажав кнопку «
», выбрать «Местоположение» и нажать кнопку «
» напротив ранее созданной локации (см. Добавление локации).
В открывшейся форме указать значения для следующих параметров:
«Включить расширенные ACL» – флажок установлен;
«IP ACL» – «WAN net»;
остальные параметры оставить без изменения и нажать кнопку «Сохранить».
Проверка работы
После завершения настроек необходимо перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация») и нажать кнопку «Применить».
Для проверки работы ограничения доступа по IP-адресам необходимо открыть веб-браузер на ПК «Admin», ввести в адресной строке «http://192.168.73.152:8080» и нажать клавишу «Enter». В результате отобразится страница c ошибкой доступа (см. Рисунок – Ошибка доступа).

Рисунок – Ошибка доступа
Межсетевой экран веб-приложений
Для защиты веб-приложений используется межсетевой экран веб-приложений – Naxsi WAF.
Для включения WAF необходимо выполнить следующие шаги:
Cкачать основные правила NAXSI.
Изменить локацию.
Скачивание правил NAXSI
Скачивание правил NAXSI возможно только с доступом в Интернет. Для скачивания основных правил NAXSI выполнить следующие действия:
Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация»).
Раскрыть вкладку «HTTP(S)», нажав кнопку «
», выбрать «Политика Naxsi WAF» и нажать кнопку «Сохранение» (см. Рисунок – Отсутствие правил NAXSI).

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

Рисунок – Скачивание правил NAXSI
В результате загрузки будут доступны правила WAF в разделе «Правило Naxsi WAF» вкладки «HTTP(S)», правила группируются в политики в разделе «Политика Naxsi WAF» вкладки «HTTP(S)».
Политика определяет выполняемое действие в случае выполнения условия.
Изменение локации
Для изменения локации необходимо выполнить следующие действия:
Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация»).
Раскрыть вкладку «HTTP(S)», нажав кнопку «
», выбрать «Местоположение» и нажать кнопку «
» напротив ранее созданной локации (см. Добавление локации).
В открывшейся форме указать значения для следующих параметров:
«Включите правила безопасности» – флажок установлен;
«Оценка блокирования XSS» – «4»;
«Оценка блокирования SQL-инъекций» – «4»;
«Пользовательская политика безопасности» – все политики из списка;
остальные параметры оставить без изменения и нажать кнопку «Сохранить».
В случае установки флажка для параметра «Обучающий режим» будет происходить только регистрация срабатывания политик без выполнения выбранного действия.
Проверка работы
После завершения настроек необходимо перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация») и нажать кнопку «Применить».
Для проверки работы WAF необходимо открыть веб-браузер на ПК «Admin», ввести в адресной строке «http://192.168.73.152:8080/hosts.php?a=select&b=union&c=from» и нажать клавишу «Enter». В результате отобразится страница c предупреждением об ограничении доступа (см. Рисунок – Ограничение доступа).

Рисунок – Ограничение доступа
Заголовки HTTP
Заголовки HTTP позволяют серверу и клиенту обмениваться дополнительной информацией HTTP запросом или ответом.
Существует возможность переопределять заголовки веб-сервера. Для этого необходимо выполнить следующие действия:
Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация»).
Раскрыть вкладку «HTTP(S)», нажав кнопку «
», выбрать «Заголовки безопасности» и нажать кнопку «
».
В открывшейся форме задать параметры политики и нажать кнопку «Сохранить».
Раскрыть вкладку «HTTP(S)», нажав кнопку «
», выбрать «Сервер HTTP» и нажать кнопку «
» для ранее созданного сервера (см. Добавление HTTP-сервера).
В открывшейся форме выбрать созданную политику в параметре «Security Header» и нажать кнопку «Сохранить».
Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация») и нажать кнопку «Применить».
Проксирование TCP и UDP
Служба nginx также позволяет обрабатывать TCP и UDP трафик.
В качестве примера будет рассмотрен доступ к веб-серверу «WebServer 2» по протоколу RDP.
Для проброса порта необходимо выполнить следующие шаги:
Добавить сервер.
Добавить группу серверов.
Добавить потоковый сервер.
Для прохождения трафика до веб-сервера необходимо выключить параметр «Блокировать частные сети» (см. Блок «Общая конфигурация») для интерфейса «WAN» и создать общее разрешающее правило МЭ (см. Создание правил межсетевого экранирования) со следующими параметрами:
«Действие» – «Разрешить (Pass)»;
«Интерфейс» – «WAN»;
«Протокол» – «TCP»;
«IP-адрес назначения» – «Этот межсетевой экран»;
«Диапазон портов назначения» – «MS RDP»;
«Описание» – «Доступ по RDP».
Добавление сервера
Для добавления сервера необходимо выполнить следующие действия:
Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация»).
Перейти во вкладку «Вышестоящий поток» и нажать кнопку «
».
В открывшейся форме указать данные веб-сервера «WebServer 2»:
«Описание» – «RDP WebServer 2»;
«Сервер» – «192.168.1.101»;
«Порт» – «3389»;
«Приоритеты сервера» – «1»;
«Максимальное количество соединений» – «10»;
«Максимальное количество неудач» – «5»;
«Тайм-аут ошибки» – «10»;
и нажать кнопку «Сохранить».
Добавление группы серверов
Для добавления группы серверов необходимо выполнить следующие действия:
Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация»).
Раскрыть вкладку «Вышестоящий поток», нажав кнопку «
», выбрать «Вышестоящий поток» и нажать кнопку «
».
В открывшейся форме добавить группу, указав следующие данные:
«Описание» – «RDP servers»;
«Входы сервера» – «RDP WebServer 2»;
«Алгоритм балансировки нагрузки» – «IP Hash»;
остальные параметры оставить без изменения и нажать кнопку «Сохранить».
Добавление потокового сервера
Для добавления потокового сервера необходимо выполнить следующие действия:
Перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация»).
Перейти во вкладку «Потоки данных» и нажать кнопку «
».
В открывшейся форме указать данные потокового сервера:
«Порт прослушивания» – «3389»;
«Маршрутизировать с» – «Вышестоящий поток»;
«Вышестоящие серверы» – «RDP servers»;
остальные параметры оставить без изменения и нажать кнопку «Сохранить».
Проверка работы
После завершения настроек необходимо перейти в подраздел основных настроек nginx («Службы» - «Nginx» - «Конфигурация») и нажать кнопку «Применить».
Для проверки работы доступа по протоколу RDP необходимо запустить на ПК «Admin» клиент удалённого рабочего стола, указать IP-адрес «192.168.73.152» и выполнить подключение.