Настройка проксирования трафика¶
Для обработки HTTP‑запросов Валарм использует веб‑ и прокси‑сервер NGINX с дополнительными модулями анализа трафика.
1. Отредактируйте файлы конфигурации NGINX¶
Директория etc/nginx/conf.d
содержит файлы конфигурации NGINX и WAF‑ноды Валарм.
По умолчанию в этой директории содержатся следующие файлы конфигурации:
-
Файл
default.conf
содержит настройки NGINX; -
Файл
wallarm.conf
содержит глобальные настройки WAF‑ноды Валарм; -
Файл
wallarm‑status.conf
содержит настройки мониторинга работы Валарм.
Вы можете создавать свои файлы конфигурации для настройки работы NGINX и Валарм. Для каждой группы доменов, которые должны обрабатываться однотипно, принято создавать отдельный файл конфигурации, в котором присутствует блок server
.
Подробную информацию о работе с конфигурационными файлами NGINX вы можете найти в официальной документации NGINX.
Логика работы WAF‑ноды Валарм настраивается при помощи директив Валарм. Список доступных директив Валарм доступен на странице «Тонкая настройка».
Пример файла конфигурации¶
Предположим, что вам необходимо настроить сервер для работы по следующим принципам:
-
обработка HTTPS‑трафика не настроена;
-
запросы осуществляются к двум доменам:
example.com
иwww.example.com
; -
все запросы нужно передавать на сервер
10.80.0.5
; -
все входящие запросы меньше 1 МБ (значение по умолчанию);
-
нет запросов, которые обрабатываются дольше 60 секунд (значение по умолчанию);
-
система должна работать в режиме мониторинга;
-
клиенты обращаются к WAF‑ноде напрямую, не через промежуточный
HTTP‑балансировщик.
Создание файла конфигурации
Вы можете создать свой файл конфигурации NGINX (например, example.com.conf
), или модифицировать файл конфигурации NGINX, который используется по умолчанию (default.conf
).
При создании собственного файла конфигурации, убедитесь, что NGINX будет слушать входящие соединения на свободном порту.
Файл конфигурации в этом случае будет выглядеть следующим образом:
server {
listen 80;
listen [::]:80 ipv6only=on;
# the domains for which traffic is processed
server_name example.com;
server_name www.example.com;
# turn on the monitoring mode of traffic processing
wallarm_mode monitoring;
location / {
# setting the address for request forwarding
proxy_pass http://10.80.0.5;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
2. Настройте WAF‑ноду для использования прокси‑сервера¶
Info
Данный этап настройки предназначен для пользователей, использующих свой прокси‑сервер для работы защищаемых веб‑приложений.
Если Вы не используете прокси‑сервер, пропустите этот этап настройки.
Чтобы настроить WAF‑ноду Валарм для использования вашего прокси‑сервера, необходимо присвоить новые значения переменным окружения, которые определяют используемый прокси‑сервер.
Добавьте в файл /etc/environment
новые значения переменных окружения:
-
https_proxy
— прокси для протокола HTTPS; -
http_proxy
— прокси для протокола HTTP; -
no_proxy
— ресурсы, для запросов к которым необходимо отключить проксирование.
Присвойте переменным https_proxy
и http_proxy
строки вида <scheme>://<proxy_user>:<proxy_pass>@<host>:<port>
, где:
-
<scheme>
— используемый протокол (должен совпадать с протоколом, для которого настраивается прокси в текущей переменной окружения); -
<proxy_user>
— имя пользователя для авторизации на прокси‑сервере; -
<proxy_pass>
— пароль для авторизации на прокси‑сервере; -
<host>
— хост используемого прокси‑сервера; -
<port>
— порт используемого прокси‑сервера.
Присвойте переменной no_proxy
значение в виде массива IP‑адресов и/или доменов, к которым нужно обращаться без использования прокси: "<res_1>, <res_2>, <res_3>, <res_4>, ..."
, где <res_1>
, <res_2>
, <res_3>
и <res_4>
— IP‑адреса и/или домены.
Ресурсы, к которым нужно обращаться без использования прокси
Для корректной работы системы в список ресурсов, к которым нужно обращаться без прокси, необходимо добавить следующие IP‑адреса и домен: 127.0.0.1
, 127.0.0.8
, 127.0.0.9
и localhost
.
IP‑адреса 127.0.0.8
и 127.0.0.9
используются для работы WAF‑ноды Валарм.
Пример корректного содержимого файла /etc/environment
ниже демонстрирует следующую конфигурацию:
-
HTTPS‑ и HTTP‑запросы проксируются на хост
1.2.3.4
с портом1234
, используя для авторизации на прокси‑сервере имя пользователяadmin
и пароль01234
. -
для запросов к
127.0.0.1
,127.0.0.8
,127.0.0.9
иlocalhost
проксирование отключено.
https_proxy=http://admin:01234@1.2.3.4:1234
http_proxy=http://admin:01234@1.2.3.4:1234
no_proxy="127.0.0.1, 127.0.0.8, 127.0.0.9, localhost"
3. Перезапустите NGINX¶
После того, как вы внесли необходимые правки в конфигурацию, перезапустите NGINX
командой:
sudo systemctl restart nginx
sudo service nginx restart
sudo systemctl restart nginx
Проверьте, что WAF‑нода работает и пропускает через себя трафик: Проверка работоспособности WAF‑ноды.