- tocdepth
2
Шаг 5. Настройка firewall
При использовании защиты в proxy-based режиме Qrator перенаправляет запросы от пользователей на ваш сервер, используя следующие адреса в качестве source ip:
66.110.32.128/30
83.234.15.112/30
87.245.197.192/30
185.94.108.0/24
Примечание
Актуальный список узлов можно уточнить в ЛК Qrator в разделе
.Чтобы избежать атаки по прямому IP-адресу вашего сервиса, ограничьте доступ на уровне межсетевого экрана всем адресам, кроме вышеперечисленных.
В этот же список добавьте доверенные IP-адреса, это исключит возможность их блокировки (ложных срабатываний) и уменьшит количество легитимного трафика, пропускаемого через фильтрующую сеть.
Сеть фильтрует входящие HTTP-запросы пользователей по 80 порту Qrator IP и принимает SSL-соединения по 443 порту.
Примеры конфигураций и проверка
Настройка на примере конфигурации Linux Netfilter (proxy-based protection)
При настройке firewall учитывайте, что:
обычно в iptables уже есть правила;
для вашего сервиса могут быть различные особенности.
Результат выполнения скрипта ниже зависит от вашей текущей конфигурации. Применение этих правил без изменений может привести к нежелательным последствиям или не дать результата.
В правилах iptables:
Разрешите входящие пакеты на TCP-порты 80 и 443 с адресов из указанного списка и доверенных IP-адресов.
Запретите (DROP) доступ к этим портам для всего остального.
В зависимости от системы вы можете использовать либо только правила iptables для plain HTTP, либо комбинировать их с правилами для iptables с поддержкой модулей conntrack и ipset. Рекомендуется использовать как conntrack, так и ipset, поскольку это делает набор правил iptables меньше (тем самым упрощая обслуживание) и быстрее (меньше правил означает меньшее количество запросов на входящем пакете).
Пример конфигурации IP tables для plain HTTP
#!/bin/sh
ADMIN_IPS="
127.0.0.1
" # Добавим ваши IP-адреса и подсети в список доверенных:
QRATOR_NODES="66.110.32.128/30
83.234.15.112/30
87.245.197.192/30
185.94.108.0/24
"
iptables -N qrator_ips
for IP in $ADMIN_IPS $QRATOR_NODES; do
iptables -A qrator_ips -s $IP -j RETURN
done
iptables -A qrator_ips -j DROP
iptables -A INPUT -p tcp -m multiport --dports 80,443 -j qrator_ips
Пример конфигурации для IP tables с поддержкой conntrack и ipset
#!/usr/bin/env bash
ADMIN_IPS="
127.0.0.1
" # Добавим ваши IP-адреса и подсети в список доверенных:
QRATOR_NODES="66.110.32.128/30
83.234.15.112/30
87.245.197.192/30
185.94.108.0/24
"
# Создание доверенного списка адресов:
ipset -N trusted_nodes hash:net
for ip in $ADMIN_IPS $QRATOR_NODES; do
ipset -A trusted_nodes ${IP}
done
# Создание правил IP tables:
iptables -N qrator
iptables -A qrator -m set --match-set trusted_nodes src -j ACCEPT
iptables -A qrator -j DROP
iptables -I INPUT --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports 80,443 --state NEW -j qrator
Настройка firewall для VM
Чтобы создать правила firewall:
Зайдите в консоль управления ВЦОД.
На вкладке Edges выберите «Edge» и нажмите Configure Services.
На вкладке Firewall нажмите +.
Появится строка нового правила New Rule. Заполните ее поля и нажмите Save changes.
Настройка firewall для VM на базе OpenStack
Авторизуйтесь на Портале Cloud.ru в роли администратора группы или пользователя с правом заказа. Подробности в инструкции «Личный кабинет. Руководство пользователя».
Зайдите в меню виртуальной машины и на вкладке Добавить.
нажмитеУкажите название группы и создайте правила, разрешающие входящий (ingress) трафик для портов 80 и 443 и по протоколу TCP только с IP-адресов фильтрующей сети Qrator. Должно получиться 8 правил (по 4 на каждый порт).
Создайте разрешающие правила (ingress, TCP) для управляющих портов 9022 (виртуальная машина на базе Linux) и 9089 (виртуальная машина на базе Windows®).
После создания Security Group отвяжите Security Group с названием default, созданную автоматически.
Проверка настройки firewall
Для проверки используйте утилиту командной строки curl с флагом –resolve. Сделайте запрос на реальный IP-адрес защищаемого сервера (апстрим):
curl -I <имя_домена> --resolve <имя_домена>:80:<IP_адрес_апстрима>
При обращении к апстриму с другого устройства ресурс не должен отдавать успешный код ответа (например, 200, 301, 302) — это означает, что firewall позволяет отправлять запросы напрямую на ваш сервис и злоумышленники смогут этим воспользоваться.
Пример ответа на запрос, когда firewall настроен корректно:
для Dev & Test