Шаг 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 — раздел FAQ → Настройка фаервола.

Чтобы избежать атаки по прямому IP-адресу вашего сервиса, ограничьте доступ на уровне межсетевого экрана всем адресам, кроме вышеперечисленных.

В этот же список добавьте доверенные IP-адреса, это исключит возможность их блокировки (ложных срабатываний) и уменьшит количество легитимного трафика, пропускаемого через фильтрующую сеть.

Сеть фильтрует входящие HTTP-запросы пользователей по 80 порту Qrator IP и принимает SSL-соединения по 443 порту.

Настройка на примере конфигурации Linux Netfilter (proxy-based protection)

При настройке firewall учитывайте, что:

  • обычно в iptables уже есть правила;

  • для вашего сервиса могут быть различные особенности.

Результат выполнения скрипта ниже зависит от вашей текущей конфигурации. Применение этих правил без изменений может привести к нежелательным последствиям или не дать результата.

В правилах iptables:

  1. Разрешите входящие пакеты на TCP-порты 80 и 443 с адресов из указанного списка и доверенных IP-адресов.

  2. Запретите (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 на базе VMware

Чтобы создать правила firewall:

  1. Зайдите в консоль управления VMware vCloud Director.

  2. На вкладке Edges выберите «Edge» и нажмите Configure Services.

    ../_images/s__setup-firewall__vm-vcloud-director__edges.jpeg ../_images/s__setup-firewall__vm-vcloud-director__edge-gateway-settings.jpeg
  3. На вкладке Firewall нажмите +.

    ../_images/s__setup-firewall__vm-vcloud-director__edge-gateway-settings-firewall.jpeg

Появится строка нового правила New Rule. Заполните ее поля и нажмите Save changes.

Пример заполнения:

../_images/s__setup-firewall__vm-vcloud-director__edge-gateway-settings-fill-example.png

Настройка firewall для VM на базе OpenStack

  1. Авторизуйтесь на Портале SberCloud в роли администратора группы или пользователя с правом заказа. Подробности в инструкции «Личный кабинет. Руководство пользователя».

  2. Зайдите в меню виртуальной машины и на вкладке Безопасность → Security Groups нажмите Добавить.

  3. Укажите название группы и создайте правила, разрешающие входящий (ingress) трафик для портов 80 и 443 и по протоколу TCP только с IP-адресов фильтрующей сети Qrator. Должно получиться 8 правил (по 4 на каждый порт).

  4. Создайте разрешающие правила (ingress, TCP) для управляющих портов 9022 (виртуальная машина на базе Linux) и 9089 (виртуальная машина на базе Windows®).

  5. После создания Security Group отвяжите Security Group с названием default, созданную автоматически.

    ../_images/s__setup-firewall__vm-vcloud-director__edge-gateway-settings-security-rules.jpeg

Проверка настройки firewall

Для проверки используйте утилиту командной строки curl с флагом –resolve. Сделайте запрос на реальный IP-адрес защищаемого сервера (апстрим):

curl -I <имя_домена> --resolve <имя_домена>:80:<IP_адрес_апстрима>

При обращении к апстриму с другого устройства ресурс не должен отдавать успешный код ответа (например, 200, 301, 302) — это означает, что firewall позволяет отправлять запросы напрямую на ваш сервис и злоумышленники смогут этим воспользоваться.

Пример ответа на запрос, когда firewall настроен корректно:

../_images/s__setup-firewall__vm-vcloud-director__correct-settings-example.png