Настройка firewall

При использовании защиты в proxy-based режиме StormWall перенаправляет запросы от пользователей на ваш сервер, используя следующие адреса в качестве source ip:

  • 185.121.240.0/22

  • 193.84.78.0/24

  • 103.134.155.0/24

  • 188.0.150.0/24

Актуальный список узлов можно уточнить в личном кабинете StormWall, в разделе Документы → FAQ → Настройка фаервола.

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

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

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

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

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

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

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

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

В правилах iptables:

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

  2. Запретите доступ к TCP-портам 80 и 443 для остальных адресов функцией DROP.

В зависимости от системы можно использовать только правила iptables для plain HTTP или сочетать их с правилами для iptables с поддержкой модулей conntrack и ipset.

Рекомендуется использовать conntrack и ipset вместе, чтобы уменьшить и ускорить набор правил iptables.

Пример конфигурации IP tables для plain HTTP

#!/bin/sh
ADMIN_IPS="
127.0.0.1
" # Добавление IP-адресов и подсетей в список доверенных:
STORMWALL_NODES="66.110.32.128/30
83.234.15.112/30
87.245.197.192/30
185.94.108.0/24
"

iptables -N stormwall_ips
for IP in $ADMIN_IPS $STORMWALL_NODES; do
   iptables -A stormwall_ips -s $IP -j RETURN
done
iptables -A stormwall_ips -j DROP

iptables -A INPUT -p tcp -m multiport --dports 80,443 -j stormwall_ips

Пример конфигурации для IP tables с поддержкой conntrack и ipset

#!/usr/bin/env bash
ADMIN_IPS="
127.0.0.1
" # Добавление IP-адресов и подсетей в список доверенных:
STORMWALL_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 $STORMWALL_NODES; do
   ipset -A trusted_nodes ${IP}
done

# Создание правил IP tables:
iptables -N stormwall
iptables -A stormwall -m set --match-set trusted_nodes src -j ACCEPT
iptables -A stormwall -j DROP

iptables -I INPUT --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports 80,443 --state NEW -j stormwall

Настройка firewall для VM

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

  1. Войдите в VMware Cloud Director.

  2. На вкладке Edges нажмите на нужный Edge и нажмите Configure Services.

  3. На вкладке Firewall нажмите +.

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

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

  1. Войдите в личный кабинет Cloud.ru с ролью администратора группы или пользователя с правом заказа.

    Подробнее — в руководстве пользователя по личному кабинету.

  2. В меню VM, на вкладке Безопасность → Security Groups нажмите Добавить.

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

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

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

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

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

Чтобы проверить настройку firewall, в утилите командной строки curl с флагом --resolve сделайте запрос на реальный IP-адрес защищаемого сервера (апстрим):

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

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

Ответа на запрос может содержать код 7 Failed to connect.

Запустили Evolution free tier
для Dev & Test
Получить